基于現(xiàn)實(shí)世界是一個(gè)三維空間,所以對(duì)計(jì)算機(jī)視覺(jué)的研究也應(yīng)該是在三維空間中進(jìn)行的。在自動(dòng)駕駛過(guò)程中的首要任務(wù)就是道路識(shí)別 [1] ,主要是圖像特征法和模型匹配法來(lái)進(jìn)行識(shí)別。行駛過(guò)程中需要進(jìn)行障礙物檢測(cè) [2] 和路標(biāo)路牌識(shí)別等,此時(shí)車輛上的信息采集便可以運(yùn)用單目視覺(jué)或者多目視覺(jué)。
相比之下,運(yùn)用多目視覺(jué)更具優(yōu)勢(shì),獲取的圖像信息可構(gòu)建成三維空間,物體運(yùn)動(dòng)以及遮擋等問(wèn)題對(duì)其影響較小。目前有很多智能小車的研究都是基于室內(nèi)環(huán)境的研究,本文基于室外環(huán)境,采用雙目攝像機(jī)模型 [3] ,考慮光照、路面材質(zhì)等問(wèn)題,采用分水嶺算法 [4] 對(duì)智能車的區(qū)域進(jìn)行定位,以及在行駛區(qū)域中采用多閾值 canny 算法來(lái)進(jìn)行障礙物的檢測(cè),進(jìn)而計(jì)算出障礙物大小位置等信息。
分水嶺算法
定義極小值點(diǎn),本質(zhì)上的意義就是定義道路和圖像中其他區(qū)域的極小值點(diǎn),使道路與圖像中的其他區(qū)域劃分開(kāi)。 接著對(duì)極小值點(diǎn)的相鄰像素按照等級(jí)進(jìn)行逐級(jí)劃分,等級(jí)是按照極小值點(diǎn)與相鄰像素的距離劃分的,而這里的距離是指兩個(gè)像素點(diǎn)之間灰度值的差值。 從定義的極小值點(diǎn)開(kāi)始逐步擴(kuò)展形成集水盆。 從最小等級(jí)開(kāi)始,對(duì)與集水盆相鄰的像素點(diǎn)進(jìn)行擴(kuò)展。 如果當(dāng)前要擴(kuò)展的像素點(diǎn)只與一個(gè)集水盆相連,則把該點(diǎn)標(biāo)記為相近集水盆的標(biāo)記;如果當(dāng)前要擴(kuò)展的像素點(diǎn) 2個(gè)或多個(gè)集水盆相連,則把該點(diǎn)標(biāo)記為分水線或者分水嶺。 在進(jìn)行擴(kuò)展的過(guò)程中,只有當(dāng)前等級(jí)的所有像素被劃分完畢后,才能對(duì)下一個(gè)等級(jí)的像素進(jìn)行劃分。
基于多閾值 canny 的障礙物檢測(cè)
由于室外環(huán)境下,陰影、光照、雨水等天氣原因都會(huì)對(duì)圖像的拍攝造成影響,所以采用的是雙目攝像頭模型,可以有效地減輕外界因素對(duì)圖像的干擾。
Canny 邊緣檢測(cè) [5] 算法閾值的不同,會(huì)導(dǎo)致所獲得的邊緣信息不同,本文中利用 2 個(gè)不同的閾值將點(diǎn)分為 3 類:強(qiáng)邊緣點(diǎn)、弱邊緣點(diǎn)、弱紋理點(diǎn);其中弱邊緣點(diǎn)是利用閾值較小的算子檢測(cè),除去通過(guò)閾值較大的算子得到的強(qiáng)邊緣點(diǎn)所剩下的點(diǎn);剩余的其他像素點(diǎn)則為弱紋理點(diǎn)。 再根據(jù)各點(diǎn)特征分配匹配窗口大小,強(qiáng)邊緣點(diǎn)主要是位于邊界和視差不連續(xù)點(diǎn),其支持窗口應(yīng)該越小越好;而弱紋理點(diǎn)周圍的梯度變化不明顯,窗口應(yīng)足夠大,包含更多的圖像信息進(jìn)來(lái);而弱邊緣點(diǎn)特征介于強(qiáng)邊緣點(diǎn)與弱紋理點(diǎn)之間,處于 2 個(gè)以上的弱紋理交界處,兼有邊緣與弱紋理的特征,所以窗口介于兩者之間。 在本文算法中,強(qiáng)邊緣點(diǎn)分配的是 1 ×3 窗口,弱邊緣點(diǎn)分配的是 5 ×5 窗口,弱紋理點(diǎn)分配的是 11 ×11 窗口。
分配好所有點(diǎn)的窗口大小后,則需要進(jìn)行最關(guān)鍵的一步———立體匹配 [6] 。 本文采用的是SAD 來(lái)作為匹配測(cè)度函數(shù),如式(1)。 算法中假設(shè)以右圖為參考圖,令為匹配測(cè)度,d 為滑動(dòng)窗口位移量,Wr 為匹配窗口,Ir (x,y)和 Ii(x+d,y) 分別為左圖和右圖中匹配窗口中心像素的灰度值。
最后可得到一幅初始視差圖,圖像的灰度深淺即表示了前方物體離攝像機(jī)的遠(yuǎn)近。
障礙物判別
在得到初始視差圖后,需要進(jìn)一步判別障礙物的遠(yuǎn)近及大小,所以這里引入 V-視差和 U-視差理論 [7] 。 V-視差圖是在初始視差圖的基礎(chǔ)上,累加視差圖像每一行上具有相同視差值 dv 的像素個(gè)數(shù),以像素的個(gè)數(shù)作為像素坐標(biāo)(dv,y)的灰度值,為 0 到 255。 V-視差圖的高度與原圖像是相同的,但是寬度只有 256 [8] 。 同理,U-視差圖是累加視差圖像每一列上具有相同視差值 du 的像素個(gè)數(shù),高度為 256。
根據(jù) V-視差圖的原理,每一行中的視差值相同點(diǎn)的個(gè)數(shù)會(huì)被投影成一條直線,所以在 V-視差圖中路面是一條斜線,障礙物是一條看似與斜線垂直的線段,可以通過(guò)該線段求出障礙物的高度 。同理,可通過(guò) U-視差圖計(jì)算出障礙物的寬度。 根據(jù)初始視差圖中包含的視差值,由式(2)可以計(jì)算出每個(gè)障礙物的距離,其中攝像機(jī)的焦距 f 和 2 個(gè)攝像機(jī)基線距離 b 均是固定并且是已知的。
實(shí)驗(yàn)結(jié)果
4.1 道路識(shí)別結(jié)果該算法基于 VC 平臺(tái)實(shí)現(xiàn)的,輸入的圖片是由攝像機(jī)所拍攝的普通道路圖片,實(shí)驗(yàn)結(jié)果如圖1 所示。
4.2 障礙物檢測(cè)結(jié)果
輸入的原始圖片是由雙目攝像機(jī)所拍攝的左右圖像(圖 2)
實(shí)驗(yàn)采用的是平行的攝像機(jī)模型,以右攝像機(jī)拍攝的圖像為參考圖像進(jìn)行 Canny 邊緣檢測(cè)。 圖 3為對(duì)參考圖像進(jìn)行不同閾值的邊緣檢測(cè)。
在求得每個(gè)點(diǎn)的最佳視差值之后,用該點(diǎn)的視差值來(lái)表示該點(diǎn)的像素值,形成圖像的初始視差圖,并且進(jìn)行中值濾波后期處理,效果如圖 4。
得到的初始視差圖,利用 V-視差圖和 U-視差圖后根據(jù)圖中信息計(jì)算障礙物的大小與位置。 輸入 V-視差圖和 U-視差圖后,分別計(jì)算出了高度和寬度。 如圖 5 所示。
實(shí)驗(yàn)中攝像機(jī)的焦距 30 mm,攝像機(jī)之間的基線距離為 200 mm,即可計(jì)算出障礙物所在位置離攝像機(jī)的距離。 算法數(shù)據(jù)與實(shí)際數(shù)據(jù)對(duì)比結(jié)果如表 1 所示。
總結(jié)
本論文中主要研究了基于雙目視覺(jué)的自動(dòng)駕駛,包括了道路識(shí)別算法、基于多閾值 Canny 的障礙物檢測(cè)和判別。
算法的處理效果比較理想,運(yùn)行處理速度在背景復(fù)雜的情況下偏慢。 研究了基于雙目視覺(jué)的自動(dòng)駕駛中障礙物識(shí)別問(wèn)題。 該算法實(shí)驗(yàn)效果較好,但由于水平方向的信息較少使得障礙物的寬度檢測(cè)結(jié)果存在一些誤差。 在后續(xù)的深入研究中,應(yīng)該把動(dòng)態(tài)障礙物檢測(cè)加入。
-
計(jì)算機(jī)視覺(jué)
+關(guān)注
關(guān)注
8文章
1698瀏覽量
45974 -
無(wú)人駕駛
+關(guān)注
關(guān)注
98文章
4054瀏覽量
120446 -
自動(dòng)駕駛
+關(guān)注
關(guān)注
784文章
13784瀏覽量
166383
原文標(biāo)題:基于雙目視覺(jué)的無(wú)人駕駛算法
文章出處:【微信號(hào):IV_Technology,微信公眾號(hào):智車科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論