文/楊承忠
隨著虛擬現(xiàn)實(shí)和無(wú)人駕駛等技術(shù)的發(fā)展,同時(shí)定位與地圖創(chuàng)建(SLAM)受到越來(lái)越多的關(guān)注,而且在機(jī)器人領(lǐng)域一直被認(rèn)為是實(shí)現(xiàn)移動(dòng)機(jī)器人完全自主導(dǎo)航的關(guān)鍵。本文主要對(duì)目前主流的采用特征點(diǎn)法的ORB-SLAM在選取關(guān)鍵幀環(huán)節(jié)做了改進(jìn),使系統(tǒng)具有更好的魯棒性。
2007年由Davison等首次完成了在單目攝像頭上的SLAM問(wèn)題求解,完成了第一個(gè)基于純單目視覺(jué)的MonoSLAM系統(tǒng)。隨之Klein等也完成了第一個(gè)基于關(guān)鍵幀的PTAM系統(tǒng)。直到現(xiàn)在的ORB-SLAM系統(tǒng)仍然采用了PTAM的算法框架。
單目視覺(jué)slam根據(jù)多視圖幾何原理,恢復(fù)出每幀圖像對(duì)應(yīng)的相機(jī)位姿P1...Pn和場(chǎng)景的三維結(jié)構(gòu)X1...Xn。通過(guò)觀測(cè)方程得到空間點(diǎn)在相機(jī)圖像上的投影量hij:
其中nij表示觀測(cè)噪聲,然后通過(guò)優(yōu)化目標(biāo)函數(shù):
來(lái)得到不同圖像中對(duì)應(yīng)于同一場(chǎng)景點(diǎn)的匹配。不過(guò)在圖像的求解過(guò)程中,必須假設(shè)圖像觀測(cè)點(diǎn)符合高斯分布。
視覺(jué)slam的整體框架可以分為四個(gè)部分,首先是前端的圖像采集與特征點(diǎn)的檢測(cè),然后根據(jù)關(guān)鍵幀構(gòu)建視覺(jué)里程計(jì),后端通過(guò)非線性優(yōu)化和回環(huán)檢測(cè),最后構(gòu)建全局地圖。目前的視覺(jué)slam主要有基于特征點(diǎn)法和直接法。ORB-SLAM使用ORB特征子來(lái)進(jìn)行圖像匹配,具有較高的魯棒性,更容易進(jìn)行重定位。但是計(jì)算量比較大,而且對(duì)光照和圖像質(zhì)量比較敏感,在弱紋理環(huán)境下容易失效。圖像檢測(cè)的特征子只使用了環(huán)境的極少數(shù)信息,只能構(gòu)建出稀疏的環(huán)境地圖,忽略了在圖像中占據(jù)大量部分的線段與平面信息。李海豐[7]等融合了環(huán)境中點(diǎn)、線、面特征構(gòu)建包含更多信息量的環(huán)境地圖。
由于特征點(diǎn)檢測(cè)與匹配過(guò)程總會(huì)存在一定誤差,導(dǎo)致相機(jī)位姿估計(jì)不精確,而且在相機(jī)運(yùn)動(dòng)過(guò)程中,幀間運(yùn)動(dòng)估計(jì)誤差會(huì)造成更大的累計(jì)漂移,減小這種誤差即成為了研究重點(diǎn)。通過(guò)優(yōu)化關(guān)鍵幀部分,選擇位置估計(jì)準(zhǔn)確性較高關(guān)鍵幀能保證系統(tǒng)定位精度,并提高了構(gòu)建全局地圖效率。
為了減小系統(tǒng)運(yùn)算和存儲(chǔ)量,關(guān)鍵幀部分優(yōu)化的整個(gè)流程如圖1所示。初始時(shí)選擇準(zhǔn)確率更高的n個(gè)關(guān)鍵幀來(lái)計(jì)算相機(jī)的位姿,從而提高定位精度,并丟棄哪些關(guān)聯(lián)性不強(qiáng)的關(guān)鍵幀,以減小后期構(gòu)建全局地圖時(shí)運(yùn)算量。
(1)在初始化時(shí),選擇前n個(gè)包含特征點(diǎn)數(shù)多與一個(gè)閾值量的幀來(lái)估計(jì)相機(jī)位姿,從而最優(yōu)一個(gè)初始相機(jī)姿態(tài);
(2)在創(chuàng)建關(guān)鍵幀后必須至少經(jīng)過(guò)n個(gè)幀再創(chuàng)建一個(gè)關(guān)鍵幀,并加入約束條件:
1.當(dāng)前幀至少能看到k個(gè)地圖點(diǎn);
2.位置估計(jì)準(zhǔn)確性較高;
3.計(jì)算一個(gè)幀間運(yùn)動(dòng)距離,其距離必須大于D。
(3)如果檢測(cè)到的特征點(diǎn)過(guò)少,當(dāng)參考幀與當(dāng)前幀觀測(cè)到的共同路標(biāo)點(diǎn)數(shù)少于一定數(shù)量時(shí),創(chuàng)建一個(gè)新的關(guān)鍵幀。
(4)在創(chuàng)建地圖時(shí),采用RANSAC算法,去除冗余關(guān)鍵幀,使系統(tǒng)負(fù)載變小。
本文在視覺(jué)SLAM關(guān)鍵幀選擇中做了改進(jìn),減小了運(yùn)算量和系統(tǒng)負(fù)載。僅采用一個(gè)攝像頭作為外部傳感器進(jìn)行定位與建圖仍然是一個(gè)具有挑戰(zhàn)性的領(lǐng)域。隨著無(wú)人駕駛和虛擬現(xiàn)實(shí)等技術(shù)的發(fā)展,視覺(jué)slam也得到快速發(fā)展,但是實(shí)時(shí)性和挑戰(zhàn)更復(fù)雜的環(huán)境還需要深入研究。
圖1