倪文韜,鐘岱山,唐向遠
(南京郵電大學 通信與信息工程學院,江蘇 南京 210003)
利用攝像頭進行測距已經(jīng)不是新鮮的事情。現(xiàn)階段,關(guān)于攝像頭測距有3種方式:第一種是在攝像頭上安裝測距設(shè)備包括激光測距儀、測距裝置、超聲波傳感器等,用于測量目標物體與攝像頭之間的距離。這種測距方法有著成本高的特點,需要測試裝備上都安裝測距設(shè)備。第二種是利用單目攝像頭進行測距。這需要建立到一定的參考數(shù)據(jù),根據(jù)數(shù)據(jù)的對比,計算得出攝像頭和目標物的位置。如需要收集的數(shù)據(jù)包括目標物的尺寸數(shù)據(jù)、攝像頭和目標物之間的夾角、相對位移、攝像頭高度等。該測距方法的實施,需要借助一些數(shù)據(jù),因此方法有一定的測試場景限制。第三種是借助雙目攝像頭完成測距。該方法利用立體標定的方式,獲取攝像頭的參數(shù)矩陣,通過標定結(jié)果匹配圖像,生成3D點云,深度成像,最后得到攝像頭和目標物之間的距離。這種測距方式,有著復(fù)雜的計算方法,還會受到環(huán)境因素、立體標定的影響,結(jié)果也缺乏穩(wěn)定性。
攝像頭進行測距的方式,存在一系列的問題,那就是成本偏高,容易受到場景的限制,算法十分復(fù)雜,需要經(jīng)過復(fù)雜的計算,而且計算結(jié)果還不太穩(wěn)定。文章針對攝像頭測距存在的問題,以攝像頭測距為基礎(chǔ),提出雙目攝像頭測距,實現(xiàn)對攝像頭測距的優(yōu)化改良。該項技術(shù),可以實現(xiàn)準確迅速地測距,利用目標物在攝像頭中的投影,也可以迅速準確地獲取距離數(shù)據(jù),不需要提前進行攝像頭標定,且沒有復(fù)雜的算法,更不會占用系統(tǒng)的資源。
為了實現(xiàn)攝像頭測距的優(yōu)化,提出雙目攝像頭測距,其工作原理如下:(1)選擇一個攝像頭作為基準,選擇另一個攝像頭作為參照,這樣可以獲取兩個圖像,一個是基準攝像頭收集到的基準圖像,另一個是參考攝像頭收集到的參考圖像。(2)將雙目攝像頭收集到的兩種圖像進行對比,結(jié)合兩個圖像上目標物呈現(xiàn)出來的特征數(shù)據(jù),計算之后完成測距。
利用雙目攝像頭進行測距,需要做好校準工作,一般而言,校準工作的步驟如下:首先,采集圖像。雙目攝像頭范圍內(nèi),設(shè)置目標物,需要確保攝像頭可以采集到目標物的照片,分別進行目標物照片的采集。計算目標物在圖像中存在的視差、目標物投影在基準圖像X軸上的坐標,并測量目標物到攝像頭的距離。做好相關(guān)的數(shù)據(jù)記錄,如兩個圖像中目標物投影的視差,基準圖像X軸上的坐標以及距離攝像頭的距離。進行位置的調(diào)整,將目標物的位置進行調(diào)整,重復(fù)上面的操作,從而完成校準。
具體而言,上面提到的工作還有著如下的操作步驟:(1)特征數(shù)據(jù)的提取,將目標物在雙目攝像頭中投影的圖像數(shù)據(jù)進行提取,比如,目標物在基準攝像頭和參考攝像頭中呈現(xiàn)出來的圖像視差,目標物投影圖像在基準攝像頭中的位置—X軸的坐標。(2)根據(jù)收集到的目標物投影圖像的數(shù)據(jù)特征,經(jīng)過一定的計算方法,得到加工處理之后的數(shù)據(jù)。(3)然后通過數(shù)據(jù)容器得到最終的距離數(shù)據(jù)。
本文以汽車測距系統(tǒng)為例,分析利用雙目攝像頭進行汽車測距的可行性。測距系統(tǒng)主要由圖像采集、攝像機標定、雙目立體校正、立體匹配、數(shù)據(jù)輸出等內(nèi)容。
采集使用到的攝像頭為CMOS攝像頭,幀數(shù)最大可到60幀/秒,利用USB數(shù)據(jù)實現(xiàn)與PC機的通信聯(lián)系。PC端顯示的實時畫面如圖1所示。
攝像機標定的目的在于確定兩個攝像機處于平行的位置,這是使用雙目攝像機測距的關(guān)鍵。這里可以通過數(shù)據(jù)計算的方式,計算三維空間坐標和二維圖像坐標的對應(yīng)關(guān)系。從多個角度,進行圖像測定,P在攝像機下的成像關(guān)系式如下:
可得,兩臺攝像頭設(shè)置距離100 mm,計算結(jié)果為-99.999 33 mm,差距很小,滿足測距的要求。
圖1 PC端顯示的實時畫面
考慮到攝像機會受到光學透鏡和自身工藝的影響,成像過程中容易出現(xiàn)畸變的情況,會影響到數(shù)據(jù)匹配的準確性。如果要實現(xiàn)兩個投影圖的圖像對應(yīng)點匹配,需要大量的搜索工作,十分耗時。因此,考慮到加快匹配的速度,可以使用Bouguet的校正方法,減少重投影的次數(shù),這樣重投影畸變的情況最小化,最大化視圖的疊加面積。二維點和二維點可以借助重投影矩陣變換的方式,進行相互轉(zhuǎn)換。
立體匹配主要目的在于將不同視點之下,同一物體的投影之間存在的對應(yīng)關(guān)系,也就是人們常說的視差值。計算方法一般有兩種:一種是局部約束的立體匹配算法,另一種是全局約束的立體匹配算法。對比立體匹配算法,建議采用絕對誤差累計的方式計算出矯正圖形的匹配點。SAD匹配代價函數(shù):
通過視差圖的對比,可以直觀看到對比效果:如果匹配點多的情況下,那么出現(xiàn)的視差圖將更加接近原圖;如果匹配點少,那么視差圖和原圖之間的差異就較大。
通過實驗的方式進行驗證,視差圖在25幀/秒的情況下,沒有出現(xiàn)卡頓的情況,可以實現(xiàn)實時工作的需要。通過移動目標物,調(diào)整攝像機和目標物的距離,進行測距,得出的數(shù)據(jù)如表1所示。
表1 實驗數(shù)據(jù)
從表1中的數(shù)據(jù)來看,雙目攝像頭進行系統(tǒng)測距,還是有著很高的精度的,誤差比較低,可以控制到5%以下,尤其是近距離的測距,精度很高。也就是說,使用雙目攝像頭測距有著一定的可行性。但是從實驗數(shù)據(jù)來看,對于遠距離的測距,誤差逐漸增加,距離6 200 mm的測量誤差是距離800 mm的測量誤差的42倍以上。主要是由于標定環(huán)節(jié)和測量過程存在誤差的原因。