尹顏朋,王玉偉,趙紅田,丁祝祥,李記鵬
(四川大學計算機學院,成都 610065)
立體匹配是當今計算機視覺領域重要的研究方向之一,被廣泛的應用到智能駕駛、虛擬現實、增強現實、模式識別、機器人等技術中。其中圖像特征點提取與匹配是立體匹配的核心。常用的特征點檢測方法有SIFT、SURF、ORB等。
ORB(Orientated FAST and Rotated BRIEF)特征是目前非常具有代表性的圖像特征,并具有尺度和旋轉不變性。ORB[1]選取FAST算法提取特征點,并計算特征點的主方向,使用BRIEF作為特征點描述子。ORB由于使用了漢明距離等方法,其速度是SURF[3]的10倍,是SIFT[2]的100倍左右。我們使用圖像矯正、圖像增強、視差矯正去除誤匹配點等方法,提高圖像匹配的準確性。同時對改進的ORB算法進行定點化研究,為FPGA實現該算法的加速做好測試。ORB速度仍無法滿足自動駕駛實時響應的要求,因此使用FPGA加速該算法。然后將改進的ORB算法應用到自動駕駛系統當中。
在圖像中選取像素p,假設它的亮度為Ip,設置一個閾值T(例如,Ip的20%)。以像素 p為中心,選取半徑為3的圓上的16個像素,假如選取的圓上有連續的N的點亮度大于Ip+T或Ip-T,那么像素p可以被認為特征點(通常N常取12),對圖像中的每個像素執行這些操作,得到特征點的集合。為了快速排出絕大多數不是角點的像素,對于每個像素檢測鄰域圓上的第1,5,9,13個像素亮度。只要這4個像素同時大于Ip+T或者小于Ip-T時,否則直接排除。為增加尺度不變性,添加了圖像金字塔。特征的旋轉不變性使用灰度質心法[8],在一個圖像塊A中,定義圖像塊的矩為:

通過矩可以找到圖像塊的質心:


通過以上方法,ORB算法具有了尺度和旋轉不變性。
ORB算法對Steer BRIEF進行了改進。根據1.1提取特征點。對每個特征點選取31×31鄰域,每個鄰域選擇5×5的平均灰度值代替原來單個像素值進行對比。可得到 N=(31-5+1)×(31-5+1)個可對比的塊,M=C(N,2)個點對。根據均值和點之間方差最大化原理,篩選出256個點對,即rBRIEF。
ORB特征的匹配使用漢明距離(Hamming dis?tance)。對于兩個描述子Des1,Des2:

然后計算Des1、Des2的漢明距離:

Distance(Des1,Des2)越小代表特征點相似度越高,否則相似度越低。
改進的ORB算法步驟為:
對圖像進行矯正,去圖像畸變;
對圖像進行直方圖均衡化,提高圖像的對比度,使圖像更清晰。對圖像進行高斯濾波,消除圖像噪聲;
提取FAST角點,并進行非極大抑制,去掉非角點特征點。求取像素的時,對像素進行四舍五入,而非ORB-SLAM2[4]中進行向上取整,盡量減小誤差;
在特征點匹配過程中,如果特征點相差兩層金字塔則這兩個特征點不匹配。
在匹配點處進行基于滑動窗口的亞像素級的矯正,即以左圖的特征點KeyPoint1為中心的窗口大小為11X11的窗口A,在右圖中極線中找到與KeyPoint1視差絕對值為5特征點KeyPoint2,以KeyPoint2為中心窗口大小為11×11的窗口為B。然后求出與A最匹配的窗口B,即可找到最合適的匹配點對。
本部分主要研究ORB算法的定點化,為實現FP?GA加速做鋪墊。在像素位置取整過程中,我們采用四舍五入替代向上取整。研究定點化主要是研究特征點質心角度小數點保留位數對特征匹配對數量的影響。針對MH01、MH02數據集,對于特征點角度保留兩位小數(其中特征點的方向為0到360°),分別進行五次測試,求取匹配點對數,并取五組點對數平均值。同理可得,對于角度在取(0,0)、整數、保留小數點后4位、保留小數點后6位、小數點后8位都可求得對應的匹配點對。然后以需要保留的小數點保留位數類型為橫坐標,以匹配點對數為縱坐標,畫出折線圖。如下所示。其中圖1為MH01數據集測試結果。圖2為MH02數據集測試結果。
由圖1圖2可以得出結論,把特征點質心角度設為(0,0),可以增加匹配點對數,但由于特征點失去了旋轉不變性,這種方法不提倡。但是把角度保留整數、小數點后兩位、小數點后四位、小數點后六位、小數點后八位,對于匹配點對數幾乎沒有影響。該結論對實現FPGA加速ORB算法,具有重要意義。
前端使用改進的ORB算法,追蹤上一幀初始化當前幀的位姿,后端基于滑動窗口(窗口大小為10)優化位姿,如圖3所示。算法流程為:當新的關鍵幀到來的時候,移除滑動窗口里的第一張圖片和其對應的地圖點,添加新的關鍵幀到滑動窗口中。每次新的關鍵幀到來的時候進行一次Bundle Adjustment優化反投影誤差,得出相對準確地雙目視覺里程計。

圖3
本文的實驗使用EuRoc提供的數據集進行評測,實驗結果如圖4所示。

圖1

圖2

圖4
在實驗中,如果所示,該方法與ground truth已經很接近了。但部分區域和真實結果還有一些差距,仍有繼續改善的空間。在算法中,只是借助于雙目立體視覺求解里程計信息,還不夠精確,后期會融合GPS、雷達、IMU等傳感器信息,使之更好地服務于機器人、無人車等設備的定位與導航。
[1]Rublee E,Rabaud V,Konolige K,et al.ORB:An Efficient Alternative to SIFT or SURF[C].Computer Vision(ICCV),2011 IEEE International conference on.IEEE,2011:2564-2571.
[2]Lowe D G.Distinctive Image Features from Scale-Invariant Keypoints[J].International Journal of Computer Vision,2004,60(2):91-110.
[3]Bay H,Tuytelaars T,Van Gool L.Surf:Speeded up Robust Features[J].Computer Vision-ECCV 2006,2006:404-417.
[4]Mur-Artal R,Tardós J D.Orb-slam2:An Open-Source Slam System for Monocular,Stereo,and RGB-D Cameras[J].IEEE Transactions on Robotics,2017,33(5):1255-1262.
[5]FAST:Rosten E,Drummond T.Machine Learning for High-Speed Corner Detection[J].Computer Vision-ECCV 2006,2006:430-443.
[6]Triggs B,McLauchlan P F,Hartley R I,et al.Bundle Adjustment—a Modern Synthesis[C].International Workshop on Vision Algorithms.Springer,Berlin,Heidelberg,1999:298-372.
[7]Calonder M,Lepetit V,Strecha C,et al.Brief:Binary Robust Independent Elementary Features[J].Computer Vision-ECCV 2010,2010:778-792.
[8]Rosin P L.Measuring Corner Properties[J].Computer Vision and Image Understanding,1999,73(2):291-307.
[9]Yang Z,Shen S.Monocular Visual-Inertial State Estimation with Online Initialization and Camera-IMU Extrinsic Calibration[J].IEEE Transactions on Automation Science and Engineering,2017,14(1):39-51.