王先節(jié),趙立宏
(南華大學電氣工程學院,衡陽 421000)
雙目視覺技術廣泛應用于大型機械位姿感知、小工件測量、無人機自動尋跡、3D打印、汽車自動駕駛等科技領域。機器視覺主要的目的在于從圖像或圖像序列中獲取對世界的描述。自20世紀70年代Marr首次提出完整的機器視覺系統(tǒng)理論框架[1]以來,立體視覺信號備受人們的關注。雙目視覺系統(tǒng)分攝像機標定、特征提取、立體匹配、深度信息提取。立體匹配和深度信息提取作為雙目視覺系統(tǒng)的核心內容也成為人們研究的熱點。立體匹配技術從早期的小窗口區(qū)域匹配發(fā)展到現在的自適應窗口,提高了對圖像特征信息提取的靈活性,降低了在立體匹配中特征點誤匹配率,提高了對深度信息提取的精度。在近幾年的發(fā)展中,基于全局的立體匹配技術有很大的發(fā)展,根據不同的特征信息大致分為幾類:針對邊緣特征的差分邊緣檢測、Reborts算子、Sobel算子;針對角點特征的基于模板的角點檢測算法Kitchen-Rosenfeld角點檢測算法、Harris角點檢測算法;針對尺度不變特征的SIFT特征向量、SURF特征等普遍特征。本文所做研究包括:利用MATLAB工具箱以及OpenCV建立雙目視覺系統(tǒng),并完成對攝像機內外參數的求解,分析攝像機視差與兩攝像機之間夾角給雙目視覺系統(tǒng)帶來的誤差影響。
基于2D平面方格模板的標定方法,從不同方位采集模板圖像,利用模板方格中特征信息和其圖像中特征信息即可完成標定過程,通過建立雙目視覺傳感器數學模型將二維信息對應在三維坐標系中,實現了雙目視覺系統(tǒng)對目標的位置測量。雙目視覺系統(tǒng)成像模型如圖1所示。
圖1 雙目視覺成像模型
C1和C2表示兩攝像機鏡頭光心所在位置,C1O和C2O分別為兩攝像機的光軸,量攝像機之間的距離(基線距)為2a,光軸夾角為2α,焦距相等且為f。
將世界坐標系OwXwYwZw的原點Ow、設在左相機光心C1處,OwZw軸在左相機光軸C1O重合,OwYw軸垂直向上,左右相機的圖像坐標o1x1y1和o2x2y2分別在各自像平面上,原點在像平面終點。M為交匯視場內任一被測點,其在兩像平面上的像點分別為m1(x1,y1)和 m2(x2,y2),m1、m2像點對2臺相機鏡頭光心的水平視場角為β1和β2,垂直視場角為γ1和γ2,由圖中的幾何關系得出M點坐標為:
理想成像模型作為線性成像模型如圖2所示,根據小孔成像原理:空間點P在像平面的像點的位置為攝像機光心Oc與P的連線OcP像平面的交點,設P點在攝像機坐標系下的坐標為P(Xc,Yc,Zc)。
圖2 線性成像模型
像點P在圖像坐標系下的坐標為p(x,y),由比例關系得出
在實際應用過程中,由于攝像頭存在程度不同的畸變,考慮畸變情況下真實坐標(畸變坐標)(Xd,Yd)得非線性畸變數學模型:
畸變有兩種類型:徑向畸變和切向畸變,對于每一種畸變類型都需要一個無窮級數,在工業(yè)機器視覺應用中只需要考慮徑向畸變,任何更復雜的建模會導致數值難以穩(wěn)定。得到像素點畸變調整的坐標后需要對相機外參進行求取,外參包括旋轉矩陣R和平移矢量T來表示相機在世界坐標系中的位置和方向由式(2)可得空間點圖像像素坐標系下的坐標與其在世界坐標系下的坐標之間的變換關系為:
式(4)中M1是由攝像機內部參數確定,M2由攝像機與世界坐標系之間的相對位置參數即外部參數確定。在使用MATLAB工具箱標定過程中有兩種方法:
(1)使用工具箱自帶尋點方式,通過確定四個方向的頂點,到達對圖像坐標角點提取,在大畸變情況下正常的選點就完全偏離了實際像點坐標,通過對畸變參數k的預估計能較好的消除一定誤差。(2)通過自選點的方式確定圖片坐標系下標定板中角點的位置信息,考慮到人工選點的誤差影響,并且在雙目視覺系統(tǒng)中對于同一個點的不同圖片坐標系的匹配問題也被放大,使誤差增大。對左右相機進行立體建模,直觀的看到標定板與攝像頭之間的距離關系,因為在操作過程當中對于一階畸變參數預估不同左右兩相機同一組圖片存在不匹配的問題,在調整同一組圖片的畸變參數預估數據后得到解決,最終得到雙目視覺系統(tǒng)外部參數效果圖如圖3所示。
圖3 雙目視覺系統(tǒng)外部參數效果圖
立體匹配作為雙目視覺系統(tǒng)的核心內容主要是尋找在三維場景中不同位置和角度所得的二維圖像特征信息之間的對應關系,立體匹配過程大多以小窗口的基礎,對窗口中特征信息如:灰度、顏色等進行匹配,通過對二值化邊緣梯度的計算減少匹配誤差,對窗口內特征信息的加權函數來提高匹配精度,而窗口的大小直接影響這些函數的復雜性,就一般性而言越大的窗口對圖片信息收集是越全面的,匹配依據也更加的充分,而更多的特征信息的提取使得窗口內存在更多相似點,陷入更多的特征點誤匹配,這時候就需要更加完善且復雜的數學模型減少這類誤差的產生。對于一種立體匹配算法要確定的是單位匹配對象即匹配基元譬如角點、特征點或圖像區(qū)域和邊緣,然后就是匹配算法,本文中使用的匹配算法是SAD絕對差值和算法,這種方法相較其他復雜算法優(yōu)勢就是算法簡單,能簡化計算工作,速度快。但是無法完整保留圖像結構信息,結果圖只能顯示特征區(qū)域信息,并且精度低誤匹配高。
如圖4所示,在沒有調整畸變情況下(圖左)除鏡頭光心水平直線周圍小范圍點上完成了立體匹配,邊緣區(qū)域誤匹配率偏高,所以達到的效果無法還原三維信息,且光心區(qū)域由于徑向畸變的影響圖片效果一般,反觀畸變調整后(圖右)每一個方塊相較于圖左有明顯改善。通過圖4中立體匹配結果我們可以得到圖形中各特征點坐標進而計算棋盤各特征點的深度信息。在表1中可以看出,前四個點是圖片特征點中同一列的四個點,(u,v)坐標中u因為操作原因有小部分波動,v大幅度變化,對于深度信息測量值Zw由于拍攝姿勢的原因也存在定的誤差。后四個點是同一行的四個點。
圖4 畸變調整前后立體匹配對比圖
表1 圖像坐標計算坐標和誤差
本文利用MATLAB和OpenCV兩個軟件的結合,基本完成對雙目視覺系統(tǒng)的構建,著重分析了立體匹配技術應用方法,得出了在使用SAD立體匹配技術所產生的誤差,分析了誤差來源,通過雙目攝像頭拍攝的二位圖像,恢復了目標的三維信息,達到了很好的效果。