文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.183046
中文引用格式: 成怡,佟曉宇. 基于改進ORB算法的移動機器人視覺SLAM方法研究[J].電子技術應用,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 引言
作為移動機器人實現智能化的關鍵技術,同步定位與地圖創(chuàng)建(Simultaneous Localization And Mapping,SLAM)[1]在移動機器人的自主導航、自主控制中發(fā)揮著重要的意義。隨著視覺傳感器[2]的發(fā)展,視覺SLAM在移動機器人中的應用越趨普遍。視覺信息與慣性導航系統(tǒng)相結合,可以避免移動機器人對有源信號的依賴,更滿足于無源條件下的導航需求,具有體積小、重量輕、安裝方便等優(yōu)點。根據使用視覺傳感器類型的不同,將視覺SLAM劃分為:單目(Monocular)視覺SLAM、雙目(Binocular)視覺SLAM和深度(RGB-D)視覺SLAM。深度視覺SLAM利用深度相機記錄周圍場景的同時,能夠輸出RGB-D圖像信息(彩色圖像與深度圖像),有效地解決了單目相機沒有深度信息、雙目相機求解深度信息計算量繁重的問題。在RGB-D SLAM算法中,特征提取算法的選擇會影響整個系統(tǒng)的實時性。目前,在RGB-D SLAM算法中應用最為廣泛的特征點檢測與提取算法有SIFT[3]、SURF[4]和ORB[5]3種。
尺度不變的特征變換(Scale-invariant Feature Transform,SIFT)是一種特征檢測與描述子提取算法。該算法在旋轉、尺度的縮放、光照條件的變化、噪聲干擾等方面受到的影響較小,具有較好地穩(wěn)定性。加速魯棒性特征(Speeded Up Robust Features,SURF)算法是對SIFT算法的改進,其具有穩(wěn)健的局部特征點檢測和描述符特征。與SIFT算法相比,SURF算法采用了積分圖像和Harr特征使得SURF算子在速度上有了一定的提高。但上述兩種算法都要求建立高維描述符,需要大量的內存空間和較長的運行時間[6],該兩種特征點提取算法都不適合應用在對系統(tǒng)實時性要求較高的RGB-D SLAM算法中。
為滿足RGB-D SLAM算法對系統(tǒng)實時性的要求,在此使用運算速度較快的ORB(Oriented FAST and rotated BRIEF)算法。該算法的運算速度是SIFT的100倍,是SURF的10倍[7]。但是,ORB算法存在特征點分布不均勻、輸出重疊特征點較多等問題。因此,本文提出一種改進ORB算法,并且使用一種特征點分布均勻度的評價方法計算特征點的分布情況。
1 基本原理
1.1 RGB-D SLAM算法
RGB-D SLAM算法由前端數據處理和后端優(yōu)化處理兩部分組成。前端數據處理主要對Kinect相機采集的彩色圖像與深度圖像進行處理,得到相鄰兩幀圖像之間的運動關系,進而定量地估計相機的運動情況,恢復三維場景的空間結構。后端優(yōu)化處理主要對前端生成的數據結果進行優(yōu)化,使用濾波與非線性優(yōu)化方法、引入回環(huán)檢測解決RGB-D SLAM過程中存在的噪聲問題,最終生成全局最優(yōu)的運動軌跡和三維空間環(huán)境地圖。
1.2 ORB算法基本原理
在ORB算法中,特征點提取采用改進FAST(oFAST)算法,特征點描述子采用具有旋轉不變性的BRIEF(rBRIEF)算法。ORB算法對角點方向測量時使用灰度質心法[8]。假設某角點的灰度與其所在的鄰域重心沒有完全重合,發(fā)生了偏移,可以通過角點灰度坐標到質心之間形成的向量計算出角點的主方向。定義角點鄰域的(p+q)階矩,如式(1)所示:
由式(4)可知,角點的方向可由角點與質心的夾角表示。I(x,y)中的x和y的范圍控制在半徑為r的圓形區(qū)域內,提取到的角點具有旋轉不變性。
rBRIEF算法的主要思想是采用了隨機選點的機制,在特征點的周圍選取一定數量的像素點,比較這些像素點與特征點對應的灰度值。具體步驟如下:
(1)在FAST特征點周圍選取31×31的鄰域窗口,并在鄰域窗口內隨機選擇5×5的像素塊對,比較二者像素的大小,對其進行二進制賦值,相應圖像塊的描述子分段函數τ定義為:
式中,p(x)和p(y)是鄰域內隨機點x(u1,v1)和y(u2,v2)的灰度函數。
(2)在窗口中以特征點p為核心,選取n個(xi,yi)位置點對,得到n維二進制碼串,如式(6)所示:
(3)設定特征點描述子的方向使其具有旋轉不變性。在(xi,yi)位置點處,對n個二進制測試向量,設定一個2×n矩陣Q,如式(7)所示:
(4)利用貪婪搜索算法,找出256個點對使其相關性最低,得到帶有方向的特征描述子rBRIEF。
2 改進ORB算法
在RGB-D SLAM算法中,前端數據處理部分使用傳統(tǒng)ORB算法對圖像進行特征點檢測與提取,會導致提取到的特征點分布不均勻,并且還會在圖像中的某一區(qū)域出現特征點重疊的情況。特征點分布不均勻以及重疊特征點的出現會影響移動機器人運動狀態(tài)的估計。針對上述問題,本文提出了一種改進ORB算法,改進ORB算法的流程如圖1所示。
2.1 改進自適應閾值FAST角點提取
首先,構建圖像尺度金字塔,將高斯金字塔的每一層進行網格劃分,增加空間尺度信息;其次,在進行FAST角點提取時,對圖像邊界進行處理、設置感興趣區(qū)域[9];然后,使用初始閾值對特征點進行提取,并對較難提取到的特征點所在的網格部分,采用先降低閾值再檢測的方法,同時對特征點為空的情況,設置最小閾值;最后,實現FAST角點自適應閾值提取。改進自適應閾值FAST角點提取流程圖如圖2所示。
圖2中,在構建圖像尺度金字塔網格劃分時需對參數進行初始化,設置網格個數,其中,i是網格行數,j是網格列數,rows和cols是金字塔分割的行、列數。感興趣區(qū)域隨著行數i和列數j數值大小的變化而變化。并對已在感興趣區(qū)域中提取到的特征點位置還原至已劃分的網格區(qū)域中。
2.2 引入非極大值抑制的方法剔除重疊點
非極大值抑制算法(Non-Maximum Suppression,NMS)[10]的本質是在圖像中對需要檢測的目標搜索局部極大值,并抑制非極大值元素。當出現多個候選結果時,根據設定的目標條件對其進行篩選并選擇最優(yōu)的效果。本文在對特征點輸出時,為防止重疊特征點的出現,選用非極大值抑制的方法。以圖像建立的尺度空間金字塔頂層為基準,選取在每層金字塔上都出現的特征點pi,pi∈P,P={p1,p2,…,pi}作為已有特征點。對候選特征點qj(非每層均出現),qj∈Q,Q={q1,q2,…,qj}進行非極大值抑制剔除,防止特征點的重疊輸出。該剔除重疊特征點的方法步驟如下:
(1)在特征點輸出時,計算圖像中現有的候選特征點qj所在的某網格區(qū)域與已有特征點pi坐標之間的距離。設定距離的臨界閾值為l,候選特征點所在的坐標和Harris角點響應閾值為qj={xj,yj,εj};
(2)求解出候選特征點qj={xj,yj,εj}與特征點P={p1,p2,…,pi}之間的坐標距離,篩選出距離不大于l的候選特征點q′j={xj,yj,εj};
(3)計算按照步驟(2)求出的距離值不超過l的候選特征點q′j={xj,yj,εj}的Harris角點響應閾值ε′j,根據候選特征點響應閾值的激烈程度(即ε′j數值大小)將這些候選特征點進行從大到小排序;
(4)根據非極大值抑制算法的原理,將Harris角點響應閾值ε′j極大值所在的候選特征點q′j={xj,yj,εj}保留下來,得到特征點所處最佳位置的鄰近特征點。并將低閾值的鄰近候選特征點剔除,減少重疊特征點的輸出。
2.3 圖像特征點分布均勻性評價方法
圖像特征點分布均勻性評價用來判斷圖像中特征點分布是否均勻。如果圖像中不同分割區(qū)域內特征點的數目相等或者接近,說明圖像中的特征點分布較為均勻;反之,特征點分布不均勻。鑒于上述評價方法,本文在計算特征點分布情況時首先對待檢測的圖像進行區(qū)域劃分,如圖3所示;接著,統(tǒng)計每個區(qū)域內的特征點數量;然后,計算特征點區(qū)域統(tǒng)計分布的方差數值;最后,根據方差數值的大小判斷圖像特征點分布的均勻情況。從特征點方差數值的大小關系可以看出,方差數值越大,代表特征點數量的波動越大,間接地反映特征點分布不均勻。
3 實驗結果與分析
本實驗基于實驗室自主研發(fā)的輪式移動機器人開展,如圖4所示。其配有Kinect1.0深度攝像機,系統(tǒng)操作環(huán)境是一臺配置為i3處理器、內存為4.0 GB的電腦,運行環(huán)境為Ubuntu14.04的32位indigo的開源機器人操作系統(tǒng)(Robot Operating System,ROS)[11]。采集實驗室場景的圖像信息,并對該場景實現移動機器人的同步定位與地圖創(chuàng)建。
3.1 圖像特征點提取實驗
輪式移動機器人采集的實驗室數據集包含彩色圖像與深度圖像,均為640×480的png格式。其中,深度圖像的位深度為16 bit,彩色圖像的位深度為24 bit。為使實驗操作簡潔方便,適合PCL可視化工具數據的讀取,兩種圖片的像素坐標均已通過OpenNI[12]處理,實現一一對應的坐標關系。使用傳統(tǒng)ORB算法和改進ORB算法對同一張圖像進行特征點提取。實驗結果如圖5所示。
從圖5可以看出,傳統(tǒng)ORB算法輸出的特征點提取效果分布情況較為密集,改進ORB算法的特征點提取效果分布情況較為均勻。為了量化傳統(tǒng)ORB算法與改進ORB算法圖像特征點分布的均勻情況,引入文中提出的圖像特征點分布均勻性評價方法計算特征點在圖像中的分布情況,如表1所示。
從表1中可以看出,當特征點期望數值相同時,改進ORB算法提取到特征點的方差數值比傳統(tǒng)ORB算法提取到特征點的方差數值小。并且,隨著特征點期望數值的增加,相同圖像特征點數量的方差數值也在增加,即特征點在圖像中分布的均勻度降低。由于方差數值越大,表示圖像中特征點分布的波動越大,即圖像特征點分布的均勻情況較差,因此,該實驗結果顯示,改進ORB算法提取到的圖像特征點分布的均勻情況較好。
3.2 重疊特征點的剔除
傳統(tǒng)ORB算法在特征點進行輸出時,輸出的特征點會在圖像中出現重疊現象。改進ORB算法在特征點輸出時,采取非極大值抑制的算法對其進行處理,減少重疊特征點的輸出。待檢測的圖像是否采用非極大值抑制算法進行重疊特征點剔除的實驗結果如圖6所示。
圖6(a)是傳統(tǒng)ORB算法未使用非極大值抑制對輸出特征點進行處理的整張圖像的視覺效果,圖6(b)是改進ORB算法使用非極大值抑制對輸出特征點進行處理的整張圖像的視覺效果。選擇圖像中的某一區(qū)域進行放大對比,可以看出改進ORB算法的重疊特征點的數量明顯減少,有效地抑制低閾值特征點的輸出。
3.3 算法實時性分析
由于RGB-D SLAM算法對實時性的要求較為嚴格,對比改進ORB算法與傳統(tǒng)ORB算法在特征點提取與匹配消耗的時間,比較結果如表2所示。
從表2中可以看出,ORB算法的實時性與特征點期望的數值有著緊密的聯系,即特征點期望的數值越大,特征點提取與匹配消耗的時間就越長;當特征點期望的數量相同時,同一張圖像改進ORB算法比傳統(tǒng)ORB算法消耗的時間少。實驗結果表明,改進ORB算法可以更好地應用在RGB-D SLAM算法中。
4 結論
本文在傳統(tǒng)ORB算法的基礎上,針對其存在特征點分布不均勻、重疊特征點較多的問題,提出一種改進ORB算法,并將該算法應用在移動機器人視覺導航中的RGB-D SLAM算法中。使用實驗室自主研發(fā)的輪式移動機器人分別從圖像特征點分布的均勻情況、特征點輸出的重疊情況以及特征點提取與匹配消耗的時間情況三個方面比較傳統(tǒng)ORB算法與改進ORB算法。實驗結果表明,改進ORB算法特征點的分布較為均勻、輸出特征點重疊數量較少、執(zhí)行時間較短,可以更好地應用在RGB-D SLAM算法中。
參考文獻
[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] 黨宏社,候金良,強華,等.基于視覺引導的SCARA機器人自動裝配系統(tǒng)[J].電子技術應用,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].自動化儀表,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].青島:中國海洋大學,2015.
作者信息:
成 怡1,2,佟曉宇1,2
(1.天津工業(yè)大學 電氣工程與自動化學院,天津300387;
2.天津工業(yè)大學 天津市電工電能新技術重點實驗室,天津300387)