張正陽
(西安市鐵一中學(xué),陜西西安,710000)
在上世紀(jì)20年代,機(jī)器人”robot”首次被提出來,幾十年來,人工智能也在飛速發(fā)展[1]。在這幾年,計算機(jī)領(lǐng)域中的人工智能越來越引起了人們的注意,而其中最具有熱度的便是機(jī)器人,它能夠代替人類完成許多繁瑣的工作。由于當(dāng)今勞動力成本快速上升,機(jī)器人的這一特點更加顯示出它的重要性。例如在一些空巢家庭,老年人行動不便,需要在幫助下才能及時的完成一些繁瑣的家務(wù)活動;在一些醫(yī)院中,護(hù)工的費用越來越高,而他們完成的也只是一些技術(shù)含量不高而比較繁瑣的低成本工作。服務(wù)型機(jī)器人便由此而生。屬于服務(wù)型機(jī)器人領(lǐng)域的家庭服務(wù)機(jī)器人,主要的功能即幫助人們完成一些簡單的服務(wù)類工作。而基于深度學(xué)習(xí)的場景識別系統(tǒng)則相當(dāng)于機(jī)器人的眼睛。
機(jī)器人領(lǐng)域中,如何使機(jī)器人識別所處環(huán)境是一個重要問題,經(jīng)過實踐表明,傳統(tǒng)的識別系統(tǒng)有著內(nèi)存大,在環(huán)境變化或者光照變化等情況下無法識別的缺點[2],而基于深度學(xué)習(xí)的識別系統(tǒng)可以有效的消除這些缺點。本文在學(xué)習(xí)和借鑒現(xiàn)有的技術(shù)基礎(chǔ)之上,提出了一套基于深度學(xué)習(xí)的視覺識別方法,在回環(huán)檢測的部分使用基于深度學(xué)習(xí)的場景識別系統(tǒng),拋棄傳統(tǒng)的詞袋法而建立的機(jī)器人場景識別系統(tǒng)。在設(shè)計原理的基礎(chǔ)上詳細(xì)分析了具體的實現(xiàn)途徑和技術(shù)路線。并且對結(jié)果進(jìn)行了功能試驗,肯定了此原理的可行性與正確性。
當(dāng)機(jī)器人在某個陌生環(huán)境中的陌生場景中完成任務(wù)時,如何使機(jī)器人識別其所在的工作環(huán)境場景是機(jī)器人以及計算機(jī)視覺領(lǐng)域的重要研究課題[3]。識別自身的工作環(huán)境對于機(jī)器人進(jìn)行下一步工作任務(wù)的執(zhí)行有著重要意義。機(jī)器人的場景識別問題不同于簡單的圖像分類,其不同工作場景圖像的內(nèi)部元素種類繁多,即使是同類場景,在不同時間,不同外界影響因素下其內(nèi)部元素往往也存在著較大差別。因此場景識別問題會十分復(fù)雜,而場景識別的關(guān)鍵則在于如何找出一種能完全表示同一類場景中的結(jié)構(gòu)信息和語義信息的特征。
基于深度學(xué)習(xí)的SLAM場景識別系統(tǒng)主要分為前端對局部描述符的構(gòu)建和后端對于所構(gòu)建地圖的優(yōu)化與回環(huán)檢測,對于SLAM前端工作的改進(jìn)包括使用基于深度學(xué)習(xí)的局部描述符相機(jī)位姿直接進(jìn)行計算和對目標(biāo)加速特征點的匹配總而言之,SLAM前端主要提供了特征點的提取、負(fù)責(zé)相機(jī)位姿的計算和局部地圖的構(gòu)建。但僅僅通過這些并不能精準(zhǔn)的實現(xiàn)機(jī)器人的自動建圖和定位,這些數(shù)據(jù)中含有大量的“噪聲”,導(dǎo)致計算的結(jié)果會有一定的誤差,并且這些誤差會不可避免的積累到下一個環(huán)節(jié),導(dǎo)致最終結(jié)果隨著時間的積累誤差越來越大,地圖和行走軌跡不吻合,并且發(fā)生極大的變化,因此無法保證其與現(xiàn)實情況一致。于此,SLAM后端則是對數(shù)據(jù)的優(yōu)化。SLAM后端分為兩個部分:后端優(yōu)化和回環(huán)檢測。本章主要介紹回環(huán)檢測在SLAM系統(tǒng)中的作用管理。
回環(huán)檢測則為解決減小機(jī)器人在SLAM前端工作時所積累的誤差問題提供了很好的思路方法[4]。不妨以我們?nèi)祟愒谝粋€陌生環(huán)境中如何建立周圍的環(huán)境地圖為例,人的位置不斷發(fā)生改變,從而在腦海中積累了大量圖像,形成一個由這些圖像累計而成的一個地圖,但長時間過后,這些圖像中的部分微小誤差經(jīng)過累計導(dǎo)致結(jié)果與實際情況產(chǎn)生較大的差異,對于這個情況人類也無法分辨自身在此刻朝向哪個方向,與最初起點的相對位置如何。假如在此刻人恰好回到了之前某個時刻經(jīng)過的位置(設(shè)這個人對環(huán)境比較敏感),他便能夠意識到這個事實,并在此基礎(chǔ)上修正此前對環(huán)境判斷造成的誤差。此時便如同于檢測到了一個回環(huán)。我們知道人是通過將眼前的圖像與腦海中殘存的圖像進(jìn)行對比,從而意識到自己所處的這個回環(huán)。同理,在SLAM中也是通過對比當(dāng)前圖像與之前關(guān)鍵圖像的相似度,當(dāng)這個相似度到達(dá)某一設(shè)定值后就可以判斷出此時機(jī)器人檢測到了回環(huán)。
為此,回環(huán)檢測的重點在于場景識別,正確的回環(huán)檢測為機(jī)器人的定位與建圖提供了保障,尤其是在機(jī)器人長時間的工作之后,累積了大量的誤差,此時系統(tǒng)就可以通過回環(huán)檢測不斷修正自己的軌跡和地圖[5]。又因為回環(huán)檢測將歷史與實時的數(shù)據(jù)進(jìn)行對比和聯(lián)系,所以當(dāng)系統(tǒng)丟失的時候也可以通過回環(huán)檢測來進(jìn)行重合。
如圖1,左圖中由于機(jī)器人SLAM前端提取的特征點中誤差的長時間積累導(dǎo)致了機(jī)器人對定位與建圖的估計不再準(zhǔn)確,因此便有了對誤差進(jìn)行回環(huán)檢測和全局校正的需求,右圖即是通過回環(huán)檢測校正后的圖像,將產(chǎn)生誤差的地圖進(jìn)行修正使之與行進(jìn)軌跡重合后的結(jié)果。
圖1 回環(huán)檢測修正地圖,左圖為修正前,右圖為修正后
回環(huán)檢測的本質(zhì)就是機(jī)器人對于自己所在位置的場景識別,對于人類來說場景識別的過程很自然,然而這個問題對于機(jī)器人來說卻十分有挑戰(zhàn)性—讓機(jī)器判斷自己所在位置是否是自己先前經(jīng)歷過的場景。為了解決這個問題,場景識別需要具備以下兩個能力:
(1)含有與輸入數(shù)據(jù)進(jìn)行對比的數(shù)據(jù)集,此數(shù)據(jù)集可以是關(guān)鍵幀或者一些特征點的集合,并且該數(shù)據(jù)集需要不斷更新以保持其實時性。
(2)擁有能夠計算輸入數(shù)據(jù)與數(shù)據(jù)集間相似度的評分機(jī)制。
擁有這兩個功能,便能進(jìn)一步改善傳統(tǒng)場景識別BOW模型的無法識別光照等環(huán)境變化的缺點。
神經(jīng)網(wǎng)絡(luò)需要經(jīng)過一個訓(xùn)練,例如我們在室內(nèi)隨機(jī)挑選了相似圖片,提取其中的相似點與不相似點。利用AlexNet以及將relu作為CNN網(wǎng)絡(luò)的激活函數(shù),用CUDA來加速深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,再通過GPU強(qiáng)大的并行計算能力,接下來經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)權(quán)值共享,采用Max pooling將圖像縮小,(Max polling也可以將圖像降維),隨后經(jīng)過多次卷積和Max pooling,通過全連接提取圖像特征。在訓(xùn)練時,采用三個相同的Alexnet網(wǎng)絡(luò)提取圖像特征,比較特征之間的距離,通過triplet loss縮小相似特征之間的距離,然后使其小于不相似特征間的距離。
如圖2,x指一個圖像特征,x+的圖像特征與該圖像特征比較相似,特征點之間的距離較小,相反x-的圖像特征與該圖像特征之間距離較大,輸入的圖像各自經(jīng)過共享權(quán)值的相同網(wǎng)絡(luò),利用公式(1)計算出特征之間的距離,經(jīng)過tripletloss縮小x+與x之間的距離使之小于x-與x之間的距離,以此達(dá)到識別出相似場景的效果。
圖2 三重網(wǎng)絡(luò)結(jié)構(gòu)
所謂場景識別系統(tǒng),即將高維空間的圖像映射成一個維度較低的空間中的描述符,映射過程中我們需要低維度的描述符可以保持圖像之間的相似關(guān)系。因此我們采用triplet形式的損失函數(shù)來對網(wǎng)絡(luò)進(jìn)行訓(xùn)練。我們?yōu)樘崛〉降臉颖咎卣鬟x取鄰近的同類樣本特征和鄰近的異類樣本特征,以此來構(gòu)建一個三元組,對于N個訓(xùn)練樣本,可以隨機(jī)產(chǎn)生大量的三元組,本文涉及到的基于三元組約束的距離度量學(xué)習(xí)模型(point to point Relative Distance Constrained Metric Learning,RDCML)要求同類樣本特征的距離和異類樣本特征的距離被一個大的間隔分開?;谏鲜龅拿枋觯覀兊膿p失函數(shù)為公式(2),其中α為正負(fù)樣本之間的間隔,即正樣本之間的距離至少要小于負(fù)樣本的距離α以上。在訓(xùn)練過程中α由人為指定,α越小網(wǎng)絡(luò)越容易收斂,然而效果會比較差,α越大網(wǎng)絡(luò)越難收斂會導(dǎo)致訓(xùn)練時間變長甚至不收斂,但是效果會比較好,因此我們需要在訓(xùn)練過程中對訓(xùn)練時間和精度進(jìn)行權(quán)衡。
如圖3表示了點與點之間三元組約束的意義,對于一個三元組,黃色與藍(lán)色兩個樣本之間的異類距離d和黃色與黃色兩個同類樣本之間的同類距離要被一個大的間隔分散開,從而使同類樣本之間的距離小于異類樣本之間。
圖3 點與點之間的三元組約束示意圖
機(jī)器人視覺領(lǐng)域研究問題的主要目的是讓機(jī)器人擁有眼睛一樣的功能,而場景識別也正是是視覺領(lǐng)域一個重要的研究課題,它能夠有效的幫助機(jī)器人進(jìn)行自主定位與構(gòu)建所在環(huán)境的地圖,對接下來的工作具有重要意義。然而現(xiàn)有的傳統(tǒng)場景識別系統(tǒng)存在著空間大并且無法識別光照等環(huán)境變化的缺點,效率也較低,造成了研究者時間和精力的浪費?;诖耍疚膶⒛軌蚴箼C(jī)器人自動提取圖像特征的深度學(xué)習(xí)應(yīng)用到場景識別中。
在本文的場景識別系統(tǒng)中,主要包含了以下幾個部分:采用回環(huán)檢測的方法修正SLAM前端采集的數(shù)據(jù)的誤差因時間積累而產(chǎn)生的偏差,因為回環(huán)檢測的關(guān)鍵步驟在于場景識別,本文摒棄了場景識別傳統(tǒng)的BOW模型,以人對場景識別的原理為出發(fā)點,為機(jī)器人賦予了建立數(shù)據(jù)集與計算輸入數(shù)據(jù)與數(shù)據(jù)集間相似度的評分機(jī)制兩個功能,這兩個功能可以有效改善傳統(tǒng)的BOW模型。在回環(huán)檢測中闡述說明了基于三元組約束的距離度量學(xué)習(xí)模型,該模型需要將采集的樣本中同類樣本的距離與異類樣本特征之間的距離用一個很大的間隔隔開。
本文的識別方法對于機(jī)器人在實際情況中進(jìn)行場景識別時可能會出現(xiàn)識別出錯的情況,為了進(jìn)一步提高機(jī)器人對于場景的識別準(zhǔn)確率,可以從多個方向與角度拍攝圖像對場景進(jìn)行識別,然后將多次識別出的結(jié)果進(jìn)行整理。本文仍需大量實驗來提高識別的準(zhǔn)確率。
本次研究提出了基于深度學(xué)習(xí)的場景識別方法,避免因光照等環(huán)境變化而無法準(zhǔn)確進(jìn)行場景識別的問題。但只進(jìn)行了思考與對模型的設(shè)計,缺乏利用實際情況來進(jìn)行檢驗與驗證。未來可結(jié)合實際實驗的結(jié)果對設(shè)計進(jìn)行再一次突破并向其中添加優(yōu)化策略。