張良橋,陳國良,許曉東,連達(dá)軍,王 睿
(1. 中國礦業(yè)大學(xué)環(huán)境與測繪學(xué)院,江蘇 徐州 221116; 2. 中國礦業(yè)大學(xué)國土環(huán)境與災(zāi)害監(jiān)測國家測繪 地理信息局重點(diǎn)實(shí)驗(yàn)室,江蘇 徐州 221116; 3. 蘇州科技大學(xué)環(huán)境學(xué)院,江蘇 蘇州 215009)
目前室內(nèi)定位技術(shù)主要有視覺導(dǎo)航定位、GPS定位、視覺SLAM定位、超聲波定位、WLAN定位[1]等方法。視覺導(dǎo)航定位技術(shù)圖像處理量比較大,要求計(jì)算機(jī)具有較高的性能,定位實(shí)時(shí)性效果較差,同時(shí)受光線環(huán)境條件限制大。超聲波導(dǎo)航定位由于超聲波容易受到鏡面反射等因素的影響,無法比較全面地獲取周邊環(huán)境信息。GPS導(dǎo)航定位在室內(nèi)環(huán)境下,接收到的信號弱,存在定位精度低、可靠性不高的問題。WLAN定位樓層定位準(zhǔn)確度低,容易受到信號干擾,能耗較大。然而視覺SLAM技術(shù)具有性價(jià)比高、應(yīng)用范圍廣、信息采集豐富等優(yōu)點(diǎn),逐漸成為室內(nèi)定位技術(shù)的主流方法之一。
時(shí)定位與地圖構(gòu)建(simultaneous localization and mapping,SLAM),也稱為(concurrent mapping and localization,CML)是指一個(gè)機(jī)器人放入未知環(huán)境中的未知位置,是否有辦法讓機(jī)器人在運(yùn)動(dòng)的同時(shí)描繪周圍的地圖與確定自身位置。視覺SLAM是以相機(jī)作為唯一傳感器的SLAM技術(shù)。視覺SLAM根據(jù)采用的相機(jī)種類不同可以分為:單目視覺SLAM[2-3](Mono SLAM)、雙目視覺SLAM[4](Binocular SLAM)、RGB-D SLAM[5]3類。這3類視覺SLAM各有優(yōu)劣,單目視覺SLAM應(yīng)用具有靈活、簡單、價(jià)格便宜等優(yōu)點(diǎn),但是它只能獲得單張相片,不能獲得距離深度信息,而且在應(yīng)用時(shí)需要初始化地圖;雙目視覺SLAM應(yīng)用廣泛,可以獲得距離深度信息,定位精度高,但是相機(jī)標(biāo)定比較復(fù)雜,成本比較高且穩(wěn)健性低;RGB-D SLAM在獲得彩色圖像的同時(shí)獲得距離深度信息,但是其成本高,體積大,應(yīng)用環(huán)境有限。由于在日常生活中,單目相機(jī)(手機(jī)、平板電腦、筆記本電腦等數(shù)碼電子產(chǎn)品的攝像頭均是單目相機(jī))更常見,且應(yīng)用靈活簡便、價(jià)格便宜,單目視覺SLAM[6]是最常見的視覺SLAM技術(shù)。
單目視覺SLAM流程包括前端和后端兩個(gè)部分[7],前端主要是特征檢測與匹配和運(yùn)動(dòng)估計(jì),后端包括后端優(yōu)化和回環(huán)檢測。主要技術(shù)路線如圖1所示。
特征檢測與匹配是SLAM關(guān)鍵步驟之一,檢測匹配結(jié)果直接影響到最終結(jié)果的精度。文獻(xiàn)[8]提出了一種在對象或場景的不同視圖之間提取圖像不變特征的方法,首次提出了尺度不變與特征變換(scale invariant feature transform,SIFT)算法。這種算法能夠保持旋轉(zhuǎn)、尺度縮放不變性,但是算法復(fù)雜度較高,計(jì)算量較大。文獻(xiàn)[9]首次提出了加速穩(wěn)健性特征(speed-up robust feature,SURF)算法,通過試驗(yàn)證明了其在效率上的優(yōu)越性,該算法對于光照變化和仿射、透視變換具有較好的穩(wěn)健性,同時(shí)具有尺度不變性。文獻(xiàn)[10]于2011年首次提出由Oriented FAST關(guān)鍵點(diǎn)和Rotated BRIEF描述子兩部分組成的ORB方法。ORB方法很少受圖像噪聲影響,可以滿足實(shí)時(shí)性的要求,計(jì)算速度也比SIFT、SURF算法快。
本文從現(xiàn)有方法出發(fā),對獲得的單目圖像運(yùn)用不同算法進(jìn)行提取同名點(diǎn)并進(jìn)行特征匹配,通過隨機(jī)采樣一致性[11](random sample consensus,RANSAC)算法進(jìn)行噪聲點(diǎn)剔除,求解基礎(chǔ)矩陣,獲得相機(jī)位姿。為了更好地體現(xiàn)估計(jì)結(jié)果,在算法中采用閾值思想,設(shè)置最小特征匹配數(shù)。
ORB-SLAM技術(shù)[12]由Mur-Artal R等提出,主要包括跟蹤、建圖和回環(huán)檢測3部分。在整個(gè)流程中,通過ORB算法進(jìn)行特征點(diǎn)檢測與匹配,使用BA(bundle adjustment)非線性迭代優(yōu)化,獲得相機(jī)位姿與地圖數(shù)據(jù)。ORB-SLAM整體流程如圖2所示。
ORB(oriented FAST and rotated BRIEF)算法具有局部不變特征,ORB特征由關(guān)鍵點(diǎn)[13-14](oFAST,oriented FAST)和描述子(BRIEF,binary robust independent elementary feature)兩部分組成。該算法將FAST角點(diǎn)檢測與BRIEF特征描述符進(jìn)行融合改進(jìn),針對FAST算法缺陷,加入了尺度與旋轉(zhuǎn)描述,同時(shí)計(jì)算了特征點(diǎn)的主方向,對于BRIEF算法,添加了旋轉(zhuǎn)不變性,同時(shí)執(zhí)行g(shù)reedy搜索,解決了特征描述子之間相關(guān)性較大的問題。為了更好地提取FAST關(guān)鍵點(diǎn),本文提出一種設(shè)置閾值的FAST檢測方法,如圖3所示。基本思想是:一個(gè)像素與周圍像素亮度差別在超過一個(gè)閾值T,則該點(diǎn)為關(guān)鍵點(diǎn)。具體關(guān)鍵點(diǎn)檢測方法如下:
(1) 確定檢測范圍:在圖像中選取像素x,設(shè)該像素亮度值lx,選取x為圓心半徑為3個(gè)像素的圓上16個(gè)像素點(diǎn)。
(2) 與閾值大小比較:確定一個(gè)閾值T,假設(shè)圓上有連續(xù)12個(gè)像素點(diǎn)的亮度在lx-T與lx+T之間,該點(diǎn)x確定為特征點(diǎn)。重復(fù)上述步驟,直至所有特征點(diǎn)檢測完成。
(3) 非極大值抑制:計(jì)算特征點(diǎn)響應(yīng)值M,x鄰域內(nèi)存在多個(gè)關(guān)鍵點(diǎn)時(shí),比較M大小,M最大的保留,其余刪除。

(1)
式中,lxy為x鄰域圓上像素編號(y≤16)。
oFAST利用灰度質(zhì)心法,假設(shè)關(guān)鍵點(diǎn)與質(zhì)心之間存在偏移量,該向量可表示關(guān)鍵點(diǎn)主方向。局部區(qū)域中定義階矩
(2)
式中,I(u,v)為像素點(diǎn)(u,v)的灰度值。
圖像質(zhì)心為
(3)
方向角為

(4)
BRIEF是一種特征描述子,需要對圖像進(jìn)行高斯平滑處理,以關(guān)鍵點(diǎn)為中心,在鄰域內(nèi)挑選n個(gè)點(diǎn)對,I(x,y)相互比較灰度值,x>y取1,反之取0,生成n維特征描述符。將n個(gè)點(diǎn)對(xi,yi)定義為2×n矩陣
(5)
利用θ對其進(jìn)行旋轉(zhuǎn)
Sθ=RθS
(6)
式中,Rθ表示角度為θ的旋轉(zhuǎn)矩陣,Sθ為旋轉(zhuǎn)后對應(yīng)的矩陣。這時(shí)BRIEF描述子具備了旋轉(zhuǎn)不變的性質(zhì)。
由于幀間估計(jì)誤差的存在[15],機(jī)器人在移動(dòng)過程中不可避免地存在相機(jī)位姿誤差漂移,運(yùn)行時(shí)間越長,數(shù)據(jù)量越大漂移量也就越大,即誤差越大。為提高算法穩(wěn)健性,減小試驗(yàn)誤差,本文采用一種基于關(guān)鍵幀的回環(huán)檢測方法,通過檢測閉環(huán),建立當(dāng)前時(shí)刻與之前時(shí)刻的約束關(guān)系為姿態(tài)優(yōu)化與地圖糾正,實(shí)現(xiàn)全局一致性估計(jì)。具體方法為:初始化關(guān)鍵幀序列,將第一張圖像作為關(guān)鍵幀添加到關(guān)鍵幀序列幀[16],設(shè)置檢測間隔,處理間隔一定數(shù)量的關(guān)鍵幀,通過RANSAC算法去除噪聲點(diǎn),計(jì)算匹配成功的內(nèi)點(diǎn)inliners,設(shè)置閾值,若inliner大于閾值舍棄,否則認(rèn)為關(guān)鍵幀。關(guān)鍵幀與當(dāng)前幀作比較,判斷是否形成閉環(huán),建立約束關(guān)系。
試驗(yàn)數(shù)據(jù)與平臺:試驗(yàn)采用OPPO手機(jī)單目相機(jī)獲取的圖像數(shù)據(jù),TUM數(shù)據(jù)中rgbd_dataset_freiburg1_room數(shù)據(jù)集圖像數(shù)據(jù),Linux系統(tǒng)Ubuntu16.04處理系統(tǒng)。
通過張正友棋盤標(biāo)定法對攝像頭進(jìn)行相機(jī)標(biāo)定,標(biāo)定完成后,在室內(nèi)環(huán)境下采集圖像數(shù)據(jù)。使用開源數(shù)據(jù)集TUM數(shù)據(jù)rgbd_dataset_freiburg1_room數(shù)據(jù)集任意連續(xù)兩幀圖像和手機(jī)攝像頭拍攝實(shí)驗(yàn)室室內(nèi)課桌上臺燈圖像,利用SIFT、SURF、ORB進(jìn)行特征檢測與匹配,兩種來源圖像數(shù)據(jù)3種算法試驗(yàn)結(jié)果統(tǒng)計(jì)見表1、表2,關(guān)鍵點(diǎn)檢測、圖像匹配、篩選后正確匹配結(jié)果如圖4、圖5所示。

表1 rgbd_dataset_freiburg1_room圖像匹配統(tǒng)計(jì)結(jié)果

表2 手機(jī)拍攝圖像匹配統(tǒng)計(jì)結(jié)果
表1和表2給出了不同圖像數(shù)據(jù)源通過SIFT、SURF、ORB 3種算法進(jìn)行特征檢測與匹配的結(jié)果。試驗(yàn)證明SURF算法檢測關(guān)鍵點(diǎn)數(shù)量最多且分布密集,SIFT次之,ORB算法關(guān)鍵點(diǎn)分布均勻且數(shù)量較少,正確匹配率高。關(guān)鍵點(diǎn)太多不利于提高算法處理效率與實(shí)時(shí)性,運(yùn)用ORB算法計(jì)算量較小且匹配精度較其他兩種算法較高,因此ORB算法具有較好的穩(wěn)健性和實(shí)用性。
采用提供機(jī)器人真實(shí)軌跡的TUM數(shù)據(jù)中的rgbd_dataset_freiburg1_room數(shù)據(jù)集,數(shù)據(jù)集中提供機(jī)器人真實(shí)軌跡,通過估計(jì)軌跡與真實(shí)軌跡對比,能夠清晰地驗(yàn)證基于圖像特征檢測與匹配的ORB-SLAM算法有效性。試驗(yàn)結(jié)果如圖6、圖7所示。
圖6和圖7分別描述了運(yùn)用基于圖像特征檢測技術(shù)的ORB-SLAM算法跟蹤得到的機(jī)器人軌跡與真實(shí)軌跡,通過計(jì)算相對位姿誤差(relative pose error,RPE)為0.144 8 m,可以發(fā)現(xiàn)通過基于圖像特征檢測與匹配技術(shù)的ORB-SLAM算法得到的機(jī)器人軌跡基本與真實(shí)軌跡重合,滿足一定精度下的工作需求。
本文運(yùn)用SIFT、SURF、ORB 3種特征提取匹配算法對不同來源的室內(nèi)圖像進(jìn)行處理比較,驗(yàn)證了ORB算法的穩(wěn)健性與實(shí)時(shí)性。基于此算法的優(yōu)良性質(zhì)提出了一種基于圖像特征提取與檢測的改進(jìn)ORB-SLAM算法,運(yùn)用閾值的思想剔除噪聲關(guān)鍵點(diǎn),在后端工作中引入閉環(huán)檢測策略優(yōu)化位姿獲得較精確的相機(jī)軌跡圖。試驗(yàn)證明,與傳統(tǒng)視覺SLAM軌跡跟蹤算法相比,該算法提高了軌跡跟蹤穩(wěn)定性與精度。