韓峻峰 王 帥
1(欽州學院物理與電子工程學院 廣西 欽州 535011)2(桂林電子科技大學電子工程與自動化學院 廣西 桂林 541004)
?
基于雙目立體視覺技術的汽車測距系統(tǒng)實現(xiàn)
韓峻峰1王帥2
1(欽州學院物理與電子工程學院廣西 欽州 535011)2(桂林電子科技大學電子工程與自動化學院廣西 桂林 541004)
汽車測距是汽車防撞系統(tǒng)的關鍵技術之一。在分析現(xiàn)有的汽車測距常用方法基礎上,針對常用測距方法設備龐雜、相互干擾嚴重等問題,對機器視覺在汽車測距方面的應用進行研究,提出一套基于雙目立體視覺技術的汽車測距方案。并使用OpenCV2.4.8在VS2012編譯環(huán)境下用C/C++編程實現(xiàn)驗證其可行性,通過對攝像機標定、立體校正、立體匹配等關鍵技術的研究,選用一種快速的立體匹配算法對目標進行測距。經(jīng)過實驗驗證,該系統(tǒng)可行性高、成本低,只需兩個普通CMOS攝像頭便可完成圖像采集工作,而且平臺搭建方便,測距算法容易實現(xiàn),速度快、擴展性好,在一定范圍內(nèi)的準確度基本滿足應用要求。
汽車防撞雙目立體視覺技術測距
汽車測距是智能汽車防撞系統(tǒng)[1]的主要關鍵技術之一?,F(xiàn)有的汽車測距常用的有毫米波雷達測距、超聲波測距、激光測距、機器視覺測距等多種方法[2]。
毫米波雷達測距利用雷達發(fā)射電磁波,并由接收物體反射的回波獲得物體至電磁波發(fā)射點的距離等信息,具有長測量距離、高精度、多目標檢測及受天氣和障礙物形狀影響小等優(yōu)點[3]。然而,使用此測距法不足之處是毫米波雷達成本高,不能有效分辨測量極弱反射或者不能發(fā)射電磁波的物體(如行人等),且若有多輛車同時使用雷達測距,相互間干擾較嚴重。
超聲波測距的原理[4]是通過測量超聲波發(fā)射聲波與接收回波的時間差,經(jīng)計算后便可得到物體的實際距離。具有成本低,在一定范圍內(nèi)精度很高等優(yōu)點。然而由于其可測距離較短,受大氣影響較大,最佳距離為4~5米,最大測量距離不超過10米,遠達不到所需要求,故常用于汽車倒車防撞系統(tǒng)上。
激光測距的原理和毫米波雷達的測距原理一樣,通過窄激光束對某一區(qū)域進行掃描來實現(xiàn)距離的測量,具有測量距離遠、速度快、準確度高、抗干擾能力強、無盲區(qū)等優(yōu)點[5],而隨著有關技術和器件的發(fā)展,激光測距的精度可達厘米甚至毫米級。然而由于系統(tǒng)對信號的處理相當復雜,單成本高、易受外界環(huán)境影響等,成為了制約推廣激光測距技術應用的重要因素。
機器視覺測距[6]是利用攝像機或者照相機實時拍攝被測目標的圖像,通過計算機快速提取目標圖像的特征信號,經(jīng)分析計算之后,得出被測目標到拍攝點的距離。與以上方法相比,其最大的不同之處是被動測距,即不需要向目標物發(fā)射任何信號,只需拍攝下目標物的圖像即可。因此可以大大節(jié)省硬件開發(fā)成本,只需在軟件算法上進行研究優(yōu)化。而且由于其是被動測距的工作方式,相互間不會干擾對方,對道路間多車輛安全行駛不會因信號混亂產(chǎn)生影響。另外,由于圖像所含信息包括目標物及其他大量的附加信息(如各種交通指示等),利用計算機識別出這些信息,將會極大地提高車輛的智能程度,這是以上任何方法所不能比擬的。目前,雙目立體視覺技術是機器視覺領域的一個重要分支,也是當前研究工作開展最多,相對技術比較成熟的一種。其擬人眼的工作方式,可在不同條件下靈活測量不同景物的立體信息,在工程應用中有著極高的研究價值。因此,在通過對雙目立體視覺測距原理及其關鍵技術的研究之后,使用OpenCV(計算機開源視覺庫)設計了一套基于雙目立體視覺技術的汽車測距系統(tǒng),并用該系統(tǒng)實現(xiàn)了測距。
雙目立體視覺測距技術模仿人類利用雙眼視差獲取場景深度的方法。利用兩臺平行放置但相距一段距離的拍攝裝置對同一目標物進行拍攝,由于其空間位置不同,所拍攝目標物圖像必存在像差(即視差),進而通過一定方法可以從視差中確定深度距離信息。根據(jù)這一原理,通過在計算機上對采集到的左右圖像對預處理、立體校正、立體匹配,再結(jié)合攝像機的各項參數(shù),使用三角測量的方法,便不難得到目標物的深度距離信息[7]。
如圖1所示為簡化的雙目立體視覺平行成像俯視圖(左右攝像機嚴格平行放置)。IL、IR分別為左右攝像機像平面,PL、PR為空間點P到左右像平面的投影,T是兩攝像機光心OL到OR之間的平移距離,f為攝像機焦距,Z便是目標點P的深度信息,即所求距離。由圖可得ΔPPMPL相似于ΔPPNOL,ΔPPMPR相似于ΔPPNOR。
圖1 雙目立體視覺平行成像俯視圖
根據(jù)相似三角形原理可得:
(1)
(2)
另PNOL=x,CLPL=l,PRCR=r,則代入式(1)、式(2)得:
(3)
(4)
兩式聯(lián)立得出深度距離公式如下:
(5)
其中,d=l-r,f已知,T已知,因此,若要求得Z的數(shù)值,只需獲得空間點P在左右像平面投影點之間的視差值。
雙目立體視覺汽車測距系統(tǒng)總體框圖如圖2所示,主要包括,圖像采集、攝像機標定、雙目立體校正、立體匹配、數(shù)據(jù)輸出等。
圖2 雙目立體視覺汽車測距系統(tǒng)總體框圖
2.1圖像采集
系統(tǒng)圖像采集模塊使用的是兩個感光元件類型為CMOS的攝像頭,最大幀率可達60幀每秒,使用USB數(shù)據(jù)線與PC機進行通信,如圖3所示為兩個平行放置的USB攝像頭。圖4為計算機實時顯示畫面。
圖3 雙目攝像頭實物圖
圖4 雙目攝像頭實時顯示畫面
2.2攝像機標定
攝像機標定是為了建立三維世界坐標與二維圖像坐標之間的對應關系[8],根據(jù)攝像機成像模型及相似三角形原理可得空間點P在攝像機下的成像關系如式(6)所示[9]:
(6)
其中:
式中,Zc為空間點P在攝像機坐標系下光心到像平面投影點的距離,點p(u,v)為空間點P(Xw,Yw,Zw)在像平面的投影點坐標,M為攝像機內(nèi)參數(shù)矩陣,f/dx、f/dy分別為攝像機在橫豎(x,y)方向的等效焦距,單位是像素,s為傾斜因子,u0、v0為圖像坐標系(即像平面)下的主點坐標,R為3階正交單位矩陣,t為平移向量。
圖5 攝像機標定棋盤圖
為了求得攝像機矩陣的各個參數(shù),這里采用基于張氏標定法進行攝像機標定[10],但與張氏標定法不同的是同時考慮了攝像機的徑向畸變和切向畸變(張氏標定法只考慮了徑向畸變)。設計常用的棋盤圖作為攝像機的參照物,即標定板,每個棋盤格大小為28 mm×28 mm,角點數(shù)為8×6,如圖5所示。
從不同角度拍攝標定板的多幅圖像,這里在OpenCV里面進行圖像捕獲,移動攝像機捕獲左右各9副不同角度的圖像,圖像大小為640×480,使用OpenCV里面的cvStereoCalibrate()函數(shù)進行標定,標定結(jié)果如下(僅保留小數(shù)點后5位):
攝像機外參數(shù)如下:
從旋轉(zhuǎn)矩陣R可以看出,R基本接近單位矩陣,說明兩攝像機基本處于平行狀態(tài);而兩攝像機實際設置(尺測)距離為100 mm,這點從平移向量T的x向量為-99.99933 mm可以看出基本近似,誤差極小,符合雙目立體視覺測距系統(tǒng)的要求。
2.3立體校正
由于攝像機本身工藝原因及光學透鏡的特性使得成像多少存在一些畸變現(xiàn)象(如徑向畸變等),這在一定程度上影響了匹配的準確性。而另一方面,要對兩幅圖像上的對應點進行匹配,就要對目標圖像上的二維空間進行搜索,搜索范圍大,非常耗時。而立體校正的作用就是消除原圖像的畸變,使立體匹配更加準確,同時讓兩幅圖像嚴格地行對準,以便利用極線約束將匹配對應點由二維搜索降為一維搜索,加快立體匹配速度。
具體方法是通過給定的旋轉(zhuǎn)矩陣R和平移向量T,利用Bouguet校正方法使左右圖像中的每一幅重投影次數(shù)最小化,從而也使得重投影畸變最小化,同時使疊加視圖的面積最大化。由于三維點可通過投影矩陣變換到投影平面上的二維點,同理,平面上的二維點也可通過重投影矩陣重投影為三維點,如式(7)所示[11]:
(7)
其中:
式中,Q為重投影矩陣,d為二維齊次點的關聯(lián)視差,重投影矩陣中,-Cx、-Cy和f均來自于左圖像的主點和焦距,Tx即右攝像頭相對左攝像頭的平移距離,Cx′為主點在右圖像上的x坐標。另外,如果主光線在無窮遠處相交,即Cx=Cx′,那么Q右下角的項為零。在OpenCV中可通過stereoRectify()函數(shù)實現(xiàn)以上校正功能,并獲得重投影矩陣,校正結(jié)果如圖6、圖7所示。
圖6 原圖像校正前
圖7 原圖像校正后
2.4立體匹配
立體匹配的目的是得到同一空間物體在不同視點下投影圖像中像素點間的一一對應關系(即視差值)。其算法主要分為兩大類:基于局部約束的立體匹配算法和基于全局約束的立體匹配算法。基于局部約束的立體匹配算法主要有區(qū)域匹配、特征匹配和相位匹配算法等[12,13]。通過對一些立體匹配算法的比對分析,這里采用區(qū)域匹配算法里的基于立體相關塊匹配的方法,使用匹配代價函數(shù)為絕對誤差累計(SAD)的方式來尋找兩幅立體校正圖像之間的匹配點[14],SAD匹配代價函數(shù)如下:
(8)
其中IL為原圖(即左圖)中的像素塊,IR為目標圖(即右圖)中的像素塊,d是要搜尋的深度,W為匹配窗口。通過OpenCV中的cvFindStereoCorr-espondenceBM()函數(shù)可以實現(xiàn)上述基于塊匹配的立體算法。
立體匹配的過程通過滑動SAD窗口來完成,對于校正后嚴格行對準的圖像,如果在左圖像的每個匹配特征點有足夠多的可檢測紋理,便可以通過搜索右圖像中的對應行的最佳匹配來確定匹配位置。而若有足夠多的匹配點被找到,就能得到立體匹配后的視差圖。通過視差圖,可以很直觀地看出匹配效果,若匹配點稠密(即匹配點多),視差圖與原圖相似度就越高,若匹配點比較稀疏(即匹配點較少),則得到的視差圖與原圖的相似度就越低。圖8為原圖(左圖),圖9為立體匹配后得出的視差圖。
圖8 原圖 圖9 視差圖
可以看出,所得視差圖對強紋理作出了匹配,匹配點較稀疏,但基本可以分辨出人物及物體形狀,因此,只需要提取人物及物體的一個匹配點便可以計算目標的深度距離。
基于塊匹配的BM算法匹配速度快,經(jīng)過實驗驗證,在每秒25幀的情況下獲取目標物的視差圖,并無明顯卡頓現(xiàn)象,基本能達到實時要求,這也是該算法明顯優(yōu)于其他算法的地方。目標物距離的計算采用式(5),但由于主光線通常會在有限距離內(nèi)相交,主點并不具備相同的坐標,即Cx≠Cx′,因此求目標物的距離公式修改如下所示:
(9)
具體數(shù)據(jù)從式(7)里的Q矩陣中獲取,使用鼠標獲取一點的方式,從視差圖中獲取目標物一點的視差值,代入到式(9)中求得目標物的深度距離。
實驗環(huán)境下,通過對目標物的移動來改變目標物與攝像機的相對距離(也可以多目標不同距離下進行檢測),以測得不同距離下的深度數(shù)據(jù)。實驗結(jié)果如表1所示。
表1 實驗結(jié)果
從表1可以看出,近距離測距結(jié)果精度很高,較遠距離測距誤差小于5%,說明該算法能達到一定的精度。但也可以看出,較遠距離測量誤差增大明顯,在距離6200 mm的距離上的誤差是在距離800 mm距離上的誤差的42倍還多。這主要是由于標定產(chǎn)生的誤差和實際測量產(chǎn)生的誤差及其他因素的影響,如像素對于物體不同距離的收納以及立體匹配對強紋理的需求都能導致遠距測量精度的下降。
通過對現(xiàn)有汽車測距方法的分析,提出使用雙目立體視覺技術進行汽車測距。對雙目立體視覺技術測距原理及其關鍵技術研究之后,在計算機仿真平臺上使用OpenCV設計了一套基于雙目立體視覺技術的汽車測距系統(tǒng),并對其進行了測距驗證。通過對測距結(jié)果的分析,充分驗證了其在測距方面的可行性。實驗結(jié)果表明,該系統(tǒng)成本低、設備簡單,只需兩個普通CMOS攝像頭便可完成圖像采集工作;而且平臺搭建方便,測距算法容易實現(xiàn)、速度快,在一定范圍內(nèi)有較好的測距精度,基本滿足了應用要求,并為進一步汽車測距的實際應用打下了良好的基礎。
[1] 尹金楷,魏玉.汽車防撞系統(tǒng)的綜述[J].三門峽職業(yè)技術學院學報,2013,12(3):117-119.
[2] 王中元.現(xiàn)代智能汽車在路測距技術研究[J].企業(yè)技術開發(fā),2008,27(6):15-17,50.
[3] 韓峻峰,張惠敏,潘盛輝,等.汽車防撞雷達概述[J].廣西工學院學報,2011,22(4):54-58.
[4] 李戈,孟祥杰,王曉華,等.國內(nèi)超聲波測距研究應用現(xiàn)狀[J].測繪科學,2011,36(4):60-62.
[5] 閆赫.激光測距傳感器的原理分析及應用[J].湘潭大學自然科學學報,2013,35(4):101-104.
[6] 劉硯秋.機器視覺技術的發(fā)展動態(tài)[J].電子元件與材料,2014,33(5):93-94.
[7] 劉盼,王金海.基于平行雙目立體視覺的測距系統(tǒng)[J].計算機應用,2012,32(S2):162-164.
[8] 劉金頌,原思聰,張慶陽,等.雙目立體視覺中的攝像機標定技術研究[J].計算機工程與應用,2008,44(6):237-239.
[9] 謝莉,余勝.攝像機標定算法研究[J].科技視界,2011(4):22-24.
[10] 岳曉峰,祁歡.基于張正友平面模板法的雙目立體視覺系統(tǒng)標定[J].機械工程師,2014(2):1-3.
[11] 王浩,許志聞,謝坤,等.基于OpenCV的雙目測距系統(tǒng)[J].吉林大學學報:信息科學版,2014,32(2):188-194.
[12] 于乃功,馬春燕,林佳.基于雙目視覺的關鍵點的檢測方法及定位研究[J].計算機測量與控制,2011,19(7):1565-1568.
[13] 白明,莊嚴,王偉.雙目立體匹配算法的研究與進展[J].控制與決策,2008,23(7):721-729.
[14] 翟振剛.立體匹配算法研究[D].北京理工大學,2010.
IMPLEMENTING AUTOMOBILE RANGING SYSTEM BASED ON BINOCULAR STEREO-VISION TECHNOLOGY
Han Junfeng1Wang Shuai2
1(College of Physics and Electronic Engineering,Qinzhou University,Qinzhou 535011,Guangxi,China)2(CollegeofElectronicEngineeringandAutomation,GuilinUniversityofElectronicTechnology,Guilin541004,Guangxi,China)
Automobile ranging is one of the key technologies of automobile anti-collision system. Based on analysing current common methods of automobile ranging, and aiming at their problems of complex equipment and serious mutual interference, we studied the application of machine vision in automobile ranging area and put forward a set of automobile ranging schemes, they are based on binocular stereo vision technology. Moreover, we employed OpenCV2.4.8 configuration in VS2012 compiler environment and used C/C++ programming to verify its feasibility, through the research on camera calibration, stereo correcting, stereo matching and other key technologies, we chose a fast stereo matching algorithm to measure the distance of targets. Experiment verified that the system has high feasibility and low cost, it only needs two ordinary CMOS cameras to complete image acquisition, and the platform is convenient in building, the ranging algorithm is easy to implement with fast speed and good scalability as well, and the accuracy within a certain scope meets the application requirements basically.
Automobile anti-collisionBinocular stereo visionDistance measurement
2014-12-20。韓峻峰,教授,主研領域:智能傳感器,智能控制和智能信息處理。王帥,碩士生。
TP391.4
A
10.3969/j.issn.1000-386x.2016.09.054