文/趙永達(dá)
同步定位與地圖構(gòu)建(Simultaneous Localization And Mapping,即SLAM)最早在1988年被提出。隨著SLAM 技術(shù)的發(fā)展涌現(xiàn)了大量的優(yōu)秀成果,如:基于半直接法的視覺slam 算法SVO 和基于特征點(diǎn)法的ORBSLAM。其中,SVO 在梯度變化不明顯的區(qū)域效果很差,且容易受到光照的影響。ORBSLAM 魯棒性相對較好,但誤匹配的存在依然對系統(tǒng)準(zhǔn)確性有較大影響。因此,本文采用重定位的方法,優(yōu)化關(guān)鍵特征。
基于深度相機(jī)ORB 重優(yōu)化SLAM 方法:首先獲取視覺傳感器數(shù)據(jù),包括顏色信息和深度信息,并對彩色圖像提取關(guān)鍵特征;然后,采用重定位的方式再次優(yōu)化關(guān)鍵特征;最后,通過PNP 算法與g2o 重優(yōu)化結(jié)合的方法估計(jì)相機(jī)的位姿變化,篩選關(guān)鍵幀,并進(jìn)行閉環(huán)檢測,得到全局優(yōu)化位姿,拼接點(diǎn)云形成地圖。
對圖像提取關(guān)鍵點(diǎn)以及跟蹤,依據(jù)跟蹤到的的特征點(diǎn)的變化,用于估計(jì)相機(jī)的位姿變化。目前常用的特征點(diǎn)提取算法有SIFT 算法、SUFT 算法、ORB 算法三種。SIFT 算法和SURF 算法在提取特征點(diǎn)時(shí)計(jì)算量大,影響系統(tǒng)的實(shí)時(shí)性,現(xiàn)在通常使用ORB 算法提取圖像特征,ORB 算法可以快速的提取特征。
使用ORB 算法提取關(guān)鍵特征,但由于提取ORB 特征的過程中,沒有考慮到關(guān)鍵點(diǎn)的灰度值以及深度信息,因此會(huì)產(chǎn)生以誤匹配。
對關(guān)鍵特征,本文中采用兩次g2o 與PnP結(jié)合估計(jì)最優(yōu)位姿,分別用于去除誤匹配特征和位姿優(yōu)化。過程如下:
(1)構(gòu)建誤差函數(shù),其中K 為相機(jī)內(nèi)參,ξ 為相機(jī)的位姿
(2)采用圖優(yōu)化(g2o)的方式估計(jì)位姿,估計(jì)位姿的變化為ξ*;
圖1:位姿估計(jì)結(jié)果
(3)對于每一個(gè)特征點(diǎn)對,利用估計(jì)的位姿變化結(jié)果,與前后特征值信息,對于滿足的特征點(diǎn)對,丟棄。
(4)根據(jù)優(yōu)化后的關(guān)鍵特征,采用g2o與PnP 結(jié)合的方法估計(jì)最優(yōu)位姿。
本文實(shí)驗(yàn)采用TUM 標(biāo)準(zhǔn)數(shù)據(jù)集中基于Kinect 視覺傳感器室內(nèi)數(shù)據(jù)包進(jìn)行測試。本實(shí)驗(yàn)運(yùn)行在Ubuntu14.04 系統(tǒng)上,配置為包括4核型號(hào)為Intel(R)Core(TM)i5-5200U 的處理器,以及8GB 的內(nèi)存和Intel(R) HD Graphics 5500 的顯卡。
本文首先提取ORB 特征,并進(jìn)行特征匹配。分別用ORB 關(guān)鍵特征、以及優(yōu)化后的ORB 關(guān)鍵特征估計(jì)位姿變化,并記錄估計(jì)結(jié)果。部分估計(jì)結(jié)果如圖1所示,圖中藍(lán)色為相機(jī)的真實(shí)空間位置,紅色為使用沒有優(yōu)化的關(guān)鍵特征的位姿估計(jì)結(jié)果,綠色的線是依據(jù)優(yōu)化后關(guān)鍵特征估計(jì)的位姿結(jié)果。
通過實(shí)驗(yàn)可以看出,使用優(yōu)化后的ORB特征估計(jì)的位姿,更接近相機(jī)的真實(shí)位置。并且將關(guān)鍵特征重定位優(yōu)化以后,再估計(jì)位姿的方法穩(wěn)定性更好。