前無人駕駛汽車以及汽車安全輔助駕駛技術(shù)是近幾年的研究熱點。針對汽車在城市擁堵道路上低速運行時完全自動駕駛安全性問題,重點研究了基于雙目立體視覺行車中障礙距離檢測方法。
該方法首先根據(jù)雙目標(biāo)定理論獲取左右攝像機的內(nèi)外參數(shù)和畸變系數(shù),再進(jìn)行雙目圖像校正與匹配,然后根據(jù)左右圖像中目標(biāo)點的不同坐標(biāo)得出視差,最后利用三維重建方程組得出障礙物的距離。實驗結(jié)果表明:該方法對汽車前方 5 米左右的障礙物檢測精度高,距離誤差小,能在城市復(fù)雜交通環(huán)境中及時作出相應(yīng)的反應(yīng),有效避免交通事故的發(fā)生。
視覺作為汽車重要的環(huán)境感知手段已經(jīng)得到了越來越多的研究。視覺感知的研究主要包括基于視覺的定位,基于視覺的道路和交通標(biāo)志檢測與識別和基于視覺的避撞技術(shù)。單目視覺測距系統(tǒng)相對于雙目視覺測距系統(tǒng)而言,由于單目獲取的信息量比較少,僅靠標(biāo)定后的單目相機來測距并不能準(zhǔn)確獲取目標(biāo)距離,因此對于雙目測距國內(nèi)外的研究也越來越多。
1. 雙目立體視覺測距系統(tǒng),更好的模擬人眼功能
在國外,就是利用雙目視覺獲取被檢測車輛的深度信息,再用 Kalmam 濾波對被檢測車輛在圖像坐標(biāo)系和世界坐標(biāo)系中進(jìn)行跟蹤?;陔p目視覺系統(tǒng),提出了對運動目標(biāo)的檢測方法,并能很好測出運動目標(biāo)深度信息和速度大小,該方法能夠較好獲得運動目標(biāo)的輪廓和速度。
通過雙目立體視覺系統(tǒng)對牌照特征進(jìn)行提取以及獲取中心坐標(biāo)來匹配相應(yīng)的牌照對,然后利用 3D 重建方程組來獲取前車位置參數(shù)。而在國內(nèi),在雙目視覺基礎(chǔ)上,應(yīng)用 MeanShift 跟蹤算法和雙目立體視覺中空間點定位算法,設(shè)計了對運動目標(biāo)的跟蹤和測量系統(tǒng)。
利用雙目立體視覺系統(tǒng)實現(xiàn)了對目標(biāo)的識別與定位,從而控制機器人手臂完成抓取操作。利用雙目立體視覺算法獲得路標(biāo)信息,進(jìn)而輔助全球衛(wèi)星導(dǎo)航系統(tǒng)(GNSS)。
然而盡管國內(nèi)外的研究人員在測量前車距離方面做了很多研究,但是目前還是基于單目視覺的測距系統(tǒng)居多,由于單目視覺圖像的距離感知精度偏低,因此,重點研究了雙目立體視覺測距系統(tǒng),它能夠很好地模擬人眼功能,對三維世界進(jìn)行感知。
雙目立體視覺測距系統(tǒng)主要包括攝像機標(biāo)定、圖像分割、立體匹配和三維重建四個部分。對攝像機標(biāo)定部分做了一定的改進(jìn),舍棄了原有的世界坐標(biāo)系,提出了一種基于攝像機安裝位置的汽車坐標(biāo)系,這樣就能夠得出運動目標(biāo)與汽車的相對位置,然后對汽車做出相應(yīng)的控制處理,達(dá)到安全行駛的目的。具體流程,如圖 1 所示。該方法能夠有效提高障礙物檢測精度,精確測得與前方物體的相對位置信息,具有一定的實用價值。
2. 雙目視覺的原理
2.1 攝像機標(biāo)定
攝像機標(biāo)定是獲取攝像機內(nèi)外參數(shù)的一個過程,其目的是建立一個從客觀世界坐標(biāo)系到圖像平面坐標(biāo)系之間的一個對應(yīng)過程?,F(xiàn)在應(yīng)用比較廣泛的是張正友教授提出的標(biāo)定法,它是基于傳統(tǒng)標(biāo)定法和自標(biāo)定法之間的一種優(yōu)化方法。而所選用的標(biāo)定方法就是改進(jìn)的張正友標(biāo)定法。
2.1.1 單目標(biāo)定
單目標(biāo)定是攝像機雙目標(biāo)定的前提,只有兩個攝像機的內(nèi)外參數(shù)都知道后才可以進(jìn)行雙目標(biāo)定,首先建立坐標(biāo)投影模型,明確現(xiàn)實中的點在世界坐標(biāo)系下,經(jīng)過旋轉(zhuǎn)、平移怎樣映射到圖像平面上,如圖 2 所示。
2.2.2 雙目標(biāo)定
2.3 改進(jìn)的標(biāo)定算法
雙目標(biāo)定中涉及到的世界坐標(biāo)系是客觀存在的,使用張正友標(biāo)定法標(biāo)定完后,內(nèi)外參數(shù)一旦確定,則世界坐標(biāo)系與汽車之間的位置關(guān)系也就相對靜止了,若汽車在運動,則世界坐標(biāo)系也在做了相同的運動。
考慮到這個因素,而且在這個系統(tǒng)中,只考慮到汽車與障礙物的相對位置即可,因此,選擇一個相對不變的坐標(biāo)系,該坐標(biāo)系選在了兩個攝像機所在的豎直平面內(nèi),具體的改進(jìn)方法如下:
選擇一個新的坐標(biāo)系,把它稱為汽車坐標(biāo)系(X,Y,Z),它的原點位置選在了兩臺攝像機的中點。則齊次坐標(biāo)關(guān)系為:
分別為左右攝像機內(nèi)參數(shù)矩陣的逆。這樣只要得出運動目標(biāo)在左右攝像機圖像上的坐標(biāo),再聯(lián)立式(5)和式(10)就可以解得與汽車之間的相對位置。
3. 雙目立體視覺算法
3.1 圖像濾波
在實際拍攝過程中,由于受設(shè)備和環(huán)境等因素的影響,圖像信號在記錄以及傳輸過程中,經(jīng)常會受到各種噪聲的影響,使得圖像質(zhì)量下降,目標(biāo)特征不突出,因此對以后的圖像分割、特征點提取以及立體匹配等過程產(chǎn)生影響。
所以必須對圖像進(jìn)行降噪處理,即對圖像進(jìn)行濾波,其中中值濾波屬于非線性濾波,它對輸入信號的響應(yīng)是非線性的,因此會使某一點的噪聲近似映射為零,而只保留信號的主要特征。所以本實驗采用的是非線性濾波技術(shù)中的中值濾波。
3.2 圖像分割
圖像分割就是把圖像細(xì)分為構(gòu)成它的子區(qū)域或者對象,而進(jìn)行分割的目的就是將我們所關(guān)注的圖像目標(biāo)從背景中提取出來,以便進(jìn)一步分析和處理。
本實驗采用的 Otsu 閾值分割法,根據(jù)周圍環(huán)境光照強度的不同,使類間方差最大,從而能夠自動確定閾值,大于閾值的像素用白色表示,其它閾值的像素就用黑色表示,這樣就將原圖像轉(zhuǎn)化為黑白的二值圖像。
3.3 雙目校正與匹配
在獲得攝像機內(nèi)外參數(shù)后,再對雙目圖像進(jìn)行校正處理,校正步驟有兩個,一是消除鏡頭對圖像產(chǎn)生的畸變,可以采用上節(jié)相機標(biāo)定獲得攝像機參數(shù)后,根據(jù)相機模型來進(jìn)行消除;二是使雙目圖像共面并且嚴(yán)格行對齊,可以通過 Bouguet 重投影算法[11]將雙目圖像進(jìn)行重投影。
雙目匹配就是將物體上的一個投影點在左右兩相機中同一時刻所拍攝的兩幅圖像上進(jìn)行匹配,就是將一幅圖像上的目標(biāo)點與另一幅圖像上的目標(biāo)點對應(yīng)匹配起來。
所使用的匹配算法是快速雙目視覺立體匹配算法,經(jīng)過該匹配算法處理后,可以將左右兩攝像機圖像中的
3.4 三維重建
4. 實驗驗證與分析
4.1 實驗的軟硬件資源
試驗所用的雙目視覺測距系統(tǒng)包括兩個 USB 攝像頭,一臺 PC 機,以及一個支架組成,如圖 4 所示。軟件環(huán)境為 VC++6.0,在此基礎(chǔ)上載入 OpenCV 視覺庫,可以完成整個系統(tǒng)的開發(fā),系統(tǒng)主界面,如圖 3 所示。但是由于使用 MATLB 對攝像機進(jìn)行標(biāo)定精度比較高,因此標(biāo)定部分利用了 MATLB 軟件。
4.2 攝像機標(biāo)定
攝像機的標(biāo)定有許多辦法可以實現(xiàn),可以用 Opencv 提供的標(biāo)定函數(shù)進(jìn)行標(biāo)定,也可以用 MatlabCalibrationToolbox 進(jìn)行標(biāo)定,由于我們本次實驗采用雙目攝像機為固定狀態(tài),因此只需要標(biāo)定一次就可以,雖然用 Matlab 標(biāo)定工具箱進(jìn)行標(biāo)定需要手動操作,使得速度慢,但是標(biāo)定的精度較高,因此采用了 MATLAB 進(jìn)行標(biāo)定。
首先打印一張(7X9)的黑白棋盤格的標(biāo)定圖片,如圖 5 所示。并貼附在一個比較平整的水平板上,每個方格的大小為 28mmX28mm。
4.3 圖像分割與立體匹配
在匹配之前先對圖像進(jìn)行預(yù)處理,即對圖像進(jìn)行分割得到二值化圖像,如圖 9 所示。由于分割后的二值化圖像仍有一定噪聲,對特征點提取不利,所以再進(jìn)行形態(tài)學(xué)腐蝕或者膨脹處理,圖 10 所示為膨脹處理圖像。通過對比可以看出,膨脹處理圖像比二值化圖像特征點更突出。
立體匹配是本次實驗的重點,在匹配之前我們要先進(jìn)行圖像的去畸變處理,再將兩圖片進(jìn)行極線約束。圖 11 就表示了去畸變以后的極線約束,這樣兩圖片所對應(yīng)的匹配點就在同一條直線上了。左右圖像的視差圖,如圖 12 所示。
5. 結(jié)語
主要研究了基于雙目立體視覺測距的汽車前方障礙物的測量方法,為了完成測距,先后研究了雙目立體視覺原理,攝像機標(biāo)定,圖像濾波與圖像分割等預(yù)處理,雙目校正與匹配,三維重建等關(guān)鍵技術(shù),并且利用了 MATLAB OpenCV 相結(jié)合的方法完成了測距。
好讓汽車進(jìn)一步作出相應(yīng)的配合。經(jīng)過實驗證明,該方法能夠有效的測得前方障礙物的距離信息,提高汽車的感知精度。汽車在復(fù)雜環(huán)境下行駛時,如何自動提取多個目標(biāo)物并準(zhǔn)確完成距離測量工作將是無人駕駛汽車下一步研究的重點。