張德俊 龔元明
(上海工程技術大學機械與汽車工程學院 上海 201620)
車道偏離預警系統LDWS(Lane Departure Warning System)是高級駕駛輔助系統ADAS(Ad?vanced Driving Assistant System)中的重要組成部分,該系統通過機器視覺的方式采集車輛及道路信息,信息經過處理之后,如果系統判斷有風險存在,會提前將有害信息提供給駕駛員,駕駛員可以及時對可能發生的狀況和危險作出反應。能夠有效避免因車道偏離而引發的交通事故,保證駕駛員的人身安全。
車道偏離預警系統中首先要對路面信息進行采集,然后通過不同的方法對道路圖像進行處理,最終得到車道線的位置,根據不同的車道偏離預警模型對車輛的實際偏離情況進行判斷。其中,對采集到的圖像信息進行有效的處理能夠極大地提高算法的識別率甚至會直接影響檢測的結果。
目前,人們對車道偏離預警系統(LDWS)的研究已經比較成熟,提出了很多處理圖像的方法可以將車道線從復雜的路面圖像中提取出來。對于LDWS來說,主流方向是對單目攝像頭采集的圖像進行研究與處理,有著成本低,計算量小的優勢。圖像處理的方法也多種多樣,例如:感興趣區域(ROI)的提取、道路圖像的灰度化處理、圖像增強、圖像濾波處理、邊緣檢測等。通過運用不同的圖像處理方法,又或者將各種圖像處理方法進行不同的組合,會產生完全不同的效果。
通過單目攝像頭采集的道路實時圖像,其分辨率通常都在800×600和1440×1080之間[1]。算法一般都需要對圖像里的每一個像素點進行處理計算,每一幀圖像里面的像素點越多,計算量越大,算法實時性可能就越差。而且,同一個物體出現在分辨率不同的圖像中,其尺度也會不同,會影響到后續圖像處理算法的準確性。如果將圖像傳感器采集的實時圖像統一縮放到合適的分辨率,可以有效提高整體算法的準確性和實時性。經過大量測試,將道路圖像的分辨率縮放為640×480時,能夠在保證車道線檢測算法準確率的同時,明顯提高算法的實時性。取道路圖像中的一幀,進行尺度縮放,效果如圖1所示。

圖1 圖像尺度縮放效果圖
通過車載單目攝像頭采集的信息多而雜,處理起來時間比較長,然而在道路圖像中,我們所需要的信息只是整幅圖像的一小部分;而且車載單目攝像頭在安裝固定以后,只要路況不發生大的改變,我們所需要處理的目標在道路圖像中的相對位置是基本不變的。因此,我們可以將需要的一小部分圖像從道路圖像中提取出來,以減少計算量來提高算法的實時性。
車道偏離預警系統正常安裝在車輛上之后,攝像頭位置固定并且攝像頭的光軸與道路平面平行,攝像頭采集完道路圖像后,我們所需要的車道圖像通常位于整幅圖像的下半部分[2~3]。這部分就是所說的感興趣區域ROI(Region of Interest),如圖2所示;而天空、樹枝、高層建筑等無用的信息出現在上半部分,我們可以將上半部分的圖像舍棄,只對下半部分進行處理,這樣可以節省幾乎一半的時間,同時還能提高算法的識別率。
圖像的灰度化是一種經典并且實用的處理方法,由于車輛抖動、天色明暗、晝夜變化等原因導致采集到的圖像色彩及亮度差異極大,為了減小環境變化所帶來的影響,早期的大部分算法都拋棄了顏色信息,直接將RGB圖像轉化為灰度圖像,利用車道標識線的灰度特征完成對車道標識線的識別。同時,圖像由彩色圖轉為灰度圖,每個像素點關于色彩的三個分量(R、G、B)轉化為一個灰度值,減少了計算量,保證了算法的實時性[3~5]。

圖2 感興趣區域的劃分
圖像灰度化主要使用三種方法:最大值法、平均值法、加權平均值法。
1)最大值法。找出每個像素點R、G、B三個分量中的最大值,將此值作為灰度圖像中像素點的灰度值,如式(1)所示。

2)平均值法。計算出每個像素點R、G、B三個分量的平均值,將此值作為灰度圖像中像素點的灰度值,如式(2)所示。

3)加權平均值法。人眼對紅、綠、藍三種顏色的敏感程度是不一樣的,敏感程度綠>紅>藍。根據敏感程度的高低,來確定顏色的三個分量的重要性,按照R、G、B三分量的重要性賦予不同的權值系數,分別用每個分量的值乘以它們的權值系數,最后相加得到灰度圖像的灰度值,如式(3)所示。

根據大量實驗分析表明,將R、G、B三個分量的權值系數分別賦值為0.59、0.30、0.11時,與正常人類的視覺系統最相似。
本文分別使用三種方法對采集的道路圖像進行了處理,結果如圖3~圖5所示,通過最大值法得到的灰度圖像亮度偏高,降低了圖像的對比度;另外兩種算法得到的圖像差別不大,但加權平均法得到的圖像在車道標線區域對比度較高,能夠更好地突出車道線的特征,有利于車道線的檢測。
隨著現在LDW硬件基礎的更新換代,計算速度和數據傳輸速度也在不斷提升,以及機器學習領域的滲透,已經有許多算法直接對彩色圖像進行處理。RGB圖像中的色彩提供了更為豐富的信息[6],完全可以利用這些信息得到更為精確的識別結果。

圖3 最大值法

圖4 平均值法

圖5 加權平均值法
一般處理彩色圖像的時候都需要進行白平衡的操作,因為車輛的抖動或者光照的變化等原因,采集的道路圖像色彩不均勻,有一定的是噪聲影響。因此,需要對采集的圖像進行白平衡處理,保證后續檢測不會受到圖像傳感器成像色差的影響。軟件中所做的白平衡也是為了防止低成本攝像頭中沒有白平衡硬件電路所帶來的問題。
白平衡算法主要有兩種:Bright Block算法和Automated算法[7]。白平衡處理后能夠使道路圖像中的白色車道線更加明顯,極大地減少了陰天或較暗的環境下光照不足帶來的影響,有利于后續算法的實現,保證了后續圖像處理的準確性。
車載圖像傳感器采集的道路信息,會受到道路中的車輛、環境中的光照、路面的平整度、道路兩旁的高大建筑物等因素影響,圖像中會產生很多不利的噪聲;并且圖像傳輸和解碼等過程中也容易產生椒鹽噪聲,具體表現為圖像中出現很多黑白點,這些噪聲與周圍鄰域像素點的差異較大,會降低圖像的質量甚至影響到車道線等有用的信息。導致算法產生誤差,影響車道線檢測效果。使用平滑處理(也稱模糊處理),可以減少圖像上的噪點或者失真,有效消除噪聲對圖像的影響。
噪聲的種類不同,處理的方法也不同,常用的去噪方法有高斯濾波、均值濾波、方框濾波、中值濾波、雙邊濾波、維納濾波等[2]。
高斯濾波可以有效地減少高斯噪聲,需要把原始圖像中像素點的值與該點鄰域內的像素點的值進行加權平均,得到的值作為濾波過的圖像中對應像素點的值,這種處理方法屬于線性平滑濾波。在高斯濾波的算法中,經常使用的濾波器是二維零均值離散高斯函數。該濾波器的公式如式(4)所示。

高斯濾波是一種常用的濾波手段,效果如圖6所示。

圖6 高斯濾波處理結果
雙邊濾波是一種非線性的濾波方法,使用它的最大好處是可以很好做邊緣保存,相比維納濾波和高斯濾波,可以對高頻細節進行有效的保護,比較適合用在LDWS中,在濾波的同時保存車道線的特征。雙邊濾波器中,輸出像素的值依賴于鄰域像素值的加權組合,如式(5)所示。

雙邊濾波的圖像處理效果如圖7所示,圖像中白色車道線的邊緣部分較為清晰,證明雙邊濾波器能夠在濾波的同時較好地保留車道線的特征。
線性濾波器易于構造,易于從頻率響應角度來進行分析,如方框濾波器、均值濾波器、高斯濾波器等,它們過濾后的圖像的像素值是原圖像像素值的加權和。但在很多情況下,非線性濾波能夠起到更好的效果,如中值濾波和雙邊濾波。

圖7 雙邊濾波處理結果
很多文獻中都是使用中值濾波來處理道路圖像,因為中值濾波在消除脈沖噪聲和椒鹽噪聲時有非常大的優勢,而且算法相對比較簡單,濾波效果也不會像均值濾波和高斯濾波那樣,使圖像顯得十分模糊。
雙邊濾波比高斯濾波多了一個高斯方差sig?ma-d,能夠保證邊緣附近的像素不會被距離較遠的像素影響太多,同時又能有效地去除散粒噪聲,也非常適合用來做車道線識別。
非線性濾波的劣勢是在運算速度上,如中值濾波花費的時間是均值濾波的5倍以上,因為計算量較大,會一定程度上影響到算法的實時性。
圖像的閾值分割也就是進行二值化處理[8~9],將像素點的灰度值變為0或255,讓整幅圖像變為純粹的黑白圖像,只有黑白兩種顏色[4]。二值化后的圖像中包含的干擾信息較少,可以清楚地顯示物體的輪廓,對后續邊緣檢測算法提供了可靠的保障。圖像二值化如式(6)所示。

公式中輸出圖像用g(x,y)來表示,輸入圖像用f(x,y)來表示,閾值用T來表示。因為不同天氣、不同環境下得到的灰度圖像會有差異,最合適二值化的閾值也會有所變動,所以一直使用一個固定的閾值并不是一個很好的選擇。OTSU算法(最大類間方差法),也稱作大津法,該算法使用聚類的思想,把圖像中的物體按灰度等級分為兩類,兩類之間像素點的灰度值差異最大,同一個類之間的像素灰度值差異最小,最后通過計算方差的方式來尋找到最合適的閾值。大津算法被認為是圖像閾值分割時選取閾值的最佳算法,計算簡單并且不會受到圖像亮度和對比度的影響。使用大津法二值化后的圖像如圖8所示。

圖8 閾值分割后圖像
目前,車道線的檢測技術大多以灰度閾值分割加邊緣檢測為基礎。一般情況下,邊緣檢測可以處理掉大部分的干擾信息,保留圖像的主要結構和特征。圖像中物體的邊緣處灰度的一階導數數值很大,而二階導數數值為零[3],利用這一特點,巧妙地使用圖像的微分算子能夠把圖像中各種物體的邊緣提取出來。下面列舉了兩種邊緣檢測算子。
索貝爾算子(sobel operator)利用了加權平均、微分、求梯度等方法[10~11],對道路圖像中的像素點進行篩選,最終找出圖像中為極值點的像素點。圖9和圖10是與Sobel算子有關的兩個模板,經常被用來計算水平和垂直兩個方向上的梯度。

圖9 水平邊緣算子

圖10 垂直邊緣算子
而Scharr濾波器則是經常配合Sobel算子來進行邊緣檢測,速度跟Sobel濾波器一樣快,但是準確率更高。所以當我們使用3*3的濾波器進行邊緣檢測的時候一般都會優先選用Scharr濾波器,圖11是使用Scharr濾波器對閾值分割后圖像進行邊緣檢測后的效果圖。

圖11 Scharr濾波器檢測效果圖
Canny邊緣檢測算子于1986年被John F.Canny開發,由于它的低錯誤率、高定位性、最小響應(圖像中的邊緣只會標識一次),被很多人推崇為當今最優邊緣檢測算法。它的計算過程可以分為四個部分:1)消除噪聲,一般使用高斯平滑濾波器卷積降噪。2)計算圖像中梯度的幅值和方向。3)非極大值抑制,排除非邊緣像素。4)滯后閾值,需要設定一個高閾值和一個低閾值。當像素點位置的幅值大于設定的高閾值時,該像素點被保留;幅值低于設定的低閾值時,該像素點被排除;幅值位于兩個閾值之間時,若該像素點連接到一個高于高閾值的像素點時才會被保留。
經過大量測試,Canny邊緣檢測算子在使用合適的參數時,效果十分優秀,配合改進后的霍夫變換檢測車道線錯誤率極低。圖12與圖13是在使用Canny邊緣檢測算子的前提下,設置不同的高低閾值所產生的不同結果(兩幅圖片使用了相同的3*3的高斯內核降噪)。

圖12 Canny算子邊緣檢測效果圖(低閾值為6,高閾值為15)

圖13 Canny算子邊緣檢測效果圖(低閾值為10,高閾值為45)
本文研究的LDW算法采用了灰度圖像邊緣檢測的方法來檢測車道線,主要介紹了LDWS中對圖像的預處理部分,并且按照圖像處理的先后順序分析了每一步操作可以使用的算法,以及這些算法的優劣性。
經過圖像的預處理,就可以采用霍夫變換,檢測圖像中的直線,再經過各種篩選將圖像中的車道線提取出來。當然,這種算法可以巧妙地利用車道線的邊緣特征,篩選、提取圖像中的車道線,但同時也會檢測出一些具有車道線邊緣特征的干擾項,如較高的建筑物、護欄、位于道路上方的高架橋等,這些干擾容易對車道檢測的精確度產生一定的影響。不過,如果在霍夫變換時加上合適的斜率與角度等限制條件,檢測出車輛當前所在的車道線也不難。
同時,除了本文所介紹的圖像處理方法,仍有許多優秀的算法可以用來檢測車道線。如:道路圖像增強[12~13],逆透視變換[5,14],基于彩色聚類的車道檢測算法,基于模型的車道檢測算法[15]等。總之,無論使用什么方法,核心算法必須要有足夠魯棒性以適應各種不同的道路情況和不同的天氣情況,并且在保證準確性的前提下,盡量減少算法的計算量來確保算法的實時性。