辛 敏,羅 山
(攀枝花學(xué)院智能制造學(xué)院,四川 攀枝花 617000)
車道偏離報警系統(tǒng)[1]是無人駕駛的關(guān)鍵環(huán)節(jié)之一。車道線識別是通過檢測道路圖像特征點,從而定位車道線的位置。吳志軍等[2]提出基于Sobel和hough變換的車道線識別算法,給出了完整的車道線識別算法,對常用工況下的車道線圖像進行識別有較好的效果。但是,由于車道線在復(fù)雜的天氣變化和道路環(huán)境下會變得模糊不清,例如道路圖像在陰影、強弱光照、霧靄、雨天等條件下,車道線并不是清晰可見的,而車輛在此類環(huán)境道路上行駛比較常見[3],由此給車道線識別算法帶來挑戰(zhàn)。針對此類問題,本文在研究Hough變換的基礎(chǔ)上,提出改進的Hough變換車道線識別方法,通過實驗對比分析了算法改進前后的識別效果。
車道線識別主要是將采集的彩色道路圖像進行輸入識別檢測,最終識別出路面上的車道線。其中輸入為彩色道路圖像,輸出為標定的路面車道線,本文的系統(tǒng)設(shè)計流程如圖1所示。
圖1 車道線識別系統(tǒng)流程
受道路結(jié)構(gòu)的復(fù)雜程度的影響,采集到的圖像可能會含有許多因素的干擾,例如噪聲、樹木遮擋、光照強度不均勻、車道線磨損等干擾,都會影響車道線邊緣檢測和車道線識別的實時性和精確性[4]。本文的圖像預(yù)處理包括三部分:目標區(qū)域劃分、圖像灰度化、圖像去噪。
圖像采集后需要進行目標區(qū)域的劃分,選擇目標對象所處區(qū)域作為感興趣的部分進行重點分析處理,其他區(qū)域予以忽略。由于攝像機安裝在車輛擋風(fēng)玻璃的正中央,因此采集到的圖像上部分包含了天空、周圍的樹木、前方車輛等道路上的信息,而圖像的下部分主要是道路車道線的信息,所以選擇感興趣區(qū)域為圖像的下部分,車道線的檢測只需在這一區(qū)域進行。
采集到的彩色道路圖像若不經(jīng)處理直接進行濾波去噪,會增加計算量和內(nèi)存使用量,導(dǎo)致程序無法運行或運行時間過長,通過圖像灰度化可以減少運算量。本文采用平均值方法將劃分的目標區(qū)域進行圖像灰度處理,即某點的像素值等于R、G、B三個分量的平均值。
由于采集道路圖像時容易受到周圍環(huán)境、復(fù)雜的道路情況和惡劣天氣狀況等因素的干擾,從而導(dǎo)致采集的圖像中存在噪聲干擾,即在圖像中表現(xiàn)形狀為像素塊和一些亮度較大且細小孤立的像素點[5]。這些噪聲干擾會影響車道線特征點的提取,從而影響車道線檢測和識別,導(dǎo)致車道線的定位不太精確。因此需要對圖像進行濾波去噪,抑制噪聲因素的干擾。
中值濾波[6]是非線性平滑濾波中的一種方法,它在平滑圖像的同時不會造成邊界的模糊,在抑制噪聲干擾的同時保持圖像中車道線特征的清晰,因此本文采用3×3模板的中值濾波器來進行圖像的濾波去噪,從而保證圖像細節(jié)不會失真。
為了將感興趣的區(qū)域與背景區(qū)域分開,需要對圖像進行二值化。圖像的二值化是將原始圖像像素點的灰度值設(shè)置為0或255,也就是將原始圖像變?yōu)楹诎讏D像,即通過對256個亮度等級的灰度圖像進行適當?shù)拈撝颠x取從而獲得仍然可以反映圖像局部和整體特征的二值圖像。因為Otsu閾值分割算法具有處理簡單、速度快的特點,因此本文采用Otsu方法進行圖像的二值化處理。
Hough變換的原理主要是將圖像空間中的參數(shù)直接映射到參數(shù)空間中,從而建立起圖像空間中的點和參數(shù)空間中直線的關(guān)系,然后將圖像空間中不能解決的問題轉(zhuǎn)移到參數(shù)空間中來解決[1]。本文的Hough變換采用極坐標來表示,極坐標方程表示為:
ρ=xcos(θ)+ysin(θ)
(1)
式(1)中,ρ表示該直線到原點的法線距離;θ表示法線與x軸的夾角。
因為待檢測的邊緣可能含有噪聲干擾,因此在隨機選擇待測邊緣的像素點時,選到虛假邊緣像素點的可能性很大,從而導(dǎo)致Hough變換對車道線檢測時的精確度不高,影響圖像處理后與模型的匹配程度。所以Hough變換采用類似于投票機制的形式來保證最后得到的檢測結(jié)果與實際的車道線最接近,該方法主要是通過對參數(shù)空間中每個不同的(θ,ρ)使用累加器來進行統(tǒng)計累加,然后將得到的(θ,ρ)最大統(tǒng)計量作為直線參數(shù)。
Hough變換算法對圖像的車道線進行識別時,計算量大且運行時間長從而導(dǎo)致車道線識別實時性不高,為此本文提出一種改進的Hough變換來識別圖像中的車道線,以減少算法的計算量,提高車道線識別的實時性。
設(shè)f(x,y)為二值圖像,則圖像邊緣點(x,y)的梯度的幅度值和方向角分別為:
(2)
式中,fx表示為x方向的梯度值;fy表示為y方向的梯度值;Δf(x,y)表示點(x,y)的幅度值;θ表示點(x,y)的方向角。由此可以看出先計算出二值圖像邊緣的梯度,從而獲得圖像邊緣像素點的方向角。假如Hough變換的角度分辨率為1°,則需要對每個可能取的θ值算出對應(yīng)的ρ值,那么圖像中每個邊緣點都要從分辨率為1°的360個θ中隨機選取并求出對應(yīng)的ρ,然后放入累加器進行累加計數(shù)。而改進的Hough變換算法主要是通過計算確定θ的取值,當圖像邊緣的θ確定后則只需計算一次ρ,從而實現(xiàn)算法運行速度的提高。
改進Hough變換是基于參數(shù)空間分塊的思想,也就是將參數(shù)空間劃分為均勻的累積區(qū)域,并對每個區(qū)域都加入一個累加器[7],當圖像空間中的點映射到參數(shù)空間形成曲線時,再對所得的曲線進行ρ和θ的量化處理。如果經(jīng)量化處理后的點落入不同區(qū)域時,需要對相應(yīng)區(qū)域的累加器進行累加增1計算,最后累加器數(shù)值最大的區(qū)域即為峰值區(qū)域。改進后的Hough變換車道線識別算法流程如圖2所示。
圖2 改進的Hough變換流程圖
具體算法步驟如下:
1) 依據(jù)所選圖像的尺寸大小選擇合適的和進行量化處理從而得到量化值,然后將參數(shù)空間分為u×v塊累積區(qū)域,每個累積區(qū)域的累加器用初始值為0的P(u,v)來表示。
2) 根據(jù)邊緣像素點(x,y)的θ求出ρ。
3) 在參數(shù)空間中,找到量化處理后ρ和θ所對應(yīng)的累積區(qū)域,并將該區(qū)域內(nèi)的累加器進行累加增1,即P(u,v)=P(u,v)+1。
4) 將2),3)步進行循環(huán),直到取遍圖像中所有的邊緣點,從累積區(qū)域中找出數(shù)值最大的累加器所對應(yīng)的參數(shù)。
為驗證改進算法的有效性,對上述Hough變換和改進后的Hough變換算法進行仿真實驗?;赑C平臺,使用MATLAB軟件進行算法的編程,將得到的實驗結(jié)果進行對比分析,驗證了改進后的Hough變換算法比基本Hough變換具有更強的實時性和精確性。結(jié)果如圖3所示。
圖3 Hough變換車道線識別對比
為進一步驗證改進算法的實時性和精確性,使用改進的Hough變換對不同的自然環(huán)境下道路圖像進行車道線識別。效果如圖4所示。
如圖4所示,圖(a)是在夜間的條件下進行的車道線識別,圖(b)是在霧天的惡劣天氣下進行的車道線識別,圖(c)是在樹木遮擋的情況下進行的車道線識別,可以看出在不同的環(huán)境下改進后的Hough變換算法對車道線的識別效果好,驗證了該算法擁有較高的實時性和精確性。
圖4 改進Hough變換在不同環(huán)境下的車道線識別
由于傳統(tǒng)的Hough變換算法存在計算量大和運行時間較長等缺點,但又有抗噪聲干擾能力強,魯棒性好等優(yōu)勢使其在車道線識別中應(yīng)用較廣。為確保所選算法的抗噪性能,同時也能提升算法的速度,減少算法運行時間,并提高車道線識別的實時性,本文提出一種改進的Hough變換車道線識別算法。通過對實驗結(jié)果對比分析,驗證了改進后的Hough變換算法具有更高的精確性和實時性,但該算法對道路中磨損嚴重的車道線識別效果較差。