胡延平,王乃漢,魏振亞,唐叩祝
(合肥工業(yè)大學(xué) 機(jī)械工程學(xué)院,合肥 230009)
隨著對(duì)汽車(chē)行駛安全性和駕駛舒適性要求的提高,汽車(chē)駕駛輔助系統(tǒng)越來(lái)越受到消費(fèi)者的重視和青睞。準(zhǔn)確地識(shí)別道路信息是成功開(kāi)發(fā)駕駛輔助系統(tǒng)的基礎(chǔ)。相對(duì)于直線車(chē)道,彎道車(chē)道線的識(shí)別難度大,汽車(chē)行駛在彎道中發(fā)生事故的概率也更高,調(diào)查數(shù)據(jù)顯示,9.31%的事故發(fā)生在轉(zhuǎn)彎路段[1]。因此,如何高效準(zhǔn)確地識(shí)別彎道車(chē)道線成為研究的重要課題之一。
早期的車(chē)道識(shí)別是通過(guò)多傳感器融合技術(shù)來(lái)探測(cè)車(chē)道線信息,但由于價(jià)格過(guò)高而被機(jī)器視覺(jué)技術(shù)所替代。目前機(jī)器視覺(jué)技術(shù)進(jìn)行車(chē)道識(shí)別的一般過(guò)程是通過(guò)圖像傳感器采集道路圖像,根據(jù)特征將車(chē)道線信息與其它圖像信息分離,通過(guò)車(chē)道識(shí)別算法分析數(shù)據(jù),最終得到車(chē)道線信息和車(chē)輛行駛情況。
目前常見(jiàn)的彎道識(shí)別算法有基于模型匹配的彎道識(shí)別和基于特征的彎道識(shí)別[2-9],基于模型匹配的彎道識(shí)別方法一般分3個(gè)步驟:建立車(chē)道模型、提取車(chē)道線像素點(diǎn)、根據(jù)車(chē)道模型擬合車(chē)道線。常用的模型有:直線模型、同心圓曲線模型、多項(xiàng)式模型(二次曲線和拋物線)、直線-拋物線模型等[10-11]。郭磊等[2]采用方向可調(diào)濾波器增強(qiáng)圖像信息后,利用Hough變換[12-13]及其變體[14-16]和二次曲線[17]擬合的方法來(lái)識(shí)別車(chē)道線。這種方法把圖像固定地分為遠(yuǎn)近視場(chǎng),對(duì)直線車(chē)道的適應(yīng)性比較好,但對(duì)不同曲率的彎道適應(yīng)性不強(qiáng),而且容易受外界因素的影響,如道路的狀況、陰影、光照條件等?;谔卣鞯膹澋雷R(shí)別方法不需要車(chē)道模型匹配,王寶鋒等[5]將直線和B樣條曲線用于車(chē)道線重構(gòu),較好地提取了車(chē)道線幾何特征,最終擬合出車(chē)道線。BORKAR等[6]和MCCALL等[7]利用逆透視變換(Inverse Perspective Mapping,IPM)將原始圖像全部轉(zhuǎn)化為俯視圖,并利用平行特性對(duì)車(chē)道線進(jìn)行提取。IPM的引入提高了車(chē)道線識(shí)別的精度,但是IPM運(yùn)算量大,處理效率較低。
為了提高彎道識(shí)別算法對(duì)車(chē)道線模型的適應(yīng)性和復(fù)雜車(chē)道環(huán)境的抗干擾性,本文提出一種基于卡方統(tǒng)計(jì)的彎道識(shí)別算法。通過(guò)對(duì)彎道圖像特征的分析,對(duì)彎道進(jìn)行前視模型設(shè)計(jì)和ROI劃分,結(jié)合卡方統(tǒng)計(jì)法得到檢測(cè)點(diǎn)與車(chē)道線中心線的對(duì)稱(chēng)關(guān)聯(lián)性概率。試驗(yàn)結(jié)果表明:卡方統(tǒng)計(jì)法能夠準(zhǔn)確高效地識(shí)別彎道和彎道方向,滿(mǎn)足汽車(chē)輔助駕駛系統(tǒng)識(shí)別的實(shí)時(shí)性和準(zhǔn)確性。
根據(jù)CJJ37—2012城市道路建設(shè)行業(yè)標(biāo)準(zhǔn),主干路的設(shè)計(jì)車(chē)速為40~60 km/h,車(chē)道寬度為3.75 m,車(chē)道線的寬度為0.15 m。圖1為彎道曲線變化角模型,彎道曲線A處到B處,彎道曲線變化角為θ,彎道B處到C處的彎道曲線變化角為Δθ,半徑為r。通常認(rèn)為,汽車(chē)平視距離近處16 m以?xún)?nèi)的可視為近視場(chǎng),近視場(chǎng)車(chē)道部分可用直線模型表示,超過(guò)16 m的則視為遠(yuǎn)視場(chǎng)彎道部分。所有的車(chē)道線都由平滑的曲線相連,而非折線。圖中僅作了左彎道的行駛模型,右彎道的情況與之同理。
圖1 彎道曲線變化角模型
本文提出的車(chē)道識(shí)別算法邏輯框圖如圖2所示。
圖2 車(chē)道識(shí)別算法邏輯框圖
卡方統(tǒng)計(jì)法能夠有效地檢測(cè)實(shí)際觀測(cè)值與理論推斷值之間的偏離程度,彎道與直道呈現(xiàn)在圖像上的區(qū)別為直道有明顯的對(duì)稱(chēng)趨勢(shì),彎道則沒(méi)有對(duì)稱(chēng)性。根據(jù)此原理,首先采集道路圖像,然后對(duì)圖像進(jìn)行預(yù)處理與ROI劃分,通過(guò)高斯濾波平滑和canny算子邊緣檢測(cè),篩選滿(mǎn)足道路邊緣特征的像素點(diǎn)并提取車(chē)道線中點(diǎn),再分割為多個(gè)連續(xù)的ROI,使用卡方統(tǒng)計(jì)法得到兩側(cè)車(chē)道線上各區(qū)域像素點(diǎn)的中心位置與實(shí)際車(chē)道中心的關(guān)聯(lián)性概率函數(shù),并利用關(guān)聯(lián)性概率函數(shù)和對(duì)稱(chēng)性來(lái)識(shí)別彎道。
考慮到車(chē)輛在行駛當(dāng)中所采集到的圖像是動(dòng)態(tài)變化的,且由于攝像頭的角度變化,易造成遠(yuǎn)視角車(chē)道的彎曲程度大于近視角車(chē)道。為保證卡方統(tǒng)計(jì)的對(duì)稱(chēng)關(guān)聯(lián)性概率的可靠性,需對(duì)彎道曲線變化角θ的變化范圍進(jìn)行計(jì)算。
為避免非車(chē)道區(qū)域圖像處理帶來(lái)的噪聲并提高效率,在圖像平滑濾波和邊緣檢測(cè)階段限定ROI,本文將ROI分為初幀檢測(cè)ROI和車(chē)道線識(shí)別成功時(shí)跟蹤ROI兩類(lèi)。當(dāng)上幀圖片未檢測(cè)出車(chē)道線時(shí),根據(jù)車(chē)輛行駛在車(chē)道上時(shí),左右側(cè)車(chē)道線出現(xiàn)在像素坐標(biāo)下的極限位置來(lái)劃分初始預(yù)處理ROI;當(dāng)上幀車(chē)道線檢測(cè)成功時(shí),根據(jù)消失點(diǎn)位置劃分預(yù)處理ROI。
預(yù)處理階段ROI左右側(cè)車(chē)道線極限位置如圖3所示,左側(cè)車(chē)道線極限位置為右側(cè)車(chē)道線處于像素坐標(biāo)系中央時(shí)對(duì)應(yīng)的位置,右側(cè)車(chē)道線極限位置為左側(cè)車(chē)道線處于像素坐標(biāo)系中央時(shí)對(duì)應(yīng)的位置。
圖3 預(yù)處理ROI劃分模型
像素坐標(biāo)下兩極限位置車(chē)道線方程如式(1)所示。
式中:φ為攝像機(jī)安裝俯角;H為攝像機(jī)安裝高度;dmax為左右側(cè)車(chē)道線極限位置與道路中心的距離,左側(cè)車(chē)道線取單個(gè)最大車(chē)道寬度負(fù)值,右側(cè)取單個(gè)最大車(chē)道寬度正值;(xvp,yvp)為消失點(diǎn)位置,初幀檢測(cè)時(shí)取為道路消失行和圖像左右側(cè)中間位置。ROI的上下位置被限定在消失線以下和車(chē)頭線以上,從而預(yù)處理ROI為圖3中黑線標(biāo)示區(qū)域。
在預(yù)處理ROI提取的基礎(chǔ)上,對(duì)此部分區(qū)域?qū)嵤﹫D像預(yù)處理,主要步驟包括高斯濾波平滑、canny算子邊緣檢測(cè)和篩選滿(mǎn)足道路邊緣特征的像素點(diǎn)以及車(chē)道線中點(diǎn)提取。
采用canny算子計(jì)算得到邊緣點(diǎn)處u方向梯度值。從圖3 像素坐標(biāo)系中可以看出,車(chē)道線的左側(cè)邊緣點(diǎn)梯度值應(yīng)滿(mǎn)足Gul>0,且右側(cè)邊緣點(diǎn)水平梯度值應(yīng)滿(mǎn)足Gur>0。根據(jù)此特征對(duì)預(yù)處理ROI邊緣點(diǎn)進(jìn)行方向性選擇,若Gul>0,將其灰度值設(shè)置為200,若Gur<0,則將其灰度值設(shè)置為100。邊緣點(diǎn)方向性篩選結(jié)果如圖4所示。
圖4 預(yù)處理ROI邊緣點(diǎn)方向篩選
為減少非車(chē)道線邊緣點(diǎn)的影響以準(zhǔn)確提取車(chē)道線像素點(diǎn),根據(jù)車(chē)道線寬度范圍提取車(chē)道線的中點(diǎn)。在逐行遍歷時(shí),首先判斷邊緣點(diǎn)的方向梯度值是否滿(mǎn)足,若滿(mǎn)足,則沿梯度方向繼續(xù)搜索方向梯度值Gur<0的邊緣點(diǎn)。若繼續(xù)搜索到的邊緣點(diǎn)滿(mǎn)足方向信息,則計(jì)算兩邊緣點(diǎn)在大地坐標(biāo)系下的坐標(biāo),邊緣點(diǎn)在大地坐標(biāo)系下的坐標(biāo)計(jì)算轉(zhuǎn)換公式如式(2)和式(3)所示。
式中:Z為大地坐標(biāo)系下的縱坐標(biāo);x為大地坐標(biāo)系下的橫坐標(biāo);fe為攝像機(jī)焦距。若滿(mǎn)足車(chē)道線寬度要求則將兩邊緣點(diǎn)的中點(diǎn)作為車(chē)道線中點(diǎn),并記錄下對(duì)應(yīng)的梯度值,為后面的消失點(diǎn)和直線檢測(cè)提供依據(jù)。否則,繼續(xù)遍歷邊緣點(diǎn)搜索滿(mǎn)足梯度方向的點(diǎn),并重復(fù)上述過(guò)程。最終提取的車(chē)道線中點(diǎn)如圖5所示,可以看出能夠準(zhǔn)確提取車(chē)道線中點(diǎn),并過(guò)濾了部分非車(chē)道線邊緣點(diǎn)。
圖5 車(chē)道線中點(diǎn)提取
由于車(chē)道線在行駛中為實(shí)時(shí)變化且連續(xù)平滑移動(dòng),具有連續(xù)性,所以設(shè)計(jì)動(dòng)態(tài)的ROI。前后連續(xù)的ROI區(qū)域?qū)τ谲?chē)道線的弧度檢測(cè)具有可延續(xù)性和預(yù)判性,并且在各個(gè)ROI區(qū)域的車(chē)道線上設(shè)置監(jiān)測(cè)像素點(diǎn)。
如圖6所示,將待檢測(cè)的監(jiān)測(cè)像素點(diǎn)的坐標(biāo)按照其區(qū)域位置分為n組。首先檢測(cè)出最近區(qū)域即區(qū)域1和區(qū)域2,區(qū)域1的左車(chē)道線上的監(jiān)測(cè)像素點(diǎn)為A,區(qū)域2的右車(chē)道線上的監(jiān)測(cè)像素點(diǎn)為B。計(jì)算出二者的中點(diǎn)坐標(biāo),然后中間車(chē)道線與之對(duì)比看是否在彎道曲線變化角θ的范圍之內(nèi)。再以區(qū)域1和區(qū)域2為起始監(jiān)測(cè)區(qū)域,繼續(xù)向上探測(cè)區(qū)域3和區(qū)域4。計(jì)算出中點(diǎn),分析是否在中間車(chē)道線彎道曲線變化角θ之內(nèi)。重復(fù)此步驟,循環(huán)至所有區(qū)域的監(jiān)控像素點(diǎn)都檢測(cè)結(jié)束為止。
為提高算法的魯棒性,避免因?yàn)閰^(qū)域和像素點(diǎn)的選擇而出現(xiàn)偏差,以及與車(chē)道線無(wú)關(guān)的圖像信息對(duì)車(chē)道線中點(diǎn)提取的干擾,如將圖像中的防護(hù)欄以及其它車(chē)道標(biāo)志線錯(cuò)認(rèn)為是車(chē)道線從而影響最終識(shí)別的結(jié)果,在此區(qū)域循環(huán)監(jiān)測(cè)算法中設(shè)置彎道曲線變化角θ。將θ的左右角度極限值設(shè)為θ1和θ2,在本文試驗(yàn)中,將θ1取為左彎道中左車(chē)道線最小偏離角度θmin,即θ1=θmin,而θ2取為右車(chē)道線最大偏離角度θmax,即θ2=θmax,所以θ的范圍為θ1<θ<θ2。
圖6 分割ROI區(qū)域并設(shè)置監(jiān)測(cè)像素點(diǎn)
通過(guò)卡方統(tǒng)計(jì)法自上而下檢測(cè)所有區(qū)域監(jiān)測(cè)像素點(diǎn)的中點(diǎn)與中間車(chē)道線的吻合度,從而識(shí)別出是否為彎道。
由圖6可得左右兩側(cè)的點(diǎn)坐標(biāo)依次為,(A1,B1),(A2,B2),(A3,B3),…,(An,Bn),檢測(cè)區(qū)域的中點(diǎn)坐標(biāo)分別為Z1(x1,y1),Z2(x2,y2),Z3(x3,y3),…,Zn(xn,yn)。
區(qū)域檢測(cè)線與中間車(chē)道線的交點(diǎn)坐標(biāo)依次為O1(x1,y1),O2(x2,y2),O3(x3,y3),…,On(xn,yn)。由于本文區(qū)域檢測(cè)線設(shè)置為水平平行,各個(gè)區(qū)域彼此連接,且選取的監(jiān)測(cè)像素點(diǎn)為種子點(diǎn)自下而上擴(kuò)散,所以可認(rèn)為其中點(diǎn)和交點(diǎn)在同一水平坐標(biāo),即縱坐標(biāo)相同:
為表述方便,以下將左右監(jiān)測(cè)像素點(diǎn)的中點(diǎn)集簡(jiǎn)稱(chēng)為中點(diǎn)集,區(qū)域線與中間車(chē)道線的交點(diǎn)集簡(jiǎn)稱(chēng)為交點(diǎn)集,利用卡方統(tǒng)計(jì)法來(lái)檢驗(yàn)所有中點(diǎn)集與交點(diǎn)集之間的關(guān)聯(lián)度。關(guān)聯(lián)程度需考慮偏差范圍θ的影響,所以將同一檢測(cè)線上中點(diǎn)與交點(diǎn)的關(guān)聯(lián)系數(shù)表示為:用yi表示實(shí)際觀察到的點(diǎn)頻率分布,表示期望的點(diǎn)頻率分布,具體實(shí)現(xiàn)算法如下[10]。
(1)設(shè)與第i組相鄰的相關(guān)聯(lián)系數(shù)的數(shù)值為ti與ti+1,計(jì)算第i組的期望頻率為:(2)第i組的觀測(cè)頻率
(4)由此獲得的中點(diǎn)集與交點(diǎn)集之間的關(guān)聯(lián)概率p為:
(5)以關(guān)聯(lián)概率為縱坐標(biāo),左右監(jiān)測(cè)像素點(diǎn)的中點(diǎn)橫坐標(biāo)相對(duì)于交點(diǎn)位置橫坐標(biāo)的變化情況作為橫坐標(biāo),得出關(guān)聯(lián)概率與監(jiān)測(cè)像素點(diǎn)間的函數(shù)圖。
(6)由關(guān)聯(lián)概率的圖像結(jié)果識(shí)別車(chē)道線。
根據(jù)中點(diǎn)集與交點(diǎn)集的偏離方向判斷彎道方向。這里的偏離方向是指相對(duì)位置,即將所有點(diǎn)集中的兩點(diǎn)橫坐標(biāo)累加,根據(jù)和的符號(hào)判定彎道的方向。
由2.4節(jié)得到左右兩側(cè)監(jiān)測(cè)像素點(diǎn)的中點(diǎn)坐標(biāo)依次為Z1(x1,y1),Z2(x2,y2),Z3(x3,y3),…,Zn(xn,yn);該區(qū)域檢測(cè)線與中間車(chē)道線的交點(diǎn)坐標(biāo)依次為O1(x1,y1),O2(x2,y2),O3(x3,y3),…,On(xn,yn)。分別計(jì)算每一點(diǎn)對(duì)應(yīng)的位置偏差,即由公式可知,D為所有點(diǎn)集偏差累加之和,所以可根據(jù)D的正負(fù)性判斷彎道的方向。判斷依據(jù)為:當(dāng)D>0時(shí)為左拐彎道;反之D<0 時(shí)為右拐彎道。
為驗(yàn)證本文算法的效果,在計(jì)算機(jī)上,利用VS2013配置Opencv2.4.9庫(kù)函數(shù),對(duì)車(chē)載圖像傳感器采集的城市車(chē)道圖像進(jìn)行試驗(yàn)驗(yàn)證,圖7為試驗(yàn)平臺(tái)搭建示意圖。
圖7 車(chē)道識(shí)別試驗(yàn)平臺(tái)
圖8是卡方檢測(cè)算法在識(shí)別直線車(chē)道到彎道車(chē)道過(guò)程中中點(diǎn)集與交點(diǎn)集之間的關(guān)聯(lián)性概率。由圖8a可知,關(guān)聯(lián)概率幾乎為1,說(shuō)明左右兩側(cè)車(chē)道線的像素點(diǎn)中點(diǎn)線與中間車(chē)道線基本重合,即車(chē)道是直道。由圖8b可知,概率從1下降到0再上升到1,這期間圖線平緩變化,說(shuō)明是從直道駛?cè)霃澋涝俚街钡赖男旭傔^(guò)程。
圖8 卡方檢測(cè)識(shí)別中點(diǎn)集與交點(diǎn)集的關(guān)聯(lián)概率
試驗(yàn)結(jié)果表明,在車(chē)輛由直道行駛到彎道的變化過(guò)程中,該算法能夠較準(zhǔn)確地進(jìn)行識(shí)別判斷,算法的識(shí)別速度平均耗時(shí)為40.36 ms/幀。圖9為不同試驗(yàn)路段檢測(cè)結(jié)果,表1為不同算法對(duì)彎道識(shí)別的速度和準(zhǔn)確率對(duì)比。由表1可知,該算法在耗時(shí)和準(zhǔn)確率方面能夠略占優(yōu)勢(shì),且滿(mǎn)足駕駛輔助系統(tǒng)對(duì)實(shí)時(shí)性的要求。
圖9 不同試驗(yàn)路段測(cè)試結(jié)果
表1 不同彎道識(shí)別算法的耗時(shí)與準(zhǔn)確率
(1)本文在傳統(tǒng)彎道識(shí)別算法的基礎(chǔ)上提出一種以卡方統(tǒng)計(jì)來(lái)檢測(cè)彎道的算法。該算法在對(duì)車(chē)道圖像預(yù)處理的基礎(chǔ)上,利用邊緣檢測(cè)與車(chē)道線寬度信息快速篩選出有效的車(chē)道線特征點(diǎn),利用動(dòng)態(tài)劃分ROI的方法分割多個(gè)區(qū)域并設(shè)置監(jiān)測(cè)像素點(diǎn)和彎道曲線變化角,有效降低了非車(chē)道線部分對(duì)檢測(cè)的干擾,進(jìn)一步保證了算法的有效性。
(2)根據(jù)彎道左右車(chē)道線中點(diǎn)坐標(biāo)與區(qū)域中心線重合度低的特點(diǎn),利用卡方統(tǒng)計(jì)法檢測(cè)像素中點(diǎn)集與交點(diǎn)集的關(guān)聯(lián)性概率,關(guān)聯(lián)度高即為直道,否則即為彎道。彎道方向通過(guò)累加中點(diǎn)集與交點(diǎn)集的偏差之和符號(hào)進(jìn)行判斷,正即為左彎道,負(fù)即為右彎道。
(3)試驗(yàn)結(jié)果表明,本文提出的算法在不同的試驗(yàn)路段具有較強(qiáng)的魯棒性和準(zhǔn)確性,算法的識(shí)別速度為平均耗時(shí)40.36 ms/幀,滿(mǎn)足輔助駕駛系統(tǒng)的識(shí)別要求。