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