文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.183046
中文引用格式: 成怡,佟曉宇. 基于改進(jìn)ORB算法的移動(dòng)機(jī)器人視覺(jué)SLAM方法研究[J].電子技術(shù)應(yīng)用,2019,45(1):10-13,18.
英文引用格式: Cheng Yi,Tong Xiaoyu. Research on visual SLAM method of mobile robot based on improved ORB algorithm[J]. Application of Electronic Technique,2019,45(1):10-13,18.
0 引言
作為移動(dòng)機(jī)器人實(shí)現(xiàn)智能化的關(guān)鍵技術(shù),同步定位與地圖創(chuàng)建(Simultaneous Localization And Mapping,SLAM)[1]在移動(dòng)機(jī)器人的自主導(dǎo)航、自主控制中發(fā)揮著重要的意義。隨著視覺(jué)傳感器[2]的發(fā)展,視覺(jué)SLAM在移動(dòng)機(jī)器人中的應(yīng)用越趨普遍。視覺(jué)信息與慣性導(dǎo)航系統(tǒng)相結(jié)合,可以避免移動(dòng)機(jī)器人對(duì)有源信號(hào)的依賴,更滿足于無(wú)源條件下的導(dǎo)航需求,具有體積小、重量輕、安裝方便等優(yōu)點(diǎn)。根據(jù)使用視覺(jué)傳感器類型的不同,將視覺(jué)SLAM劃分為:?jiǎn)文?Monocular)視覺(jué)SLAM、雙目(Binocular)視覺(jué)SLAM和深度(RGB-D)視覺(jué)SLAM。深度視覺(jué)SLAM利用深度相機(jī)記錄周圍場(chǎng)景的同時(shí),能夠輸出RGB-D圖像信息(彩色圖像與深度圖像),有效地解決了單目相機(jī)沒(méi)有深度信息、雙目相機(jī)求解深度信息計(jì)算量繁重的問(wèn)題。在RGB-D SLAM算法中,特征提取算法的選擇會(huì)影響整個(gè)系統(tǒng)的實(shí)時(shí)性。目前,在RGB-D SLAM算法中應(yīng)用最為廣泛的特征點(diǎn)檢測(cè)與提取算法有SIFT[3]、SURF[4]和ORB[5]3種。
尺度不變的特征變換(Scale-invariant Feature Transform,SIFT)是一種特征檢測(cè)與描述子提取算法。該算法在旋轉(zhuǎn)、尺度的縮放、光照條件的變化、噪聲干擾等方面受到的影響較小,具有較好地穩(wěn)定性。加速魯棒性特征(Speeded Up Robust Features,SURF)算法是對(duì)SIFT算法的改進(jìn),其具有穩(wěn)健的局部特征點(diǎn)檢測(cè)和描述符特征。與SIFT算法相比,SURF算法采用了積分圖像和Harr特征使得SURF算子在速度上有了一定的提高。但上述兩種算法都要求建立高維描述符,需要大量的內(nèi)存空間和較長(zhǎng)的運(yùn)行時(shí)間[6],該兩種特征點(diǎn)提取算法都不適合應(yīng)用在對(duì)系統(tǒng)實(shí)時(shí)性要求較高的RGB-D SLAM算法中。
為滿足RGB-D SLAM算法對(duì)系統(tǒng)實(shí)時(shí)性的要求,在此使用運(yùn)算速度較快的ORB(Oriented FAST and rotated BRIEF)算法。該算法的運(yùn)算速度是SIFT的100倍,是SURF的10倍[7]。但是,ORB算法存在特征點(diǎn)分布不均勻、輸出重疊特征點(diǎn)較多等問(wèn)題。因此,本文提出一種改進(jìn)ORB算法,并且使用一種特征點(diǎn)分布均勻度的評(píng)價(jià)方法計(jì)算特征點(diǎn)的分布情況。
1 基本原理
1.1 RGB-D SLAM算法
RGB-D SLAM算法由前端數(shù)據(jù)處理和后端優(yōu)化處理兩部分組成。前端數(shù)據(jù)處理主要對(duì)Kinect相機(jī)采集的彩色圖像與深度圖像進(jìn)行處理,得到相鄰兩幀圖像之間的運(yùn)動(dòng)關(guān)系,進(jìn)而定量地估計(jì)相機(jī)的運(yùn)動(dòng)情況,恢復(fù)三維場(chǎng)景的空間結(jié)構(gòu)。后端優(yōu)化處理主要對(duì)前端生成的數(shù)據(jù)結(jié)果進(jìn)行優(yōu)化,使用濾波與非線性優(yōu)化方法、引入回環(huán)檢測(cè)解決RGB-D SLAM過(guò)程中存在的噪聲問(wèn)題,最終生成全局最優(yōu)的運(yùn)動(dòng)軌跡和三維空間環(huán)境地圖。
1.2 ORB算法基本原理
在ORB算法中,特征點(diǎn)提取采用改進(jìn)FAST(oFAST)算法,特征點(diǎn)描述子采用具有旋轉(zhuǎn)不變性的BRIEF(rBRIEF)算法。ORB算法對(duì)角點(diǎn)方向測(cè)量時(shí)使用灰度質(zhì)心法[8]。假設(shè)某角點(diǎn)的灰度與其所在的鄰域重心沒(méi)有完全重合,發(fā)生了偏移,可以通過(guò)角點(diǎn)灰度坐標(biāo)到質(zhì)心之間形成的向量計(jì)算出角點(diǎn)的主方向。定義角點(diǎn)鄰域的(p+q)階矩,如式(1)所示:
由式(4)可知,角點(diǎn)的方向可由角點(diǎn)與質(zhì)心的夾角表示。I(x,y)中的x和y的范圍控制在半徑為r的圓形區(qū)域內(nèi),提取到的角點(diǎn)具有旋轉(zhuǎn)不變性。
rBRIEF算法的主要思想是采用了隨機(jī)選點(diǎn)的機(jī)制,在特征點(diǎn)的周圍選取一定數(shù)量的像素點(diǎn),比較這些像素點(diǎn)與特征點(diǎn)對(duì)應(yīng)的灰度值。具體步驟如下:
(1)在FAST特征點(diǎn)周圍選取31×31的鄰域窗口,并在鄰域窗口內(nèi)隨機(jī)選擇5×5的像素塊對(duì),比較二者像素的大小,對(duì)其進(jìn)行二進(jìn)制賦值,相應(yīng)圖像塊的描述子分段函數(shù)τ定義為:
式中,p(x)和p(y)是鄰域內(nèi)隨機(jī)點(diǎn)x(u1,v1)和y(u2,v2)的灰度函數(shù)。
(2)在窗口中以特征點(diǎn)p為核心,選取n個(gè)(xi,yi)位置點(diǎn)對(duì),得到n維二進(jìn)制碼串,如式(6)所示:
(3)設(shè)定特征點(diǎn)描述子的方向使其具有旋轉(zhuǎn)不變性。在(xi,yi)位置點(diǎn)處,對(duì)n個(gè)二進(jìn)制測(cè)試向量,設(shè)定一個(gè)2×n矩陣Q,如式(7)所示:
(4)利用貪婪搜索算法,找出256個(gè)點(diǎn)對(duì)使其相關(guān)性最低,得到帶有方向的特征描述子rBRIEF。
2 改進(jìn)ORB算法
在RGB-D SLAM算法中,前端數(shù)據(jù)處理部分使用傳統(tǒng)ORB算法對(duì)圖像進(jìn)行特征點(diǎn)檢測(cè)與提取,會(huì)導(dǎo)致提取到的特征點(diǎn)分布不均勻,并且還會(huì)在圖像中的某一區(qū)域出現(xiàn)特征點(diǎn)重疊的情況。特征點(diǎn)分布不均勻以及重疊特征點(diǎn)的出現(xiàn)會(huì)影響移動(dòng)機(jī)器人運(yùn)動(dòng)狀態(tài)的估計(jì)。針對(duì)上述問(wèn)題,本文提出了一種改進(jìn)ORB算法,改進(jìn)ORB算法的流程如圖1所示。
2.1 改進(jìn)自適應(yīng)閾值FAST角點(diǎn)提取
首先,構(gòu)建圖像尺度金字塔,將高斯金字塔的每一層進(jìn)行網(wǎng)格劃分,增加空間尺度信息;其次,在進(jìn)行FAST角點(diǎn)提取時(shí),對(duì)圖像邊界進(jìn)行處理、設(shè)置感興趣區(qū)域[9];然后,使用初始閾值對(duì)特征點(diǎn)進(jìn)行提取,并對(duì)較難提取到的特征點(diǎn)所在的網(wǎng)格部分,采用先降低閾值再檢測(cè)的方法,同時(shí)對(duì)特征點(diǎn)為空的情況,設(shè)置最小閾值;最后,實(shí)現(xiàn)FAST角點(diǎn)自適應(yīng)閾值提取。改進(jìn)自適應(yīng)閾值FAST角點(diǎn)提取流程圖如圖2所示。
圖2中,在構(gòu)建圖像尺度金字塔網(wǎng)格劃分時(shí)需對(duì)參數(shù)進(jìn)行初始化,設(shè)置網(wǎng)格個(gè)數(shù),其中,i是網(wǎng)格行數(shù),j是網(wǎng)格列數(shù),rows和cols是金字塔分割的行、列數(shù)。感興趣區(qū)域隨著行數(shù)i和列數(shù)j數(shù)值大小的變化而變化。并對(duì)已在感興趣區(qū)域中提取到的特征點(diǎn)位置還原至已劃分的網(wǎng)格區(qū)域中。
2.2 引入非極大值抑制的方法剔除重疊點(diǎn)
非極大值抑制算法(Non-Maximum Suppression,NMS)[10]的本質(zhì)是在圖像中對(duì)需要檢測(cè)的目標(biāo)搜索局部極大值,并抑制非極大值元素。當(dāng)出現(xiàn)多個(gè)候選結(jié)果時(shí),根據(jù)設(shè)定的目標(biāo)條件對(duì)其進(jìn)行篩選并選擇最優(yōu)的效果。本文在對(duì)特征點(diǎn)輸出時(shí),為防止重疊特征點(diǎn)的出現(xiàn),選用非極大值抑制的方法。以圖像建立的尺度空間金字塔頂層為基準(zhǔn),選取在每層金字塔上都出現(xiàn)的特征點(diǎn)pi,pi∈P,P={p1,p2,…,pi}作為已有特征點(diǎn)。對(duì)候選特征點(diǎn)qj(非每層均出現(xiàn)),qj∈Q,Q={q1,q2,…,qj}進(jìn)行非極大值抑制剔除,防止特征點(diǎn)的重疊輸出。該剔除重疊特征點(diǎn)的方法步驟如下:
(1)在特征點(diǎn)輸出時(shí),計(jì)算圖像中現(xiàn)有的候選特征點(diǎn)qj所在的某網(wǎng)格區(qū)域與已有特征點(diǎn)pi坐標(biāo)之間的距離。設(shè)定距離的臨界閾值為l,候選特征點(diǎn)所在的坐標(biāo)和Harris角點(diǎn)響應(yīng)閾值為qj={xj,yj,εj};
(2)求解出候選特征點(diǎn)qj={xj,yj,εj}與特征點(diǎn)P={p1,p2,…,pi}之間的坐標(biāo)距離,篩選出距離不大于l的候選特征點(diǎn)q′j={xj,yj,εj};
(3)計(jì)算按照步驟(2)求出的距離值不超過(guò)l的候選特征點(diǎn)q′j={xj,yj,εj}的Harris角點(diǎn)響應(yīng)閾值ε′j,根據(jù)候選特征點(diǎn)響應(yīng)閾值的激烈程度(即ε′j數(shù)值大小)將這些候選特征點(diǎn)進(jìn)行從大到小排序;
(4)根據(jù)非極大值抑制算法的原理,將Harris角點(diǎn)響應(yīng)閾值ε′j極大值所在的候選特征點(diǎn)q′j={xj,yj,εj}保留下來(lái),得到特征點(diǎn)所處最佳位置的鄰近特征點(diǎn)。并將低閾值的鄰近候選特征點(diǎn)剔除,減少重疊特征點(diǎn)的輸出。
2.3 圖像特征點(diǎn)分布均勻性評(píng)價(jià)方法
圖像特征點(diǎn)分布均勻性評(píng)價(jià)用來(lái)判斷圖像中特征點(diǎn)分布是否均勻。如果圖像中不同分割區(qū)域內(nèi)特征點(diǎn)的數(shù)目相等或者接近,說(shuō)明圖像中的特征點(diǎn)分布較為均勻;反之,特征點(diǎn)分布不均勻。鑒于上述評(píng)價(jià)方法,本文在計(jì)算特征點(diǎn)分布情況時(shí)首先對(duì)待檢測(cè)的圖像進(jìn)行區(qū)域劃分,如圖3所示;接著,統(tǒng)計(jì)每個(gè)區(qū)域內(nèi)的特征點(diǎn)數(shù)量;然后,計(jì)算特征點(diǎn)區(qū)域統(tǒng)計(jì)分布的方差數(shù)值;最后,根據(jù)方差數(shù)值的大小判斷圖像特征點(diǎn)分布的均勻情況。從特征點(diǎn)方差數(shù)值的大小關(guān)系可以看出,方差數(shù)值越大,代表特征點(diǎn)數(shù)量的波動(dòng)越大,間接地反映特征點(diǎn)分布不均勻。
3 實(shí)驗(yàn)結(jié)果與分析
本實(shí)驗(yàn)基于實(shí)驗(yàn)室自主研發(fā)的輪式移動(dòng)機(jī)器人開(kāi)展,如圖4所示。其配有Kinect1.0深度攝像機(jī),系統(tǒng)操作環(huán)境是一臺(tái)配置為i3處理器、內(nèi)存為4.0 GB的電腦,運(yùn)行環(huán)境為Ubuntu14.04的32位indigo的開(kāi)源機(jī)器人操作系統(tǒng)(Robot Operating System,ROS)[11]。采集實(shí)驗(yàn)室場(chǎng)景的圖像信息,并對(duì)該場(chǎng)景實(shí)現(xiàn)移動(dòng)機(jī)器人的同步定位與地圖創(chuàng)建。
3.1 圖像特征點(diǎn)提取實(shí)驗(yàn)
輪式移動(dòng)機(jī)器人采集的實(shí)驗(yàn)室數(shù)據(jù)集包含彩色圖像與深度圖像,均為640×480的png格式。其中,深度圖像的位深度為16 bit,彩色圖像的位深度為24 bit。為使實(shí)驗(yàn)操作簡(jiǎn)潔方便,適合PCL可視化工具數(shù)據(jù)的讀取,兩種圖片的像素坐標(biāo)均已通過(guò)OpenNI[12]處理,實(shí)現(xiàn)一一對(duì)應(yīng)的坐標(biāo)關(guān)系。使用傳統(tǒng)ORB算法和改進(jìn)ORB算法對(duì)同一張圖像進(jìn)行特征點(diǎn)提取。實(shí)驗(yàn)結(jié)果如圖5所示。
從圖5可以看出,傳統(tǒng)ORB算法輸出的特征點(diǎn)提取效果分布情況較為密集,改進(jìn)ORB算法的特征點(diǎn)提取效果分布情況較為均勻。為了量化傳統(tǒng)ORB算法與改進(jìn)ORB算法圖像特征點(diǎn)分布的均勻情況,引入文中提出的圖像特征點(diǎn)分布均勻性評(píng)價(jià)方法計(jì)算特征點(diǎn)在圖像中的分布情況,如表1所示。
從表1中可以看出,當(dāng)特征點(diǎn)期望數(shù)值相同時(shí),改進(jìn)ORB算法提取到特征點(diǎn)的方差數(shù)值比傳統(tǒng)ORB算法提取到特征點(diǎn)的方差數(shù)值小。并且,隨著特征點(diǎn)期望數(shù)值的增加,相同圖像特征點(diǎn)數(shù)量的方差數(shù)值也在增加,即特征點(diǎn)在圖像中分布的均勻度降低。由于方差數(shù)值越大,表示圖像中特征點(diǎn)分布的波動(dòng)越大,即圖像特征點(diǎn)分布的均勻情況較差,因此,該實(shí)驗(yàn)結(jié)果顯示,改進(jìn)ORB算法提取到的圖像特征點(diǎn)分布的均勻情況較好。
3.2 重疊特征點(diǎn)的剔除
傳統(tǒng)ORB算法在特征點(diǎn)進(jìn)行輸出時(shí),輸出的特征點(diǎn)會(huì)在圖像中出現(xiàn)重疊現(xiàn)象。改進(jìn)ORB算法在特征點(diǎn)輸出時(shí),采取非極大值抑制的算法對(duì)其進(jìn)行處理,減少重疊特征點(diǎn)的輸出。待檢測(cè)的圖像是否采用非極大值抑制算法進(jìn)行重疊特征點(diǎn)剔除的實(shí)驗(yàn)結(jié)果如圖6所示。
圖6(a)是傳統(tǒng)ORB算法未使用非極大值抑制對(duì)輸出特征點(diǎn)進(jìn)行處理的整張圖像的視覺(jué)效果,圖6(b)是改進(jìn)ORB算法使用非極大值抑制對(duì)輸出特征點(diǎn)進(jìn)行處理的整張圖像的視覺(jué)效果。選擇圖像中的某一區(qū)域進(jìn)行放大對(duì)比,可以看出改進(jìn)ORB算法的重疊特征點(diǎn)的數(shù)量明顯減少,有效地抑制低閾值特征點(diǎn)的輸出。
3.3 算法實(shí)時(shí)性分析
由于RGB-D SLAM算法對(duì)實(shí)時(shí)性的要求較為嚴(yán)格,對(duì)比改進(jìn)ORB算法與傳統(tǒng)ORB算法在特征點(diǎn)提取與匹配消耗的時(shí)間,比較結(jié)果如表2所示。
從表2中可以看出,ORB算法的實(shí)時(shí)性與特征點(diǎn)期望的數(shù)值有著緊密的聯(lián)系,即特征點(diǎn)期望的數(shù)值越大,特征點(diǎn)提取與匹配消耗的時(shí)間就越長(zhǎng);當(dāng)特征點(diǎn)期望的數(shù)量相同時(shí),同一張圖像改進(jìn)ORB算法比傳統(tǒng)ORB算法消耗的時(shí)間少。實(shí)驗(yàn)結(jié)果表明,改進(jìn)ORB算法可以更好地應(yīng)用在RGB-D SLAM算法中。
4 結(jié)論
本文在傳統(tǒng)ORB算法的基礎(chǔ)上,針對(duì)其存在特征點(diǎn)分布不均勻、重疊特征點(diǎn)較多的問(wèn)題,提出一種改進(jìn)ORB算法,并將該算法應(yīng)用在移動(dòng)機(jī)器人視覺(jué)導(dǎo)航中的RGB-D SLAM算法中。使用實(shí)驗(yàn)室自主研發(fā)的輪式移動(dòng)機(jī)器人分別從圖像特征點(diǎn)分布的均勻情況、特征點(diǎn)輸出的重疊情況以及特征點(diǎn)提取與匹配消耗的時(shí)間情況三個(gè)方面比較傳統(tǒng)ORB算法與改進(jìn)ORB算法。實(shí)驗(yàn)結(jié)果表明,改進(jìn)ORB算法特征點(diǎn)的分布較為均勻、輸出特征點(diǎn)重疊數(shù)量較少、執(zhí)行時(shí)間較短,可以更好地應(yīng)用在RGB-D SLAM算法中。
參考文獻(xiàn)
[1] KHAIRUDDIN A R,TALIB M S,HARON H.Review on simultaneous localization and mapping(SLAM)[C].IEEE International Conference on Control System,Computing and Engineering.IEEE,2016:85-90.
[2] 黨宏社,候金良,強(qiáng)華,等.基于視覺(jué)引導(dǎo)的SCARA機(jī)器人自動(dòng)裝配系統(tǒng)[J].電子技術(shù)應(yīng)用,2017,43(5):21-24.
[3] LOWE D G.Distinctive image features from scale-invariant keypoints[J].International Journal of Computer Vision,2004,60(2):91-110.
[4] BAY H,ESS A,TUYTELAARS T,et al.Speeded-up robust features(SURF)[J].Computer Vision & Image Understanding,2008,110(3):346-359.
[5] RUBLEE E,RABAUD V,KONOLIGE K,et al.ORB:an efficient alternative to SIFT or SURF[C].International Conference on Computer Vision.IEEE,2012:2564-2571.
[6] 劉宏偉,余輝亮,梁艷陽(yáng).ORB特征四叉樹(shù)均勻分布算法[J].自動(dòng)化儀表,2018,39(5):52-54,59.
[7] 毛星云.OpenCV3編程入門[M].北京:電子工業(yè)出版社,2015.
[8] XU J,CHANG H W,YANG S,et al.Fast feature-based video stabilization without accumulative global motion estimation[J].IEEE Transactions on Consumer Electronics,2012,58(3):993-999.
[9] PRIVITERA C M,STARK L W.Algorithms for defining visual regions-of-interest: comparison with eye fixations[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2000,22(9):970-982.
[10] HOSANG J,BENENSON R,SCHIELE B.A convnet for non-maximum suppression[M].Pattern Recognition.Springer International Publishing,2016:192-204.
[11] KEI O.ROS(robot operating system)[J].Journal of the Robotics Society of Japan,2012,30(9):830-835.
[12] 宋艷.基于圖像特征的RGB-D視覺(jué)SLAM算法[D].青島:中國(guó)海洋大學(xué),2015.
作者信息:
成 怡1,2,佟曉宇1,2
(1.天津工業(yè)大學(xué) 電氣工程與自動(dòng)化學(xué)院,天津300387;
2.天津工業(yè)大學(xué) 天津市電工電能新技術(shù)重點(diǎn)實(shí)驗(yàn)室,天津300387)