范曉娟+胡坤福+段海艷+羅文廣
摘 要:基于單目攝像頭,文中提出了一種自適應(yīng)掃描區(qū)域的車型及車距檢測算法,以提高前方車輛識別的實時性、準(zhǔn)確性和魯棒性。該算法的創(chuàng)新點在于采用發(fā)散式掃描方式進行分段區(qū)域閾值計算,可以在減小計算量的同時有效避免道路兩旁樹木、廣告牌等陰影對車輛檢測的影響。首先,確定道路消失點與掃描區(qū)域;其次,根據(jù)車輛底部的陰影特征進行自適應(yīng)閾值、矩形度等的計算,確定車輛所在位置;再次,根據(jù)邊緣特征識別出車輛外框;最后,根據(jù)逆投影變換估算出前方車輛與本車之間的距離。實驗結(jié)果表明,該算法對于在復(fù)雜路面、光線較弱工況下的車輛識別均具有較好的適應(yīng)性。
關(guān)鍵詞:單目視覺;發(fā)散式掃描;自適應(yīng)閾值;車輛識別;車距識別
中圖分類號:TP391;TP274 文獻標(biāo)識碼:A 文章編號:2095-1302(2017)06-00-05
0 引 言
車輛檢測系統(tǒng)具有輔助駕駛、提前警告等作用,可以更好地保護人車安全。文獻[1]指出目前常用的車輛檢測算法有單目視覺、立體視覺、多傳感器融合。由于目前單目視覺算法成熟,因此車輛檢測的方法多基于單目視覺。
在基于單目視覺的車輛實時檢測系統(tǒng)中,車輛最明顯的特征是其底部陰影[2-11]。目前,陰影檢測技術(shù)主要分為基于模型的方法和基于特征的方法。
基于模型的方法根據(jù)被檢測目標(biāo)的形狀、所處環(huán)境等先驗條件建立陰影模型,然后通過統(tǒng)計分析來判斷每個像素點是否屬于陰影區(qū)域?;谀P偷姆椒ㄐ枰獓?yán)格假設(shè),若被檢測目標(biāo)易于建模,則可對陰影有較好的檢測效果。但在復(fù)雜多變的環(huán)境下,此方法抗干擾能力差,檢測正確率不高[12]?;谔卣鞯姆椒▌t是先確定掃描區(qū)域,然后通過灰度、紋理、梯度等特征來檢測陰影,最終將陰影和背景分離。施樹明使用車底灰度值突變法進行圖像分割[13],其實驗結(jié)果表明,該方法的抗干擾性較差。均值方差差值法根據(jù)無障礙物路面區(qū)域內(nèi)像素點的灰度值符合正態(tài)分布的特點,利用其統(tǒng)計參數(shù)確定路面灰度閾值。顧柏園使用樣本區(qū)間灰度值特性結(jié)合矩形掃描窗口的方法進行車底陰影區(qū)域分割[14],在前方遠距離有陰影且近距離無陰影的情況下,利用該方法進行車底陰影的分割具有一定的局限性。
車輛外框檢測在完成車輛底部陰影識別的前提下進行,劉直芳將最大連通區(qū)域左右邊界作為車輛左右邊框[15]。但此方法易受光線影響,魯棒性較差。本文采用譚華春的方法[16],通過車輛的邊緣特征進行車輛定位,相對更加精確。
基于上述分析,本文提出了一種基于自適應(yīng)掃描區(qū)域的發(fā)散式掃描方式的分段區(qū)域閾值計算方法進行車輛底部的陰影識別,然后根據(jù)車輛的邊緣特征進行車輛的邊框檢測。該算法可以有效減少計算量及復(fù)雜環(huán)境的干擾,提高車輛檢測的實時性及魯棒性,分割效果較好。
1 發(fā)散式掃描原理
由于本車車道和相鄰兩個車道的車輛會影響本車的行車安全,因此將這三個車道區(qū)域視為危險區(qū)域,即如圖1中由點D'-P3-P2-C'-K'圍成的區(qū)域。
1.1 自適應(yīng)掃描區(qū)域
從圖1可以看出,危險區(qū)域確定的關(guān)鍵點是找到K'點。本算法使用的是自適應(yīng)的道路消失點K'點。通過HOUGH變換確定當(dāng)前車道近距離的車道線A'A"以及B'B"[17] ,并將其延長,交點即為道路消失點K'。
在坐標(biāo)系下,確定當(dāng)前車道寬后,即可確定相鄰兩條車道的寬度[18]。因此可以根據(jù)改進的逆投影變換求出圖像中的車道線K'D',K'C'[19]。最終確定本算法的掃描區(qū)域為由點D'-P3-P2-C'-K'所圍區(qū)域,如圖1所示。
1.2 發(fā)散式掃描原理
根據(jù)圖像“遠小近大”的透視原理,本節(jié)提出了一種對掃描區(qū)域進行發(fā)散式像素掃描的方法。對比傳統(tǒng)以整幅圖像或地平線作為分界線的部分圖像掃描方法[1],該方法可有效減少掃描像素點的數(shù)量,降低外界環(huán)境對提取車底陰影信息的干擾。實驗表明,相鄰兩條掃描線之間的角度θ為5°時,可取得較好的識別效果。掃描方法示意圖如圖2所示,掃描結(jié)果如圖3所示,本文實驗參數(shù)見表1所列。
2 自適應(yīng)閾值計算原理
傳統(tǒng)的閾值計算方法是對整個掃描區(qū)域進行逐點掃描,從而獲得對應(yīng)點的灰度值,并最終得到全局閾值[1]。此方法雖然可以獲取最大量數(shù)據(jù)進行閾值評估,但其實時性、魯棒性較差??紤]到車底陰影灰度特性與較暗的路面,樹木的陰影等相對接近,以及由于光線造成的遠近車底陰影灰度值存在差異等問題,本小節(jié)基于發(fā)散式掃描原理,以分區(qū)域矩形遍歷窗口的方式對像素點的灰度值進行自適應(yīng)閾值計算。
2.1 區(qū)域劃分
本節(jié)提出采用分區(qū)域的自適應(yīng)閾值分割方法,有針對性的完成車底陰影區(qū)域的提取。根據(jù)圖象透視原理,隨著前方車輛與本車的相對距離增大,前方車底陰影面積逐漸減小。據(jù)此特點,本文將掃描區(qū)劃分為3個縱向高度相等的子區(qū)域Area1~Area3,如圖4所示,并針對不同的子區(qū)域,以不同的矩形掃描窗口進行閾值計算。以1.6 m寬的普通家庭小轎車車底陰影為例,將每個子區(qū)域中面積最小的矩形作為各子區(qū)域的遍歷窗口,如圖4中的S1~S3所示。
2.2 分區(qū)域閾值計算
分區(qū)域閾值計算的原理為Areai(i=1~3)的閾值由各自區(qū)域內(nèi)灰度均值最小的矩形掃描窗口來決定,即:
式中,i=1~3;Thi為Areai區(qū)域的閾值;Mi為Areai區(qū)域矩形掃描窗口的最小灰度均值;Mvi為Areai區(qū)域最小灰度均值對應(yīng)矩形掃描窗口的均值方差;G為對應(yīng)坐標(biāo)像素點的灰度值;(ui, vi)為Areai區(qū)域掃描像素點坐標(biāo);(uMi, vMi)為Areai區(qū)域最小均值矩形窗口所對應(yīng)的掃描點坐標(biāo);Δu、Δv分別為矩形掃描窗口內(nèi)像素點距其左上角像素點的橫、縱距離。
通過大量實驗并結(jié)合色彩透視原理可以得出結(jié)論:近距離車底陰影灰度值低于遠距離車底陰影灰度值。針對這一特性,為減小誤判現(xiàn)象,本文對三個區(qū)域的閾值做以下處理:
式中,Th1,Th'2,Th'3分別為區(qū)域Area1~Area3的最終閾值。此方法能夠較好地完成掃描區(qū)域任一子區(qū)域中在沒有車輛情況下的圖像分割,分割效果更好。
3 車輛識別
車輛外框的檢測對安全行駛而言具有重要意義。當(dāng)前方有大型車輛行駛時,有利于駕駛員提高警惕。車輛的下邊界即車底陰影下邊界,可由文中所述方法確定。
3.1 車輛下邊界檢測
利用文章所述方法與閾值進行圖像分割,會使分割所得的二值圖內(nèi)部出現(xiàn)空穴,不利于車底陰影信息的提取。因此本文采用空穴填充的方法完成對二值圖像的預(yù)處理[14]。經(jīng)實驗發(fā)現(xiàn),車輛底部陰影通常為接近矩形的連通區(qū)域。對連通區(qū)域進行矩形度計算,需將連通區(qū)域進行標(biāo)記。為確保每塊標(biāo)記區(qū)域包含一輛車的車底陰影,本文將對每塊連通區(qū)域做以下操作,以圖5為例。
(1)確定陰影區(qū)域外接矩形四角g1~g4坐標(biāo);
(2)判斷矩形g1~g4的寬度是否大于1.2W'1,若是,則執(zhí)行步驟(3),若不是,則分離結(jié)束;
(3)找出非車底陰影區(qū)域,且其外接矩形兩條邊需與區(qū)域g1~g4重合,如圖中的矩形邊g4g5,g4g6;
(4)判斷區(qū)域g4~g7矩形度是否大于0.7(此數(shù)據(jù)由實驗所得),且矩形寬度是否大于0.2W'1,若同時滿足則執(zhí)行(5),若存在一個不滿足,則分離結(jié)束;
(5)以直線g6g7的延長線g6g8為分割線將區(qū)域g1~g4分割為g1-g4-g6-g8區(qū)域和g2-g3-g6-g8區(qū)域,并對兩個區(qū)域重新標(biāo)記。其中,W'1為路面坐標(biāo)系下1.6 m車輛寬度,對應(yīng)圖像坐標(biāo)系下的像素寬度。
經(jīng)上述預(yù)處理,分析圖5可知,車底陰影區(qū)域通常為不完整的矩形。同時,路面坐標(biāo)系下車輛尾部的寬度范圍為1.6~2.5 m。分析上述車底陰影候選區(qū)域Ci(i=1,2,3...),為減少計算量,便于進行Ci檢測,本文將車底陰影候選區(qū)域按照其左下角的坐標(biāo),從下到上進行排序,若存在若干個車底陰影候選區(qū)域左下角縱坐標(biāo)相等,則從左到右排序。按照i增大方向?qū)i進行檢測,車底陰影檢測流程圖如圖6所示。其中,W'2為路面坐標(biāo)系下2.5 m車輛寬度,對應(yīng)圖像坐標(biāo)系下的像素寬度。
通過上述分析可求得圖像中車底陰影的位置,車底陰影下邊緣即為車輛外框下邊界。
3.2 車輛左右邊界確定
本文采用Log邊緣檢測算子進行邊緣提取[20],Log邊緣檢測算子采用基于二階導(dǎo)數(shù)過零點的邊緣檢測方法,因此其能提取出較完整連續(xù)的邊緣。
垂直邊緣提取如圖7所示。
在圖像的垂直邊緣圖中,車輛的左右邊界垂直邊緣比較突出。因此可利用這一特點進行車輛的左右位置定位[14]。公式如下:
其中,Ul,Ur為計算所得車輛左右位置,EC(u,v)為垂直邊緣,C(u)為垂直邊緣在垂直方向的累加和,Vd為車輛陰影底邊界,UVl,UVr為陰影左右邊界,H=UVl-UVr為陰影寬度。
3.3 車輛上邊界確定
在已經(jīng)確認的左右邊界內(nèi),對其垂直邊緣與水平邊緣進行水平投影,利用車輛的水平邊緣信息進行上邊界確認[14]。方法如下:
(1)對左右側(cè)垂直邊緣進行水平投影(Δx=2)
(2)若Hl(v)=0,(v=Vd+H),則由此位置向下尋找vl,滿足Hl(vl)>0的同時Hl(vl+1)=0,否則由此位置向上尋找vl,滿足Hl(vl)>0的同時Hl(vl+1)=0,采用同樣的方法尋找Vr。
(3)取vmax=max(vl,vr);
(4)對水平邊緣水平投影,得:
(5)尋找水平投影最大值Hmax,在vmax≤v≤Vd+1.5 V范圍內(nèi)找出vt,使得H(vt)≥(1/2)Hmax,停止搜索,vt即為車輛邊界。
Eh(u,v)為水平邊緣。根據(jù)上述方法進行車輛定位,結(jié)果如圖8所示(圖中直線為邊界定位結(jié)果)。
根據(jù)車輛邊框的下邊界,通過改進的逆投影變換求出在路面坐標(biāo)系下[19],本車與前方車輛之間的相對距離。
4 實驗結(jié)果及分析
本文實驗平臺為Matlab 2014a。實驗視頻來自2015年9月17日下午行車記錄儀錄取的江蘇省海門市人民西路路段、解放東路路段、解放路路段和秀山路路段視頻。
為了能夠更加直觀的體現(xiàn)出本文算法的準(zhǔn)確性,文章列出了簡單工況與復(fù)雜工況視頻的統(tǒng)計結(jié)果,如表2,表3所列。從表2和表3中可以看出,無論是簡單工況還是復(fù)雜工況,當(dāng)前車道的車輛識別正確率都可以達到99%以上,處于左、右兩同向車道車輛的識別正確率有所下降,但也可以達到92%。這主要與當(dāng)前車道的車輛處于攝像頭正前方,可以最大程度采集車底陰影數(shù)據(jù)有關(guān)。由于左、右同向車道的車輛處于攝像頭的左、右側(cè)方向,因此其呈現(xiàn)在圖像中車輛底部陰影區(qū)域相對于正前方的車底陰影區(qū)域會有一定程度的變形,導(dǎo)致識別正確率下降。在表3中,左側(cè)逆向車道的車輛識別正確率明顯低于同向車道,只有76.42%。導(dǎo)致這一現(xiàn)象的主要原因是本文識別的是車尾部分的底部陰影,但逆向車道的車輛識別只能識別車頭部分的底部陰影,與本文算法沖突。因此,本文算法在左側(cè)逆向車道的車底陰影識別方面有待加強。
圖9所示為實驗結(jié)果視頻中隨機截取的8張圖片。從圖中可以看出,在簡單背景環(huán)境下可以準(zhǔn)確識別出車輛外框,但在背景有陰影或光線較弱的情況下車輛外框識別效果較差。這主要與光線會對邊緣檢測造成影響有關(guān),因此,本文算法在復(fù)雜工況下的車輛外框識別方面仍有待加強。
5 結(jié) 語
本文提出了一種基于自適應(yīng)掃描區(qū)域采用發(fā)散式掃描原理的自適應(yīng)閾值算法,結(jié)合車輛邊緣特征進行車輛的邊框以及車距檢測。大量實驗驗證表明:
(1)提出的基于自適應(yīng)掃描區(qū)域的發(fā)散式掃描原理,不僅可以減小周圍環(huán)境對車輛識別的干擾,還能夠采集到有效的像素信息,可較好提高車輛識別的實時性;
(2)提出的分段式自適應(yīng)閾值計算方法,通過將掃描區(qū)域分成三個部分,利用不同大小的矩形遍歷窗口,完成圖像閾值分割計算,由此大幅提高算法對光線明暗和道路陰影等干擾的自適應(yīng)性。
(3)根據(jù)車輛邊緣特征進行車輛邊框定位,可以完成簡單工況下的車輛邊框檢測。
未來需要開展的工作分為如下幾項:
(1)進一步提高車輛邊框檢測的魯棒性;
(2)對識別的車間距離與實際距離進行標(biāo)定,驗證其準(zhǔn)確性;
(3)進一步提高該算法的實時性,并將其應(yīng)用于DSP嵌入式系統(tǒng)進行驗證。
參考文獻
[1]佟卓遠.基于機器視覺的前方車輛檢測與測距系統(tǒng)設(shè)計[D].哈爾濱:哈爾濱工業(yè)大學(xué),2015.
[2] Liu W, Song C, Wen X, et al. A Monocular-vision Rear Vehicle Detection Algorithm[C].IEEE International Conference on Vehicular Electronics and Safety,2007:1-6.
[3] Sun Z, Miller R, Bebis G, et al. A Real-time Precrash Vehicle Detection System[C].IEEE Workshop on Applications of Computer Vision. IEEE Computer Society, 2002:171.
[4]趙日成.基于車底陰影的車前障礙物檢測[J].電子科技,2015,28 (3):15-18.
[5]王海濤.車前障礙物檢測及車道線識別研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2013.
[6] Einhorn E, Ter C, HM Gross.Attention-driven Monocular Scene Reconstruction for Obstacle Detection, Robot Navigation and Map Building[M].Racism and political action in Britain/ Routledge & Kegan Paul, 1979:296-309.
[7]沈潔.基于圖像的前方車輛檢測[D].南京:南京理工大學(xué),2011.
[8]周士杰.基于單目視頻流的前方車輛檢測算法研究[D].杭州:杭州電子科技大學(xué),2015.
[9] Buchman G. On Road Vehicle Detection using Shadows[Z]. Wiki.grasp.upenn.edu, 2013.
[10]陽樹洪.灰度圖像閾值分割的自適應(yīng)和快速算法研究[D].重慶:重慶大學(xué),2014.
[11] Kim G, Cho J S. Vision-based Vehicle Detection and Inter-vehicle Distance Estimation[C].International Conference on Control, Automation and Systems. IEEE, 2012:625-629.
[12] Martel-Brisson N, Zaccarin A. Moving Cast Shadow Detection from a Gaussian Mixture Shadow Model[C].IEEE Computer Society Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2005:643-648.
[13]施樹明,儲江偉,李斌,等.基于單目視覺的前方車輛探測方法[J].農(nóng)業(yè)機械學(xué)報,2004,35(4):5-8.
[14]顧柏園.基于單目視覺的安全車距預(yù)警系統(tǒng)研究[D].長春:吉林大學(xué),2006.
[15]劉直芳,游志勝,張繼平,等.利用人眼感知視覺模型的車型動態(tài)定位[J].控制與決策,2003,18(5):619-622.
[16]譚華春,周洋,李克強,等.基于車尾部特征的對車輛的視覺精確定位[J].汽車安全與節(jié)能學(xué)報, 2016, 7(3):285-290.
[17]王賽,徐伯慶,蘇棟騏.Hough變換的車道線并行檢測[J].電子科技,2015,28(12):96-99.
[18] GB5768.3-2009.道路交通標(biāo)志和標(biāo)線第3部分:道路交通標(biāo)線[S].北京:中國標(biāo)準(zhǔn)出版社,2009:6-8.
[19]馬瑩.基于計算機視覺的車道保持系統(tǒng)研究[D].北京:清華大學(xué),2005.
[20]趙景秀,韓君君,王菁,等.一種改進的LoG圖像邊緣檢測方法[J].計算技術(shù)與自動化,2009,28(3):74-77.