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