呂丹婭,姚劍敏,郭太良
(福州大學 物理與信息工程學院,福建 福州 350116)
?
改進ORB算法在單目視覺SLAM特征匹配中的應用
呂丹婭,姚劍敏,郭太良
(福州大學 物理與信息工程學院,福建 福州 350116)
針對單目視覺同步定位與地圖構建問題對傳統定向二進制描述符算法進行改進,結合快速魯棒特征算法的思想,將尺度空間理論引入傳統ORB算法中,同時根據機器人的運動先驗信息,預測特征點的可能范圍,避免在全局范圍內對特征點的檢測和匹配。實驗表明,改進的ORB算法能顯著提高匹配正確率,在多尺度方面表現出色,并能有效減少運算時間,平均耗時14 ms,處理速度約為傳統ORB算法的1.3倍、SURF算法的10倍、尺度不變特征變換(Scale-invariant Feature Transform,SIFT)算法的26倍,適用于單目視覺SLAM問題。
SLAM;特征匹配;改進ORB;尺度不變性
單目視覺SLAM(Simultaneous Localization and Map-building)問題一直都是國內外研究的熱點和難點。單目視覺SLAM通過在移動機器人上架設單一攝像頭獲取環境圖像,從圖像中提取特征點,在機器人移動過程中,將里程計獲取的機器人運動信息與攝像頭獲取到的環境特征點的運動信息相融合,邊構建環境地圖邊修正自身的位置信息,從而實現同步定位與地圖構建[1]。圖像特征匹配在單目視覺SLAM問題中十分關鍵,一旦匹配失誤,很可能造成機器人定位失敗,因此對圖像特征匹配算法的魯棒性要求較高。同時,由于是在機器人移動的過程中進行定位與地圖構建,對算法的運算速度也有較高要求。
目前主要的圖像特征匹配算法有[2]:SIFT算法、SURF(Speeded Up Robust Features)算法及ORB(Oriented Fast and Rotated Binary Robust Independent Elementary Features)算法。其中SIFT和SURF應用尤為廣泛,它們的匹配精確度高,對多種圖像變換都適用,但運算速度慢,無法適用于對實時性有較高要求的單目視覺SLAM問題。ORB算法[3]是目前最為快速的圖像特征匹配算法之一,在光照魯棒性方面有更加突出的表現,然而ORB算法不具有尺度不變性,這對于單目視覺SLAM問題是致命的。在機器人移動過程中,攝像頭所拍攝的環境圖像不斷變化,圖像上的環境特征尺度更是無時無刻不在變換。同時,以上3種圖像特征匹配算法還存在一個共同的問題:當環境圖像中存在相似度較高的區域時,容易出現誤匹配[4]。這對單目視覺SLAM問題來說同樣是致命的。
對此,Yanyan Qin等人在文獻[5]中提出一種改進的ORB算法。該算法采用SIFT檢測特征點,再使用ORB對特征點進行描述,根據Hamming距離與預設閾值的比較,實現特征點匹配。此算法有效改善了ORB的尺度不變性,但由于采用SIFT檢測,算法復雜度增加,平均匹配時間比ORB增加了19.33 ms,同時,由于采用的是Hamming距離匹配,在特征點相似度較高的情況下匹配精度較低。Ye Zhu等人在文獻[6]中提出,先對圖像建立高斯尺度金字塔,在金字塔的每一層上分別進行ORB檢測和描述,使用隨機抽樣一致性(RANdom SAmple Consensus,RANSAC)算法移除錯誤匹配對。該方法使ORB的尺度不變性有很大提高,匹配精度亦得到改善,但RANSAC的缺陷是其迭代次數沒有上限,耗費大量的時間,若設置迭代次數上限,則可能得不到最優模型,甚至得到的模型是錯誤的,因此需要平衡精度和時間,并且匹配效果不穩定。由于RANSAC只留下符合其估計模型的匹配對,會漏掉大量正確但不完全符合模型的匹配對,匹配效率不高,且無法準確檢測分布不均勻的匹配對。
針對以上問題和單目視覺SLAM這一特定應用,本文提出一種改進的ORB算法。結合SURF尺度不變性的思想,在ORB算法中引入尺度空間理論,使改進的ORB算法兼具尺度不變性和快速運算的特點。同時,根據機器人的運動先驗信息,預測特征在下一幀圖像中的位置,進行基于先驗信息的匹配,降低誤匹配率,也提高了匹配速度。
單目視覺SLAM問題一般采用SIFT和SURF作為圖像特征匹配算法,然而這兩個算法的時間復雜度較大,影響了系統的實時性。ORB的運算速度比SIFT快了兩個數量級,比SURF快了一個數量級[3],因此本文考慮在單目視覺SLAM中采用ORB算法做圖像特征匹配。
1.1 原理
傳統ORB算法[3,7]使用FAST算法檢測圖像角點。對圖像中某一個像素p,若它周圍鄰域內存在連續的n個像素與它處在不同的區域,則認為該像素點p是一個角點,取角點為圖像的特征點[8],如圖1所示。

圖1 FAST角點檢測

(1)
特征點鄰域的質心坐標C為
(2)
則質心的方向定義為
(3)
θ為該特征點的主方向。
在計算特征描述子時,事先采用窮舉算法訓練出n個相關系數接近0.5的隨機點對。將該組點對根據特征點的質心方向進行旋轉,以保證描述子的旋轉不變性。
將原始圖像先經過高斯濾波以降低噪聲的影響,然后采用如下準則生成二進制描述子

(4)
式中:(x,y)為旋轉后的隨機點對;p(x)為圖像塊p在像素點x=(u,v)處的灰度值。由此獲得n位二進制比特串描述子
(5)
通常使用K近鄰(K-Nearest Neighbor,KNN)[9]做特征匹配。在單目視覺SLAM問題中,假設系統已運行一段時間,使用拍攝到的特征點的信息構建了SLAM特征庫。此時機器人運動,攝像頭再獲取到一幀圖像。首先,將攝像頭獲取的圖像中提取到的特征點與SLAM特征庫中的特征點做K=2的雙向K近鄰匹配。即圖像中的每一個特征點,都在SLAM特征庫中找到與其匹配距離最近和次近的兩個特征點,分別組成匹配對,反之亦然。匹配距離可以是Hamming距離。然后,采用以下方法篩選匹配對:剔除最近鄰匹配距離/次近鄰匹配距離>0.6的匹配對;剔除非對稱的匹配對,即如果圖像中的特征點A匹配SLAM特征庫中的特征點B,但特征點B不匹配特征點A,則同時剔除特征點A和特征點B各自的匹配對,反之亦然;剔除相似度不夠高的匹配對。
1.2 存在問題
由1.1小節分析可知,傳統ORB算法使用FAST算法檢測圖像中的角點,而FAST檢測到的角點不具有尺度信息,因此最終獲得的特征點不具有尺度不變性。當特征點發生較大尺度變化時,傳統ORB算法的匹配效果極差,如圖2所示。對于特征點會不斷發生較大尺度變化的單目視覺SLAM來說,傳統ORB算法具有極大的缺陷。

圖2 傳統ORB算法在大尺度變化下的匹配效果
同時K近鄰匹配只是對特征點的描述子進行比較,并不考慮特征點在圖像中的位置。若圖像中存在相似的區域,極易導致匹配失誤,而單目視覺SLAM所拍攝的是室內環境圖像,很難保證沒有相似的區域。
針對傳統ORB算法在單目視覺SLAM中存在的問題,本文在傳統ORB算法的基礎上,結合SURF的思想引入尺度空間,使得改進后的ORB算法具有尺度不變性。同時采用基于先驗信息的匹配,根據機器人的運動先驗信息,預測特征點在下一幀圖像中可能分布的范圍,在此范圍內進行特征點的檢測及匹配,避免了K近鄰在整幅圖像中進行的窮舉式匹配,有效地降低了誤匹配率,同時減少計算量。
2.1 SURF尺度空間
尺度空間理論是指在處理圖像信息時引入一個尺度參數,通過圖像尺度的變換,獲得不同尺度下的一系列圖像,在這一系列圖像上進行處理[10]。
SURF算法[11-12]使用帶尺度的Hessian矩陣求取局部最大值作為特征點。
(6)

為加速計算,使用盒式濾波器近似替代高斯二階偏導數,如圖3所示。

圖3 盒式濾波器
使用不同尺度的盒濾波器與積分圖像中的點卷積建立尺度金字塔,積分圖像定義為:圖像中某點(x,y)的值為原點與該點所圍成的矩形區域中像素之和,其計算公式如下
(7)
2.2 改進ORB特征檢測
由于機器人的運動、環境變化等等,單目視覺SLAM問題中獲取到的圖像會包含較多的噪聲。因此,首先對圖像進行高斯濾波,以減少圖像中的噪聲干擾。
改進的ORB特征檢測采用積分圖像和盒式濾波器進行卷積,通過高斯核函數構建尺度空間并求解快速Hessian響應提取特征點,并在特征點的3×3×3鄰域插值,確定特征點坐標。為簡化運算,此處的尺度空間為不分組的16層尺度空間結構。

為保證獲取到數量足夠的特征點,單目視覺SLAM問題通常采用角度較大的攝像頭,鏡頭邊緣畸變較大。為了提高特征點的穩定性,將靠近圖像邊緣的特征點剔除。
由此,在機器人運動過程中,不斷地使用單目攝像頭獲取周圍環境的圖像,對圖像進行改進ORB特征檢測,獲取穩定的特征點作為環境特征信息。
2.3 基于先驗信息的匹配
當環境中存在相似區域時,使用K近鄰會出現誤匹配現象,因此本文針對單目視覺SLAM采用基于先驗信息的匹配。由里程計獲得機器人的運動信息,根據機器人的運動先驗信息、攝像頭參數、攝像頭與特征點之間的位置關系,可以預測出某一特征點在下一幀圖像中的位置。由于系統存在運動誤差、測量誤差等多種誤差,必然無法精確預測特征點的位置。因此本文以特征點預測值為中心,計算出一個特征點實際位置的可能范圍,下一幀圖像中落在此范圍內的特征點即為可能的特征點。再將這些可能的特征點與原特征點進行匹配,即可獲得實際觀測特征點。
本文使用EKF濾波器實現SLAM過程。假設機器人的狀態變量為xk,特征觀測變量yk=hk(xk)+vk,系統狀態協方差Pk, 則
(8)

基于EKF濾波器的EKF-SLAM建立的是高斯模型[13],所以狀態變量服從正態分布
(9)
由于正態分布的傳遞性,特征點實際觀測值zk亦服從正態分布
(10)
根據正態分布的參數估計理論可知
(11)

(12)
由此,基于先驗信息的匹配范圍確定為一個以特征點預測值為中心的橢圓,該橢圓表示特征點位置預測的不確定性,實際觀測值落在此范圍內的可能性為95%,如圖4所示。

圖4 基于先驗信息的匹配
2.4 算法總體設計
本文針對單目視覺SLAM問題提出一種改進的多尺度ORB特征匹配算法,具體步驟如下:
1)對圖像進行高斯濾波去除噪聲。
2)建立尺度空間,使用帶尺度的Hessian矩陣求取特征點。
3)去掉靠近圖像邊緣的特征點。
4)使用傳統ORB的方法計算特征點的質心方向。
5)使用傳統ORB的方法計算特征點描述子。
6)根據特征點預測值和測量余量協方差所構成的橢圓,進行基于先驗信息的匹配。
本文采用的實驗環境為Intel i5 2.67 GHz CPU,4 Gbyte內存,Windows操作系統,Visual C++ 2010。攝像頭為170°廣角攝像頭,采用張正友法標定。圖片原始分辨率640×480,裁剪為480×480。控制機器人使攝像頭在室內做勻速直線運動,速度15 cm/s,每秒獲取15幀圖像,使用EKF-SLAM作為系統基本框架。
3.1 基于先驗信息的匹配驗證
圖5為基于先驗信息的匹配實際效果。圖中展示的是當前圖像中提取到的特征點與先前位置圖像中提取到的特征點組合成的SLAM特征庫的匹配效果。圖中橢圓表示以特征點預測值為中心圈定的95%置信域,淺色橢圓表示正確匹配到特征點,所匹配到的特征點位置用十字標識。橢圓為深色表示沒有匹配到特征點,原因有二:一是特征點實際觀測值落在了橢圓外;二是由于在SLAM的過程中環境發生變化,當前圖像中沒有檢測到這個特征點。從圖中可以看出,絕大多數的特征點確實落在了圈定的95%置信域中,說明基于先驗信息的匹配方案是可行的。

圖5 基于先驗信息的匹配效果
3.2 特征匹配實驗
方法1采用本文提出的改進ORB算法,算法具有尺度不變性,并使用基于先驗信息的匹配方法。方法2~4分別采用傳統ORB[3]、SURF[11]、SIFT算法[14],并使用K近鄰匹配,方法5和方法6分別采用文獻[5]和文獻[6]中提出的改進ORB算法。特征匹配正確率由正確匹配對數/全部匹配對數得出,特征匹配正確率曲線如圖6所示,特征匹配時間曲線如圖7所示。

圖6 特征匹配正確率曲線

圖7 匹配時間曲線
由圖6可知,本文提出的改進ORB算法在單目視覺SLAM這一應用場景下的特征匹配正確率高于其他5種匹配算法。方法2由于使用的是不具有尺度不變性的ORB算法,隨著特征尺度變化的增大,匹配正確率持續下降。方法3~方法5由于使用的是與位置無關的匹配,隨著SLAM過程的推進,特征點增多,特征點相似的概率增大,匹配正確率出現緩慢下降。圖7展示了6種方法的匹配時間,方法1平均用時14 ms,比方法2平均快了4 ms,比方法3平均快了124 ms,比方法4快了353 ms,比方法5快了24 ms,比方法6快了51 ms。
本文針對單目視覺SLAM問題,提出了一種改進的ORB算法。該算法結合SURF算法在傳統ORB算法中引入尺度空間,實現了尺度不變性,同時根據機器人的運動信息,預測特征點在下一幀圖像中的可能分布范圍,有效地降低了誤匹配率,并減少了計算量。
由實驗結果可知,本文提出的改進ORB算法具有優秀的尺度不變性,當圖像發生尺度變化時,改進ORB算法的匹配效果遠遠優于傳統ORB算法,亦勝過SURF、SIFT和文獻[5-6]中提出的改進ORB算法。同時,本文提出的改進ORB算法較好地保留了ORB算法運算速度快的優點,加之使用了基于先驗信息的匹配,相比SURF,特別是SIFT,在速度上具有極大的優勢,也比文獻[5-6]中提出的改進ORB算法快。實際項目實驗表明,改進的ORB算法在特征匹配正確率、運算時間上都有出色的表現,能很好地適用于單目視覺SLAM問題。
[1]孫鳳池,黃亞樓,康葉偉.基于視覺的移動機器人同時定位與建圖研究進展[J].控制理論與應用,2010,27(4):488-495.
[2]GAUGLITZ S,HOLLERER T,TURK M.Evaluation of interest point detectors and feature descriptors for visual tracking[J].International journal of computer vision,2011,94(3):335-360.
[3]RUBLEE E,RABAUD V,KONOLIGE K,et al.ORB: An efficient alternative to SIFT or SURF[C]//Proc. IEEE International Conference on Computer Vision(ICCV).Barcelona,Spain:Computer Vision,2011:2564-2571.
[4]索春寶,楊東清,劉云鵬.多種角度比較SIFT、SURF、BRISK、ORB、FREAK算法[J]. 北京測繪,2014(4):22-26.
[5]QIN Y Y,XU H K,CHEN H R.Image feature points matching via improved ORB[C]//Proc. 2014 IEEE International Conference on Progress in Informatics and Computing.Shanghai:IEEE Beijing Section,2014:5.
[6]ZHU Y,SHEN X J,CHEN H P.Copy-move forgery detection based on scaled ORB[J].Multimedia tools and applications, 2015, 75(6):3221-3233.
[7]李小紅,謝成明,賈易臻,等.基于ORB特征的快速目標檢測算法[J].電子測量與儀器學報,2013,27(5):455-460.
[8]MIROSLAV T,MARK H.Fast corner detection[J].Image and vision computing,1998,16(1):75-87.
[9]HWANG W J,WEN K W.Fast KNN classigication algorithm based on partial distance search[J].Electron letters,1998,34(21):2062-2063.
[10]胥斌.圖像多尺度不變特征研究及其應用[D].重慶:重慶大學,2013.
[11]BAY H,ESS A,TUYTELAARS T,et al.SURF: Speeded Up Robust Features[J].Computer Vision and Image Understanding (CVIU),2008,110(3):346-359.
[12]紀利娥,楊風暴,王志社,等.圖像配準中特征點檢測算法的探討[J].電視技術,2013,37(19):27-31.
[13]CIVERA J,GRASA O G,DAVISON A J,et al.1-Point RANSAC for extended Kalman filtering:Application to real-time structure from motion and visual odometry[J].Journal of field robotics,2010,27(5):609-631.
[14]LOWE D G.Distinctive image features from scale-invariant keypoints[J].International journal of computer vision,2004,60(2):91-110.
呂丹婭(1990— ),女,碩士生,主研計算機視覺、圖像處理等;
姚劍敏(1978— ),博士,副研究員,碩士生導師,本文通信作者,主要從事圖像處理、模式識別、三維顯示技術等研究;
郭太良(1963— ),研究員,博士生導師,主要從事圖像顯示等研究。
責任編輯:閆雯雯
Improved ORB algorithm for monocular vision SLAM
Lü Danya, YAO Jianmin, GUO Tailiang
(CollegeofPhysicsandInformationEngineering,FuzhouUniversity,Fuzhou350116,China)
In order to make traditional ORB algorithm suitable for the monocular visual SLAM, an improved ORB algorithm is proposed, combines the traditional ORB with SURF by added the scale space to the traditional ORB, and predicts possible position range of feature points according to the movement of the robot to avoid calculation in the global scope. Experiments show that the improved ORB algorithm can significantly improve the correct matching rate and has good scale invariance. The improved ORB algorithm effectively reduces the operation time, the average time of which is 14 ms, and processing speed is about 1.3 times of the traditional ORB, 10 times of SURF, 26 times of SIFT, it is very suitable for the monocular vision SLAM.
Simultaneous Localization and Map-building; feature matching; improved ORB algorithm; scale invariance
呂丹婭,姚劍敏,郭太良. 改進ORB算法在單目視覺SLAM特征匹配中的應用[J]. 電視技術,2016,40(11):107-111. Lü D Y, YAO J M, GUO T L. Improved ORB algorithm for monocular vision SLAM [J]. Video engineering,2016,40(11):107-111.
TP391
A
10.16280/j.videoe.2016.11.022
國家“863”重大專項(2013AA030601);國家自然科學基金項目(61101169)
2016-01-18