倪文韜,鐘岱山,唐向遠
(南京郵電大學 通信與信息工程學院,江蘇 南京 210003)
利用攝像頭進行測距已經不是新鮮的事情?,F階段,關于攝像頭測距有3種方式:第一種是在攝像頭上安裝測距設備包括激光測距儀、測距裝置、超聲波傳感器等,用于測量目標物體與攝像頭之間的距離。這種測距方法有著成本高的特點,需要測試裝備上都安裝測距設備。第二種是利用單目攝像頭進行測距。這需要建立到一定的參考數據,根據數據的對比,計算得出攝像頭和目標物的位置。如需要收集的數據包括目標物的尺寸數據、攝像頭和目標物之間的夾角、相對位移、攝像頭高度等。該測距方法的實施,需要借助一些數據,因此方法有一定的測試場景限制。第三種是借助雙目攝像頭完成測距。該方法利用立體標定的方式,獲取攝像頭的參數矩陣,通過標定結果匹配圖像,生成3D點云,深度成像,最后得到攝像頭和目標物之間的距離。這種測距方式,有著復雜的計算方法,還會受到環境因素、立體標定的影響,結果也缺乏穩定性。
攝像頭進行測距的方式,存在一系列的問題,那就是成本偏高,容易受到場景的限制,算法十分復雜,需要經過復雜的計算,而且計算結果還不太穩定。文章針對攝像頭測距存在的問題,以攝像頭測距為基礎,提出雙目攝像頭測距,實現對攝像頭測距的優化改良。該項技術,可以實現準確迅速地測距,利用目標物在攝像頭中的投影,也可以迅速準確地獲取距離數據,不需要提前進行攝像頭標定,且沒有復雜的算法,更不會占用系統的資源。
為了實現攝像頭測距的優化,提出雙目攝像頭測距,其工作原理如下:(1)選擇一個攝像頭作為基準,選擇另一個攝像頭作為參照,這樣可以獲取兩個圖像,一個是基準攝像頭收集到的基準圖像,另一個是參考攝像頭收集到的參考圖像。(2)將雙目攝像頭收集到的兩種圖像進行對比,結合兩個圖像上目標物呈現出來的特征數據,計算之后完成測距。
利用雙目攝像頭進行測距,需要做好校準工作,一般而言,校準工作的步驟如下:首先,采集圖像。雙目攝像頭范圍內,設置目標物,需要確保攝像頭可以采集到目標物的照片,分別進行目標物照片的采集。計算目標物在圖像中存在的視差、目標物投影在基準圖像X軸上的坐標,并測量目標物到攝像頭的距離。做好相關的數據記錄,如兩個圖像中目標物投影的視差,基準圖像X軸上的坐標以及距離攝像頭的距離。進行位置的調整,將目標物的位置進行調整,重復上面的操作,從而完成校準。
具體而言,上面提到的工作還有著如下的操作步驟:(1)特征數據的提取,將目標物在雙目攝像頭中投影的圖像數據進行提取,比如,目標物在基準攝像頭和參考攝像頭中呈現出來的圖像視差,目標物投影圖像在基準攝像頭中的位置—X軸的坐標。(2)根據收集到的目標物投影圖像的數據特征,經過一定的計算方法,得到加工處理之后的數據。(3)然后通過數據容器得到最終的距離數據。
本文以汽車測距系統為例,分析利用雙目攝像頭進行汽車測距的可行性。測距系統主要由圖像采集、攝像機標定、雙目立體校正、立體匹配、數據輸出等內容。
采集使用到的攝像頭為CMOS攝像頭,幀數最大可到60幀/秒,利用USB數據實現與PC機的通信聯系。PC端顯示的實時畫面如圖1所示。
攝像機標定的目的在于確定兩個攝像機處于平行的位置,這是使用雙目攝像機測距的關鍵。這里可以通過數據計算的方式,計算三維空間坐標和二維圖像坐標的對應關系。從多個角度,進行圖像測定,P在攝像機下的成像關系式如下:

可得,兩臺攝像頭設置距離100 mm,計算結果為-99.999 33 mm,差距很小,滿足測距的要求。

圖1 PC端顯示的實時畫面
考慮到攝像機會受到光學透鏡和自身工藝的影響,成像過程中容易出現畸變的情況,會影響到數據匹配的準確性。如果要實現兩個投影圖的圖像對應點匹配,需要大量的搜索工作,十分耗時。因此,考慮到加快匹配的速度,可以使用Bouguet的校正方法,減少重投影的次數,這樣重投影畸變的情況最小化,最大化視圖的疊加面積。二維點和二維點可以借助重投影矩陣變換的方式,進行相互轉換。
立體匹配主要目的在于將不同視點之下,同一物體的投影之間存在的對應關系,也就是人們常說的視差值。計算方法一般有兩種:一種是局部約束的立體匹配算法,另一種是全局約束的立體匹配算法。對比立體匹配算法,建議采用絕對誤差累計的方式計算出矯正圖形的匹配點。SAD匹配代價函數:

通過視差圖的對比,可以直觀看到對比效果:如果匹配點多的情況下,那么出現的視差圖將更加接近原圖;如果匹配點少,那么視差圖和原圖之間的差異就較大。
通過實驗的方式進行驗證,視差圖在25幀/秒的情況下,沒有出現卡頓的情況,可以實現實時工作的需要。通過移動目標物,調整攝像機和目標物的距離,進行測距,得出的數據如表1所示。

表1 實驗數據
從表1中的數據來看,雙目攝像頭進行系統測距,還是有著很高的精度的,誤差比較低,可以控制到5%以下,尤其是近距離的測距,精度很高。也就是說,使用雙目攝像頭測距有著一定的可行性。但是從實驗數據來看,對于遠距離的測距,誤差逐漸增加,距離6 200 mm的測量誤差是距離800 mm的測量誤差的42倍以上。主要是由于標定環節和測量過程存在誤差的原因。