王歡 杜鴻
摘 要:雙目視覺定位是模仿人類的雙目,從而獲得目標物體的形狀、位置、顏色等信息。文章通過對ORB和SIFT算法的原理進行研究,得出了ORB與SIFT算法的優(yōu)缺點,并且根據(jù)應(yīng)用的具體場景,選擇了ORB算法提取目標的特征點并進行立體匹配,最終完成了目標的定位。
關(guān)鍵詞:雙目:ORB; SIFT;定位
ORB算子是將r-BRIEF特征描述子和o-FAST特征點提取算法結(jié)合以后所提出的算法,它由Rublee等在2011年提出。OBR算法主要的改進是在FAST算子特征檢測的基礎(chǔ)上增加了方向特征,除此之外,該算法將r -BRIEF描述符在點對集矩陣的基礎(chǔ)上增加了旋轉(zhuǎn)矩陣R,所以r -BRIEF描述符具有了旋轉(zhuǎn)不變性的特性;此外,ORB算法具有光照、旋轉(zhuǎn)、平移的不變特性。
1 0RB算法原理
1.1 0-FAST角點特征校測
在特征檢測部分,該算法運用的是FAST算子,但是原來的算法沒有方向性不變的特點,所以o-FAST算法對其進行了改進,使它具有了方向性。ORB算法使用的是FAST算法提取的特征點,實驗中使用的FAST-9的算法,得到了很好的結(jié)果。由于邊緣位置對FAST算法得到的特征點有很大的影響,因此該算法使用了Harris角點檢測方法對于得到的特征點進行排序,取前N個較好的角點作為特征點。FAST算法是一種非??斓奶崛√卣鼽c的方法,但是對于這里來說,有兩點不足:(1)提取到的特征點沒有方向。(2)提取到的特征點不滿足尺度變化。針對特征點不滿足尺度變化,SIFT算法建立了尺度圖像金字塔,通過在不同尺度下的圖像中提取特征點以達到滿足尺度變化的效果[1]。針對提取到的特征點沒有方向的問題,Rosin提出了“intensity centroid”的方法確定了特征點的方向。該思想首先把特征點的鄰域范圍看成一個patch,然后求取這個patch的質(zhì)心,最后把該質(zhì)心與特征點進行連線,求出該直線與橫坐標軸的夾角,即為該特征點的方向,Rosin提出了如下公式:
然后求取向量OC的方向,同時如果把x,y的范圍保持在[-r,r]之間(r為該特征點鄰域的半徑),以特征點為坐標原點,則得到的方向角為θ,用向量OC的方向表示FAST關(guān)鍵的方向角為:
θ=α tan2(m01,m10)
(3)
αtan2的取值范圍在(-π,π]。
1.2 r-BRIEF特征描述符
ORB算子在特征描述部分采用的是基于BRIEF算子的改進算法。BRIEF算子用二進制串描述局部特征,該方法的好處是:(1)很少的bit就能描述獨特的性質(zhì)。(2)可以用漢明距離計算兩個二進制串之間的特征,計算速度快。在實際應(yīng)用中的好處是:算得準、算得快、省內(nèi)存。
ORB算子選用的是256 bits的描述子,該算法先用積分圖像法對圖形進行平滑處理,然后再進行圖像的特征描述。為了計算BRIEF算法的入方向特征,需要將FAST檢測的特征點集改寫為矩陣的形式。對于一個n比特的測試點集(x,y),定義一個2n的矩陣S
根據(jù)FAST得到的方向角,可以計算出它所對應(yīng)的旋轉(zhuǎn)矩陣Rθ。通過該旋轉(zhuǎn)矩陣可以得到具有方向特性的測試點集Sθ=RθS。則R-BRIEF的描述子就可以表示為:
BRIEF算子,它的實現(xiàn)步驟大致如下:(1)取目標像素點一定范圍內(nèi)的領(lǐng)域,一般9X9。(2)對該領(lǐng)域進行高斯模糊處理,一般選核參數(shù)σ=2。(3)以滿足高斯分布的方式在該領(lǐng)域內(nèi)隨機選?、艚M像素點對 2 0RB與SIFT算法的比較 SIFT特征是圖像的局部特征,其對旋轉(zhuǎn)、尺度縮放、亮度變化保持不變性,對視角變化、仿射變換、噪聲也保持一定程度的穩(wěn)定性。SIFT特征描述符由特征點規(guī)定的半徑r長度的圓鄰域內(nèi)像素點的梯度方向信息組成。SIFT在計算特征描述前,首先確定鄰域半徑大小,可以按照式(6)來確定圓半徑的長度: 現(xiàn)在通過圖示說明SIFT的梯度方向。如圖1所示,它所表示的區(qū)域為8×8,然后把區(qū)域分為4個4X4的子區(qū)域。圖左部分的中央為當前關(guān)鍵點的位置,每個小格代表關(guān)鍵點鄰域所在尺度空間的一個像素,利用公式求得每個像素的梯度幅值與梯度方向,箭頭方向代表該像素的梯度方向,箭頭長度代表梯度模值,然后用高斯窗口對其進行加權(quán)運算。圖中圓圈代表高斯加權(quán)的范圍(越靠近關(guān)鍵點的像素梯度方向信息貢獻越大)。然后在每4X4的小塊上計算8個方向的梯度方向直方圖,繪制每個梯度方向的累加值,即可形成一個種子點[2]。 SIFT算子為使特征描述符具備旋轉(zhuǎn)不變性,算法需要將特征點所在區(qū)域坐標系進行旋轉(zhuǎn),從而使特征點主方向和橫坐標的正方向一樣(見圖2)。 在上節(jié)中已經(jīng)闡述了ORB算法原理,ORB算法具備旋轉(zhuǎn)、光照、平移不變性等特征,關(guān)鍵是它的運算速度比SIFT算法提升了很多。但是ORB算法的缺點是不具有尺度不變性特征。SIFT算法滿足尺度不變性,所以在圖像尺度發(fā)生變化的環(huán)境下,ORB算法效果與SIFT算法的效果相差很多。 3 實驗結(jié)果與分析 在提取物體的特征點之前,需要先對攝像頭進行標定,校正圖像,得到攝像機的內(nèi)外參數(shù)。接著提取圖像的特征點,進行左右攝像頭的特征點匹配,最后根據(jù)雙目形成的視差就可以得到目標物到攝像頭的距離[3]。 攝像頭標定采用標定板23 mmX23 mm,提取標定板的角點,如圖3所示。通過標定原理計算出雙目攝像頭的焦距、畸變、旋轉(zhuǎn)矩陣和平移向量等參數(shù)(見圖4)。 得到了攝像機的參數(shù)之后,左右攝像頭的圖像存在畸變,而且左右圖像中的對應(yīng)點不在一個平面上,所以需要圖形校正,如圖5所示。 將圖像校正完成后,使用ORB提取圖形的特征點,然后計算左右圖形的匹配點。由于存在無匹配,所以使用RANSAC算法去除誤匹配,如圖6所示。 在經(jīng)過了攝像機標定,圖像校正,圖像特征點的提取與匹配后就可以計算出目標到攝像頭的距離,如表1所示。 從表1可以得出結(jié)論,通過左右圖像每對匹配的特征點可以計算出攝像機到被測物的距離。在計算中,將物體的全部特征點的距離平均值為物體被測的距離。從表中可以看出,測量距離越大,作誤差越大。而產(chǎn)生誤差的因素,與攝像機的標定參數(shù),無匹配的特征點有關(guān)。 4 結(jié)語 首先經(jīng)過攝像機的標定,圖像的校正,得到了可以進行雙目定位的圖像,在通過ORB算法提取出了圖像的特征點,并且根據(jù)測距原理,計算出了目標到攝像機的距離。最后分析了產(chǎn)生誤差的原因。 [參考文獻] [1]ROSINP L.Measuring comer properties[J].Computer Vision and Image Understanding, 1999(2):291-307. [2]王昌盛.基于ORB算法的雙目視覺測量研究[D]晗爾濱:哈爾濱工業(yè)大學,2015. [3]白明,莊嚴,王偉.雙目立體匹配算法的研究與進展[J]控制與決策,2008(7):721-729.