鞠冠秋 王海梅
摘 要:基于雙目視覺的目標定位是當前計算機視覺研究領域的熱點問題,文章介紹了雙目視覺的基本原理,對其關鍵技術進行了深入研究,并將基于灰度相關性的立體匹配算法應用到雙目視覺定位系統(tǒng)中。設計雙目視覺定位實驗,實驗表明文章方法能夠實現(xiàn)一般的雙目視覺中的目標定位問題。
關鍵詞:雙目視覺;立體匹配;目標定位
引言
雙目視覺是利用已經(jīng)標定了的不同位置的兩臺攝像機(或者一臺攝像機經(jīng)過移動或旋轉)拍攝同一幅場景得到的兩幅二維圖像, 應用圖像處理、圖像匹配、三維重建等方法進行處理,從而實現(xiàn)從二維圖像恢復場景三維圖像的一種模擬人的雙目視覺的方法。
運動目標的位置確定在機器人視覺導航、公共場景監(jiān)控、智能交通等領域有著十分廣泛的應用背景,而在上述應用領域,雙目視覺較單目視覺有著顯然不可替代的優(yōu)勢,故文章主要對基于雙目視覺的運動目標的定位問題進行研究。
1 雙目視覺的基本原理
1.1 線性攝像機模型
在線性攝像機模型中,定義了三種坐標系[1]:圖像坐標系、攝像機坐標系與世界坐標系。通過三種坐標系的相互關系可以得到世界坐標系表示的點P坐標(Xw,Yw,Zw)與其投影點p的坐標(u,v)間的關系。如圖1所示。其代表的線性攝像機模型由式(1)表示。
M1由f、dx、dy、u0、v0決定,由于這些參數(shù)只與攝像機內部結構有關,故稱這些參數(shù)為攝像機的內部參數(shù)。M2由攝像機相對于世界坐標系的方位而定,被稱為攝像機的外部參數(shù)。
1.2 視差原理
標準的雙目視覺系統(tǒng)成像關系如圖2所示,實際上不同的系統(tǒng)結構都可以變換為這種簡單的標準結構。圖2中,Ol、Or分別為左、右兩個攝相機的光心,Ol、Or之間的距離為b,相機焦距為f。點P到OlOr連線間的距離為z。
2 攝像機標定
攝像機標定是進行目標定位的必要過程,通過攝像機標定可以得到攝像機的內外參數(shù)。常用標定方法[2]有:傳統(tǒng)標定方法、自標定方法等。文章采用傳統(tǒng)標定方法對攝像機進行標定。在傳統(tǒng)標定方法中,首先攝像機的前方放置標定參照物,由攝像機獲取標定物的圖像。通過圖像處理的方法獲取標定物上的特征點,同時對標定物特征點的世界坐標進行精確測定。最后利用一系列標定點在圖像像面上成像點的像素坐標與其世界坐標之間的對應關系,借助非線性優(yōu)化的方法,計算出攝像機數(shù)學模型中包含的內外參數(shù)。
采用傳統(tǒng)標定方法的標定過程[3]如下:
(1)通過改變模板的位置,從不同的角度和位置來拍攝模板圖像,并檢測拍攝的模板圖像上的角點,獲取角點坐標。
(2)根據(jù)角點計算單應矩陣,根據(jù)單應矩陣求解攝像機部分參數(shù)初值,計算出攝像機內外參數(shù)和畸變參數(shù)。
3 基于灰度相關性的立體匹配
立體匹配是尋找同一空間目標在不同視點下投影圖像中像素間的一一對應關系。通根據(jù)匹配基元的不同,雙目視覺中的立體匹配算法分為[4]:區(qū)域匹配、特征匹配、相位匹配。文章選用一種基于灰度相關性的立體匹配算法。
基于灰度相關性的立體匹配步驟如下:首先在圖像中選擇一點Pl(x,y)作為待匹配點,以此點位中心,選擇一個大小為(2M+1)*(2N+1)的匹配窗口。然后依據(jù)具體的匹配方法在待匹配圖像中尋找對應點窗口,即在待匹配圖像中依次對比同一極線上的Pl(x,y)與Pr(x+i,y)的相似程度,依照某種度量標準對比兩圖像窗口的相似程度,并認為相似度最高的窗口的中心像素點與點Pl(x,y)成功匹配。
在上面的兩種匹配代價下,差別系數(shù)越大,模板與圖像之間的區(qū)別就越大。為了在圖像匹配到模板的目標,需要使用一個給定的閾值對相似性圖像sad和ssd進行閾值分割,閾值在試驗中獲取。
4 實驗設計及結果分析
實驗采用兩個攝像頭作為攝錄工具,圖像分辨率都為720*480,兩個攝像頭間隔24cm平行放置。軟件采用基于OpenCV的C++語言進行編程。
實驗分為兩個部分:
4.1 攝像機標定
首先對左右攝像機進行標定,獲取攝像機的內外參數(shù),采用7*9的國際象棋棋盤作為標定模板,每個棋盤格規(guī)格為25mm×25mm。運用OpenCV中提供角點定位函數(shù)及雙目標定函數(shù)編寫程序進行標定,角點提取成功的圖像如圖3,標定結果如表1。
從表1中數(shù)據(jù)可以看出,相機的主點并不位于圖像中心,兩者存在一定的偏差。由于兩臺攝像機的擺放位置比較理想,所以標定得到的旋轉矩陣接近于單位矩陣,平移矢量的第二、三個分量遠小于第一分量。
4.2 立體匹配及目標定位
標定完成后,在同樣的拍攝環(huán)境下拍攝一段視頻,選擇視頻中的行人為定位目標,對左攝像機中的行人進行目標跟蹤,并選取跟蹤算法中的目標區(qū)域為模板,采用基于灰度相關性的立體匹配算法,在右攝像機中對同一行人進行目標匹配。同時在匹配正確的情況下,記錄目標在定點的圖像坐標值,并計算其深度信息,以實現(xiàn)目標定位。
軟件平臺采用VS2005,基于C++語言進行編程,具體算法步驟如下:
(1)采集左右圖像,對圖像進行預處理;(2)在左圖像中對目標進行跟蹤,并確定模板區(qū)域,利用文章算法在右圖像中與待測區(qū)域進行比較,比較值滿足閾值相似性條件認為是匹配點;(3)若是比較值不滿足閾值相似性條件,則移動同一極線上的待測區(qū)域中心點,重復步驟(2);(4)記錄在定點處目標的坐標值利用式(2),計算出相應的深度信息。
立體匹配的實驗結果如圖4所示。
圖4中,為視頻中第100幀的立體匹配情況,其中左圖中的的目標區(qū)域是由跟蹤算法確定的,右圖中的目標區(qū)域是由立體匹配算法確定的,從試驗結果可以看出,右圖的立體匹配比較準確。
為了檢驗文中目標定位的準確性,在視頻拍攝之前選定了若干行走路線上的確定點,并手工測量了其深度值。在雙目視覺的目標定位算法實驗中,以行人到攝像機拍攝平面的距離為實際深度,算法實驗得到的相應確定點的深度數(shù)據(jù)與手工測量的深度數(shù)據(jù)如表2所示。
表2中1號數(shù)據(jù)對應圖4。由表2中的數(shù)據(jù)計算得到的平均相對誤差為1.95%,可以看出采用雙目視覺方法的運動目標定位是可以實現(xiàn)的,定位精度能夠滿足一般要求。
對實驗過程進行分析,發(fā)現(xiàn)誤差產(chǎn)生原因主要有以下兩個方面:
(1)在計算深度的過程中使用的某些數(shù)據(jù),如焦距f,像素點實際對應尺寸等存在誤差,導致深度計算中出現(xiàn)二次誤差;
(2)由于立體匹配算法本身存在缺陷,導致匹配的圖像坐標產(chǎn)生誤差,最終對深度信息造成影響。
針對上述原因造成的誤差,文章提出一些改進的建議:
(1)對最終的深度計算結果進行參數(shù)補償,以減小絕對誤差;
(2)在立體匹配過程中,選取匹配圖像前后的多幀圖像,分別進行匹配并及計算深度,取平均值作為該幀目標的深度;
(3)改進立體匹配算法,使之能夠更好地應用于運動目標系統(tǒng)。
5 結束語
運動目標的位置確定是計算機視覺領域的重要研究內容,文章首先對雙目視覺的基本原理進行介紹,然后深入研究了雙目視覺關鍵技術中的攝像機標定和立體匹配方法,采用傳統(tǒng)標定方法及基于灰度相關性的立體匹配算法,設計了雙目標定及目標定位實驗,實驗結果表明,文中采用的算法能夠實現(xiàn)一般應用需求中的運動目標的定位問題。
參考文獻
[1]馬頌德,張正友.計算機視覺-計算理論與算法基礎[M].北京:科學出版社,1998.
[2]顏卓.基于雙目視覺的運動物體檢測系統(tǒng)研究[D].沈陽:沈陽大學,2012.
[3]Gary Bradski,Adrian Kaehler.學習OpenCV[M].北京:清華大學出版社,2009.
[4]時洪光.基于雙目視覺的運動目標定位研究[D].青島:青島大學,2010.
[5]王逸林.基于區(qū)域匹配算法的雙目立體匹配技術的研究[D].大連:大連海事學院,2012.