文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.183046
中文引用格式: 成怡,,佟曉宇. 基于改進(jìn)ORB算法的移動(dòng)機(jī)器人視覺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ā)揮著重要的意義,。隨著視覺傳感器[2]的發(fā)展,視覺SLAM在移動(dòng)機(jī)器人中的應(yīng)用越趨普遍,。視覺信息與慣性導(dǎo)航系統(tǒng)相結(jié)合,,可以避免移動(dòng)機(jī)器人對有源信號的依賴,更滿足于無源條件下的導(dǎo)航需求,,具有體積小,、重量輕、安裝方便等優(yōu)點(diǎn),。根據(jù)使用視覺傳感器類型的不同,,將視覺SLAM劃分為:單目(Monocular)視覺SLAM、雙目(Binocular)視覺SLAM和深度(RGB-D)視覺SLAM,。深度視覺SLAM利用深度相機(jī)記錄周圍場景的同時(shí),,能夠輸出RGB-D圖像信息(彩色圖像與深度圖像),有效地解決了單目相機(jī)沒有深度信息,、雙目相機(jī)求解深度信息計(jì)算量繁重的問題,。在RGB-D SLAM算法中,特征提取算法的選擇會(huì)影響整個(gè)系統(tǒng)的實(shí)時(shí)性,。目前,,在RGB-D SLAM算法中應(yīng)用最為廣泛的特征點(diǎn)檢測與提取算法有SIFT[3]、SURF[4]和ORB[5]3種。
尺度不變的特征變換(Scale-invariant Feature Transform,,SIFT)是一種特征檢測與描述子提取算法,。該算法在旋轉(zhuǎn)、尺度的縮放,、光照條件的變化,、噪聲干擾等方面受到的影響較小,具有較好地穩(wěn)定性,。加速魯棒性特征(Speeded Up Robust Features,,SURF)算法是對SIFT算法的改進(jìn),其具有穩(wěn)健的局部特征點(diǎn)檢測和描述符特征,。與SIFT算法相比,,SURF算法采用了積分圖像和Harr特征使得SURF算子在速度上有了一定的提高。但上述兩種算法都要求建立高維描述符,,需要大量的內(nèi)存空間和較長的運(yùn)行時(shí)間[6],,該兩種特征點(diǎn)提取算法都不適合應(yīng)用在對系統(tǒng)實(shí)時(shí)性要求較高的RGB-D SLAM算法中。
為滿足RGB-D SLAM算法對系統(tǒng)實(shí)時(shí)性的要求,,在此使用運(yùn)算速度較快的ORB(Oriented FAST and rotated BRIEF)算法,。該算法的運(yùn)算速度是SIFT的100倍,是SURF的10倍[7],。但是,,ORB算法存在特征點(diǎn)分布不均勻、輸出重疊特征點(diǎn)較多等問題,。因此,,本文提出一種改進(jìn)ORB算法,并且使用一種特征點(diǎn)分布均勻度的評價(jià)方法計(jì)算特征點(diǎn)的分布情況,。
1 基本原理
1.1 RGB-D SLAM算法
RGB-D SLAM算法由前端數(shù)據(jù)處理和后端優(yōu)化處理兩部分組成,。前端數(shù)據(jù)處理主要對Kinect相機(jī)采集的彩色圖像與深度圖像進(jìn)行處理,得到相鄰兩幀圖像之間的運(yùn)動(dòng)關(guān)系,,進(jìn)而定量地估計(jì)相機(jī)的運(yùn)動(dòng)情況,,恢復(fù)三維場景的空間結(jié)構(gòu)。后端優(yōu)化處理主要對前端生成的數(shù)據(jù)結(jié)果進(jìn)行優(yōu)化,,使用濾波與非線性優(yōu)化方法,、引入回環(huán)檢測解決RGB-D SLAM過程中存在的噪聲問題,最終生成全局最優(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算法對角點(diǎn)方向測量時(shí)使用灰度質(zhì)心法[8],。假設(shè)某角點(diǎn)的灰度與其所在的鄰域重心沒有完全重合,發(fā)生了偏移,可以通過角點(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)對應(yīng)的灰度值,。具體步驟如下:
(1)在FAST特征點(diǎn)周圍選取31×31的鄰域窗口,,并在鄰域窗口內(nèi)隨機(jī)選擇5×5的像素塊對,比較二者像素的大小,,對其進(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)對,得到n維二進(jìn)制碼串,,如式(6)所示:
(3)設(shè)定特征點(diǎn)描述子的方向使其具有旋轉(zhuǎn)不變性。在(xi,,yi)位置點(diǎn)處,,對n個(gè)二進(jìn)制測試向量,設(shè)定一個(gè)2×n矩陣Q,,如式(7)所示:
(4)利用貪婪搜索算法,,找出256個(gè)點(diǎn)對使其相關(guān)性最低,得到帶有方向的特征描述子rBRIEF,。
2 改進(jìn)ORB算法
在RGB-D SLAM算法中,,前端數(shù)據(jù)處理部分使用傳統(tǒng)ORB算法對圖像進(jìn)行特征點(diǎn)檢測與提取,會(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ì)。針對上述問題,,本文提出了一種改進(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í),,對圖像邊界進(jìn)行處理、設(shè)置感興趣區(qū)域[9],;然后,,使用初始閾值對特征點(diǎn)進(jìn)行提取,并對較難提取到的特征點(diǎn)所在的網(wǎng)格部分,,采用先降低閾值再檢測的方法,,同時(shí)對特征點(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í)需對參數(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ù)值大小的變化而變化,。并對已在感興趣區(qū)域中提取到的特征點(diǎn)位置還原至已劃分的網(wǎng)格區(qū)域中,。
2.2 引入非極大值抑制的方法剔除重疊點(diǎn)
非極大值抑制算法(Non-Maximum Suppression,NMS)[10]的本質(zhì)是在圖像中對需要檢測的目標(biāo)搜索局部極大值,,并抑制非極大值元素,。當(dāng)出現(xiàn)多個(gè)候選結(jié)果時(shí),根據(jù)設(shè)定的目標(biāo)條件對其進(jìn)行篩選并選擇最優(yōu)的效果,。本文在對特征點(diǎn)輸出時(shí),,為防止重疊特征點(diǎn)的出現(xiàn),選用非極大值抑制的方法,。以圖像建立的尺度空間金字塔頂層為基準(zhǔn),,選取在每層金字塔上都出現(xiàn)的特征點(diǎn)pi,pi∈P,,P={p1,,p2,,…,pi}作為已有特征點(diǎn),。對候選特征點(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)求出的距離值不超過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}保留下來,,得到特征點(diǎn)所處最佳位置的鄰近特征點(diǎn)。并將低閾值的鄰近候選特征點(diǎn)剔除,,減少重疊特征點(diǎn)的輸出,。
2.3 圖像特征點(diǎn)分布均勻性評價(jià)方法
圖像特征點(diǎn)分布均勻性評價(jià)用來判斷圖像中特征點(diǎn)分布是否均勻。如果圖像中不同分割區(qū)域內(nèi)特征點(diǎn)的數(shù)目相等或者接近,,說明圖像中的特征點(diǎn)分布較為均勻,;反之,,特征點(diǎn)分布不均勻。鑒于上述評價(jià)方法,,本文在計(jì)算特征點(diǎn)分布情況時(shí)首先對待檢測的圖像進(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ī)器人開展,,如圖4所示。其配有Kinect1.0深度攝像機(jī),,系統(tǒng)操作環(huán)境是一臺(tái)配置為i3處理器,、內(nèi)存為4.0 GB的電腦,運(yùn)行環(huán)境為Ubuntu14.04的32位indigo的開源機(jī)器人操作系統(tǒng)(Robot Operating System,,ROS)[11],。采集實(shí)驗(yàn)室場景的圖像信息,并對該場景實(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)操作簡潔方便,,適合PCL可視化工具數(shù)據(jù)的讀取,,兩種圖片的像素坐標(biāo)均已通過OpenNI[12]處理,實(shí)現(xiàn)一一對應(yīng)的坐標(biāo)關(guān)系,。使用傳統(tǒng)ORB算法和改進(jìn)ORB算法對同一張圖像進(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)分布均勻性評價(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í),采取非極大值抑制的算法對其進(jìn)行處理,,減少重疊特征點(diǎn)的輸出,。待檢測的圖像是否采用非極大值抑制算法進(jìn)行重疊特征點(diǎn)剔除的實(shí)驗(yàn)結(jié)果如圖6所示。
圖6(a)是傳統(tǒng)ORB算法未使用非極大值抑制對輸出特征點(diǎn)進(jìn)行處理的整張圖像的視覺效果,,圖6(b)是改進(jìn)ORB算法使用非極大值抑制對輸出特征點(diǎn)進(jìn)行處理的整張圖像的視覺效果,。選擇圖像中的某一區(qū)域進(jìn)行放大對比,可以看出改進(jìn)ORB算法的重疊特征點(diǎn)的數(shù)量明顯減少,,有效地抑制低閾值特征點(diǎn)的輸出,。
3.3 算法實(shí)時(shí)性分析
由于RGB-D SLAM算法對實(shí)時(shí)性的要求較為嚴(yán)格,對比改進(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í)間就越長;當(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ǔ)上,,針對其存在特征點(diǎn)分布不均勻,、重疊特征點(diǎn)較多的問題,,提出一種改進(jìn)ORB算法,,并將該算法應(yīng)用在移動(dòng)機(jī)器人視覺導(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)華,,等.基于視覺引導(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] 劉宏偉,,余輝亮,,梁艷陽.ORB特征四叉樹均勻分布算法[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視覺SLAM算法[D].青島:中國海洋大學(xué),,2015.
作者信息:
成 怡1,,2,佟曉宇1,,2
(1.天津工業(yè)大學(xué) 電氣工程與自動(dòng)化學(xué)院,,天津300387;
2.天津工業(yè)大學(xué) 天津市電工電能新技術(shù)重點(diǎn)實(shí)驗(yàn)室,,天津300387)