尹顏朋,王玉偉,趙紅田,丁祝祥,李記鵬
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)
立體匹配是當(dāng)今計(jì)算機(jī)視覺(jué)領(lǐng)域重要的研究方向之一,被廣泛的應(yīng)用到智能駕駛、虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)、模式識(shí)別、機(jī)器人等技術(shù)中。其中圖像特征點(diǎn)提取與匹配是立體匹配的核心。常用的特征點(diǎn)檢測(cè)方法有SIFT、SURF、ORB等。
ORB(Orientated FAST and Rotated BRIEF)特征是目前非常具有代表性的圖像特征,并具有尺度和旋轉(zhuǎn)不變性。ORB[1]選取FAST算法提取特征點(diǎn),并計(jì)算特征點(diǎn)的主方向,使用BRIEF作為特征點(diǎn)描述子。ORB由于使用了漢明距離等方法,其速度是SURF[3]的10倍,是SIFT[2]的100倍左右。我們使用圖像矯正、圖像增強(qiáng)、視差矯正去除誤匹配點(diǎn)等方法,提高圖像匹配的準(zhǔn)確性。同時(shí)對(duì)改進(jìn)的ORB算法進(jìn)行定點(diǎn)化研究,為FPGA實(shí)現(xiàn)該算法的加速做好測(cè)試。ORB速度仍無(wú)法滿足自動(dòng)駕駛實(shí)時(shí)響應(yīng)的要求,因此使用FPGA加速該算法。然后將改進(jìn)的ORB算法應(yīng)用到自動(dòng)駕駛系統(tǒng)當(dāng)中。
在圖像中選取像素p,假設(shè)它的亮度為Ip,設(shè)置一個(gè)閾值T(例如,Ip的20%)。以像素 p為中心,選取半徑為3的圓上的16個(gè)像素,假如選取的圓上有連續(xù)的N的點(diǎn)亮度大于Ip+T或Ip-T,那么像素p可以被認(rèn)為特征點(diǎn)(通常N常取12),對(duì)圖像中的每個(gè)像素執(zhí)行這些操作,得到特征點(diǎn)的集合。為了快速排出絕大多數(shù)不是角點(diǎn)的像素,對(duì)于每個(gè)像素檢測(cè)鄰域圓上的第1,5,9,13個(gè)像素亮度。只要這4個(gè)像素同時(shí)大于Ip+T或者小于Ip-T時(shí),否則直接排除。為增加尺度不變性,添加了圖像金字塔。特征的旋轉(zhuǎn)不變性使用灰度質(zhì)心法[8],在一個(gè)圖像塊A中,定義圖像塊的矩為:
通過(guò)矩可以找到圖像塊的質(zhì)心:
通過(guò)以上方法,ORB算法具有了尺度和旋轉(zhuǎn)不變性。
ORB算法對(duì)Steer BRIEF進(jìn)行了改進(jìn)。根據(jù)1.1提取特征點(diǎn)。對(duì)每個(gè)特征點(diǎn)選取31×31鄰域,每個(gè)鄰域選擇5×5的平均灰度值代替原來(lái)單個(gè)像素值進(jìn)行對(duì)比??傻玫?N=(31-5+1)×(31-5+1)個(gè)可對(duì)比的塊,M=C(N,2)個(gè)點(diǎn)對(duì)。根據(jù)均值和點(diǎn)之間方差最大化原理,篩選出256個(gè)點(diǎn)對(duì),即rBRIEF。
ORB特征的匹配使用漢明距離(Hamming dis?tance)。對(duì)于兩個(gè)描述子Des1,Des2:
然后計(jì)算Des1、Des2的漢明距離:
Distance(Des1,Des2)越小代表特征點(diǎn)相似度越高,否則相似度越低。
改進(jìn)的ORB算法步驟為:
對(duì)圖像進(jìn)行矯正,去圖像畸變;
對(duì)圖像進(jìn)行直方圖均衡化,提高圖像的對(duì)比度,使圖像更清晰。對(duì)圖像進(jìn)行高斯濾波,消除圖像噪聲;
提取FAST角點(diǎn),并進(jìn)行非極大抑制,去掉非角點(diǎn)特征點(diǎn)。求取像素的時(shí),對(duì)像素進(jìn)行四舍五入,而非ORB-SLAM2[4]中進(jìn)行向上取整,盡量減小誤差;
在特征點(diǎn)匹配過(guò)程中,如果特征點(diǎn)相差兩層金字塔則這兩個(gè)特征點(diǎn)不匹配。
在匹配點(diǎn)處進(jìn)行基于滑動(dòng)窗口的亞像素級(jí)的矯正,即以左圖的特征點(diǎn)KeyPoint1為中心的窗口大小為11X11的窗口A,在右圖中極線中找到與KeyPoint1視差絕對(duì)值為5特征點(diǎn)KeyPoint2,以KeyPoint2為中心窗口大小為11×11的窗口為B。然后求出與A最匹配的窗口B,即可找到最合適的匹配點(diǎn)對(duì)。
本部分主要研究ORB算法的定點(diǎn)化,為實(shí)現(xiàn)FP?GA加速做鋪墊。在像素位置取整過(guò)程中,我們采用四舍五入替代向上取整。研究定點(diǎn)化主要是研究特征點(diǎn)質(zhì)心角度小數(shù)點(diǎn)保留位數(shù)對(duì)特征匹配對(duì)數(shù)量的影響。針對(duì)MH01、MH02數(shù)據(jù)集,對(duì)于特征點(diǎn)角度保留兩位小數(shù)(其中特征點(diǎn)的方向?yàn)?到360°),分別進(jìn)行五次測(cè)試,求取匹配點(diǎn)對(duì)數(shù),并取五組點(diǎn)對(duì)數(shù)平均值。同理可得,對(duì)于角度在?。?,0)、整數(shù)、保留小數(shù)點(diǎn)后4位、保留小數(shù)點(diǎn)后6位、小數(shù)點(diǎn)后8位都可求得對(duì)應(yīng)的匹配點(diǎn)對(duì)。然后以需要保留的小數(shù)點(diǎn)保留位數(shù)類型為橫坐標(biāo),以匹配點(diǎn)對(duì)數(shù)為縱坐標(biāo),畫(huà)出折線圖。如下所示。其中圖1為MH01數(shù)據(jù)集測(cè)試結(jié)果。圖2為MH02數(shù)據(jù)集測(cè)試結(jié)果。
由圖1圖2可以得出結(jié)論,把特征點(diǎn)質(zhì)心角度設(shè)為(0,0),可以增加匹配點(diǎn)對(duì)數(shù),但由于特征點(diǎn)失去了旋轉(zhuǎn)不變性,這種方法不提倡。但是把角度保留整數(shù)、小數(shù)點(diǎn)后兩位、小數(shù)點(diǎn)后四位、小數(shù)點(diǎn)后六位、小數(shù)點(diǎn)后八位,對(duì)于匹配點(diǎn)對(duì)數(shù)幾乎沒(méi)有影響。該結(jié)論對(duì)實(shí)現(xiàn)FPGA加速ORB算法,具有重要意義。
前端使用改進(jìn)的ORB算法,追蹤上一幀初始化當(dāng)前幀的位姿,后端基于滑動(dòng)窗口(窗口大小為10)優(yōu)化位姿,如圖3所示。算法流程為:當(dāng)新的關(guān)鍵幀到來(lái)的時(shí)候,移除滑動(dòng)窗口里的第一張圖片和其對(duì)應(yīng)的地圖點(diǎn),添加新的關(guān)鍵幀到滑動(dòng)窗口中。每次新的關(guān)鍵幀到來(lái)的時(shí)候進(jìn)行一次Bundle Adjustment優(yōu)化反投影誤差,得出相對(duì)準(zhǔn)確地雙目視覺(jué)里程計(jì)。
圖3
本文的實(shí)驗(yàn)使用EuRoc提供的數(shù)據(jù)集進(jìn)行評(píng)測(cè),實(shí)驗(yàn)結(jié)果如圖4所示。
圖1
圖2
圖4
在實(shí)驗(yàn)中,如果所示,該方法與ground truth已經(jīng)很接近了。但部分區(qū)域和真實(shí)結(jié)果還有一些差距,仍有繼續(xù)改善的空間。在算法中,只是借助于雙目立體視覺(jué)求解里程計(jì)信息,還不夠精確,后期會(huì)融合GPS、雷達(dá)、IMU等傳感器信息,使之更好地服務(wù)于機(jī)器人、無(wú)人車等設(shè)備的定位與導(dǎo)航。
[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.