駱濟煥,蘭鳳崇,陳吉清
(華南理工大學 機械與汽車工程學院 廣東省汽車工程重點實驗室,廣州 510640)
車道線檢測技術實現的精準程度在汽車駕駛輔助系統中尤其重要,直接決定了預警系統的及時性和準確性。智能輔助駕駛汽車在環境感知方面主要采用攝像頭、激光、雷達等傳感器以及GPS定位導航系統進行切換和結合的方案[1]。基于單目視覺的車道線檢測技術不僅實用性好并且成本低,在智能交通、智能駕駛輔助系統、機器人等領域都有著廣泛的應用前景[2]。
智能輔助駕駛中車道線檢測方法主要是使用單目視覺實時獲取前方道路的信息并對其進行處理和檢測[3]。近年來,較多的研究人員采用Hough變換[4]、神經網絡[5]和基于變形模版[6]等方法來識別車道線。但在實際駕駛中,它們都不同程度地受到了魯棒性和抗干擾能力不足的制約。傳統的Hough變換算法指的是通過識別圖像中最符合車道特征的直線[7],從而對其進行標定。此算法的優點在于能夠較好地檢測出車道線的邊界點,但也存在計算量大、檢測精度不夠高、多峰值檢測、受噪聲干擾嚴重等問題。對此,很多學者提出了改進的方法[8-10],FARDI等[11]提出了使用Hough變換從圖像中分布的邊緣點提取直線等。可是這些方法旨在減少計算量,并沒有考慮在Hough變換前,對要變換的目標進行適當的前處理,并將其它算法結合起來改進Hough變換法,以便解決其問題。
因此,通過道路圖像前處理算法先對目標進行預處理來解決檢測速度慢和受噪聲干擾等問題,并結合TCR算法來縮小檢測范圍,從而改進Hough變換法,避免多峰值檢測并提高車道線的檢測精度。最后結合自主搭建的汽車試驗平臺和軟件平臺,在直道和彎道行駛情況下進行車道線檢測試驗,驗證本文的車道線檢測算法在弱光照和強光照條件下也具有較強的魯棒性和實用性。
在城市道路中,通過單目視覺采集到的視頻會受到背景環境(包括路邊樹木、建筑物和前方車輛等)和太陽光等因素的影響。對視頻中的道路圖像進行前處理,可以去除圖像中的雜質,更好地提取出車道線。本研究提出的實用性較好的道路圖像前處理算法流程如圖1所示。

圖1 道路圖像前處理算法流程
彩色圖像灰度化對彩色圖像進行降維處理即M*N*3變為M*N,加快后續算法處理速度和效率。綜合考慮算法的實用性和合理性,選取加權平均法。根據圖像的特征,將彩色道路圖像轉化前紅(R)、綠(G)、藍(B)三種顏色按照其權重關系ωG>ωR>ωB來計算轉化后的值。

式中:R (i,j) ,G (i,j) ,B(i,j)分別為像素點對應R,G,B的數值大小。
圖2為直道行駛和彎道行駛的加權平均法灰度化的效果圖。可知,對圖像進行降維處理的同時也完好地保留了車道線的輪廓,符合車道線檢測的要求。

圖2 彩色道路圖像灰度化
為了有效地避免道路圖像中雜質的干擾,并且盡可能多地保留需要提取的車道線輪廓,采取中值濾波[12]來濾除噪聲,其在消除噪聲方面有特別好的效果,特別是消除城市環境下最容易出現的椒鹽噪聲。假設在某鄰域內有一組像素序列按大小x1<x2<x3<···<xn進行排列,則該像素序列的中值y為:

為了避免窗口大小對濾波效果的直接影響,優先選取3×3的濾波窗口對灰度化道路圖像進行改進的中值濾波處理,步驟如下:
(1)假設3×3的窗口沿著列方向進行濾波,最左側一列像素的灰度值分別為y01、y02、y03,即將進入的一列像素的灰度值分別為yn1、yn2、yn3。
(2)判斷等式y01=yn1&&y02=yn2&&y03=yn3是否成立。等式成立則輸出原中值,等式不成立則取新值。
(3)對新的3×3窗口里的像素系列重新進行排列,由式(2)得到新的中值yn。
(4)按照上述步驟將3×3窗口移遍整個圖像,若是噪聲則取中值y,若是信號則不進行處理。
傳統的Canny算法是人為選取高閾值和低閾值,從而會使邊緣和偽邊緣之間的識別存在矛盾,不同道路圖像之間也不具有自適應性,滿足不了復雜的道路情況。為了解決這一矛盾,結合最大類間方差法[13](OTSU法)來得到最優閾值,從而自適應地提取出圖像的高低閾值。為了準確分割背景環境和車道線,應用OTSU法來獲取圖像的最優閾值,提取出二值化的車道線。假設分割閾值T把圖像的灰度值分成兩組C0和C1,P(i)為i點灰度值大小,C0和C1出現的總概率為ω0和ω1,則:

設μ0和μ1分別是兩組灰度值相對應的平均值,圖像全部像素點的平均值μ1為:

組間方差為:

不同的分割閾值T會產生不同的組間方差,OTSU法最終選取的分割閾值是能夠使組間方差達到最大值的Tmax。按照下式對圖像進行二值處理。

OTSU法進一步減少了背景環境區域干擾和噪聲信號,使車道線和背景區域分離開,為車道線的邊緣提取提供支持,效果如圖3所示。

圖3 OTSU分割法
在數字圖像領域,對于車道線檢測而言,其顏色值與周圍路面環境信息相差較大,其邊界點可以利用邊緣檢測來獲取。目前邊緣檢測算子有Roberts算子、Prewitt算子、Sobel算子和Canny算法等[14]。將OTSU法和目前使用最廣泛并且理論最為完善的Canny邊緣檢測算法結合起來,使OTSU法確定的最優閾值等于傳統Canny算法中的高閾值。綜合考慮不同車道線的閾值大小,令高閾值等于低閾值的2倍,從而求出低閾值[15]。處理效果如圖4所示。

圖4 Canny算子邊緣提取
由圖可知,道路圖像前處理算法突出了車道線信息,使處理后的圖像或者視頻能夠更好地輔助后續車道線檢測算法的實現。
為了在車道線檢測時對目標范圍進行約束,提高檢測精度和準度,采用了TCR算法。先通過目標區域劃分和極角極徑約束縮小車道線檢測范圍,然后分別運用算子[1 0 -1]和[ -1 0 1]對車道左右雙線進行邊緣疊加處理,改進Hough變換算法在直道和彎道行駛下的車道線檢測精度,最后在新的TCR下進行車道線跟蹤,從而得到一套魯棒性較強的車道線檢測算法。
汽車正常行駛條件下,車載攝像頭獲取的前方道路視頻中,車道線信息的道路區域一般位于下半部分,位于上半部分的天空區域則無需進行處理。根據車載攝像頭安裝的位置和角度,近似地把車道線和天空的分界線定為圖像總行數Height的2/3處(從上往下),并且考慮較小的估計誤差增量ε,則天空區域和目標區域的分割線高度為:

對于本研究的240×360的圖像而言,確定這360列中標記的最大行數為80,其中ε可取1到5,將最后得到的行數80+ε標記為目標區域的上界。劃分目標區域上界后,避免了背景環境的干擾并提高了檢測的準確度。

圖5 劃分目標區域
Hough變換是將圖像空間變換到參數空間,通過尋找峰值來實現目標檢測,在車道線邊緣點檢測上應用廣泛[16]。設直線l的極坐標方程為:

式中:ρ為原點到直線l的距離,最大值為對角線長度;θ為直線l的法線與x軸正方向的夾角,取值范圍為 [-90°,+90°]。
實際情況下,左右車道線分別分布在道路圖像的兩邊。通過對采集到的大量道路圖像樣本進行計算分析,得到左、右車道線的目標約束范圍,則左、右車道線極角θ1,θr的約束范圍和極徑ρ1,ρr的約束范圍分別為:

圖6中的圖像坐標系取圖像左上角為坐標原點o,i軸為圖像的角度增加方向,j軸為圖像位移增加方向。

圖6 極角極徑法示意圖
在滿足TCR的目標區域劃分和極角極徑法約束的條件下檢測車道線,有效地避免了噪聲點、路邊樹木和建筑等障礙物的干擾,減少了Hough變換要處理的區域并提高了系統的檢測速度。改進后的Hough變換檢測區域為直線a和直線b圍成的區域加上直線c和直線d圍成的區域之和,再減去上方的三角形重疊區域S,如圖7所示。

圖7 TCR下的Hough變換檢測區域
車輛在道路上正常行駛時,一般位于道路的正中間,而車道線則位于車輛的兩側。對車道線進行邊緣檢測后,1條車道線會有左右兩條邊界線,兩條車道線則意味著有4條邊界線,分別為L1、L2、L3、L4,如圖7所示。對道路圖像進行整體檢測,檢測出來的車道線就有=6種情況。在實際中,只需要把左右車道線的內側邊緣L2和L3檢測出來。
為了準確地檢測出車道線,以中軸為基準,把檢測區域分為左右兩部分,分別進行邊緣處理。在左區域,運用掩模算子[1 0 -1]對左邊的兩條車道線進行濾波疊加處理,最終得到邊界線L2。同理,運用算子[-1 0 1]對右區域進行車道線邊緣疊加處理,得到邊界線L3。
由于車載攝像頭采集道路圖像的速度較快,相鄰兩幀圖像的車道線位置偏差不大,所以車道邊緣點的位置具有一定的可預測性。通過分析采集到大量道路圖像,連續兩幀道路圖像中車道線的傾斜角度變化在± 5°內,截距變化在± 15個像素內。因此,本研究以檢測到的車道線參數為基礎,建立下一幀道路圖像的新檢測范圍TCR,如圖8所示。

圖8 新的TCR區域

式中:kl,kr分別為上一幀左右車道線的斜率;bl,br分別為上一幀左右車道線的截距;Δb,Δk分別為兩幀圖像車道線參數的變化量;kl-up,kl-down,bl-up,bl-down分別為當前幀左車道線TCR的斜率和截距;kr-up,kl-down,br-up,br-down分別為當前幀右車道線TCR的斜率和截距。
在進行車道線跟蹤檢測時,在新TCR下將常坐標系下的(k,b)參數轉換為極坐標系下的(ρ,θ)參數,然后在新TCR內進行疊加處理,最后進行Hough變換,進一步減少了非車道線邊緣點的干擾,提高了車道檢測的實時性。采用基于新TCR下的Hough變換后車道線參數波動減少,增加了直線檢測的穩定性,提高了檢測精度。
在自主搭建的汽車試驗平臺上,完成了視頻的錄制并對有代表性的視頻進行了仿真測試和結果分析,進一步驗證本文研究的車道線檢測算法的魯棒性。車道線檢測總流程如圖9所示。
自主搭建的汽車試驗平臺使用了廣汽本田的一款1.5 L自動豪華版(2008款)飛度汽車。針對車載攝像頭的安裝要求,試驗選取的單目視覺硬件是銳爾威視-USB攝像頭。銳爾威視-USB攝像頭通過USB數據線與檢測計算機相連接,如圖10所示。

圖9 車道線檢測流程圖

圖10 單目視覺車載系統
該攝像頭體積小,安裝在車內頂部的正中間位置,不會影響駕駛員的視線。為了使其固定方便且抗震性好,采取了相應的固定措施。攝像頭的角度0 ~45°任意可調,可以適應不同測試環境。為了更好地符合實際行駛情況并擴大前方視野的范圍,令攝像頭的中心光軸與水平線成α的俯角,α取15°~ 30°。
在軟件平臺方面,應用了Matlab 2016軟件,為試驗提供仿真分析。軟件平臺對車載攝像頭采集到的每一幀視頻信息進行處理和識別,提取并標記出車道線位置輪廓信息,可以在結果顯示欄內很直觀地看到仿真處理后的效果。
在試驗中,先利用USB攝像頭對視頻進行采集(攝像頭設置的分辨率為640×480,每秒25幀),然后傳輸到電腦進行保存,最后通過電腦對視頻進行試驗分析,算法主要分為道路圖像前處理和車道線檢測兩個模塊。
直接對道路圖像進行整體檢測,車道線的檢測標識會偏出了行駛車道的范圍,如圖11a所示。因為對道路圖像進行整體檢測,檢測出來的車道線有=6種不同的效果,圖11a顯示了其中1種不合理的檢測情況。直接對車道線進行整體檢測,不僅增加了算法的隨機性,而且檢測的精準度也不高。為了準確地檢測出車道線,采用基于TCR的Hough變換法對車道線進行檢測,效果如圖11b所示。

圖11 車道線檢測偏離和修正(直道情況)
改進的Hough變換檢測車道線,不僅修正了偏差即提高了檢測精度,而且增加了算法的嚴謹性,避免了誤檢或者檢測失敗的情況。彎道對比效果如圖12所示。

圖12 車道線檢測偏離和修正(彎道情況)
為了使車道線檢測算法更好地滿足復雜多變的道路環境,試驗特意選取了一段具有代表性的視頻,視頻中的道路情況包括上坡直道行駛、上坡彎道行駛、車輛前方和道路附近均有行人等。為了檢驗仿真測試的準確率,分別對直道行駛和彎道行駛情況進行5個周期的概率統計,每個周期有200幅圖像,一共1 000幅圖像。當檢測的車道線與實際車道線之間的傾斜角度變化在±2°內并且間距變化在±2個像素內,稱為檢測成功,否則稱為失敗;當檢測不出車道線時,稱為漏檢,結果見表1和表2。

表1 直道行駛檢測情況

表2 彎道行駛檢測情況
在直道和彎道行駛時,車道線檢測試驗仿真效果如圖13和圖14所示。

圖13 直道行駛時車道線檢測仿真效果圖

圖14 彎道行駛時車道線檢測仿真效果圖
最后還對廣州市區一段復雜路況的視頻進行了弱光照條件和強光照條件下的對比仿真試驗,如圖15所示。
在相對復雜的道路條件下,算法準確地檢測出了車道線,直道行駛情況檢測的平均準確率為93.8%,彎道行駛情況檢測的平均準確率為91.6%。廣州市區復雜路況下的仿真試驗進一步驗證了算法能排除弱光照和強光照的干擾,證明了其具有較強的魯棒性。


圖15 弱光條件和強光條件下車道線檢測情況
將道路圖像前處理算法和TCR結合,改進了Hough變換車道線檢測法,提高了單目視覺下車道線檢測算法的魯棒性,具體結論如下。
(1)針對Hough變換中檢測速度慢和受噪聲干擾嚴重的問題,設計出了一套較好的道路圖像前處理算法,算法通過結合加權平均法和改進的3×3中值濾波來去除噪聲的干擾,接著基于OTSU法確定最優閾值來進行二值化處理,進而運用Canny算子來提取車道線的邊緣。
(2)在單目視覺下,結合道路圖像前處理算法和TCR,通過目標區域劃分和極角極徑法較大程度地縮小車道線檢測區域。運用算子[1 0 -1]和[-1 0 1]對左、右車道線分別進行邊緣疊加處理,并在新的TCR下進行車道線跟蹤。改進的Hough變換法,避免了多峰值檢測并提高了車道線檢測精度,能夠在直道及彎道行駛時有效地檢測和跟蹤車道線。
(3)結合自主搭建的汽車試驗平臺和軟件平臺,對有代表性的視頻進行直道行駛和彎道行駛情況下的檢測試驗,其平均準確率分別為93.8%和91.6%。通過分析車道線檢測遇到的偏離問題,結合本研究提出的車道線檢測算法,解決了車道線檢測偏離問題,并且驗證了本研究提出的算法也能排除弱光照和強光照的干擾,對改進在單目視覺下的車道線檢測算法具有一定的實用價值。