龍邱天, 王靖岳,*, 薛春偉, 武旭東, 鄭珺文, 王軍年
(1.沈陽理工大學汽車與交通學院, 沈陽 110159; 2. 吉林大學汽車仿真與控制國家重點實驗室, 長春 130025)
目前,在智能交通領域中自動駕駛和高級輔助駕駛系統逐漸變成其重要研究方向,智能導航系統在不同領域的應用廣泛增加,比如車輛交通、軍事 應用、農業生產等方面。對于道路而言,根據其道路特征可以大概區分為結構化和非結構化。結構化道路一般為較高結構化程度的道路,如高速公路、城市干線等。并且具有清晰路標、背景環境簡單、特點明顯的道路。然而非結構化道路則是指沒有清晰的路標、背景環境復雜的道路,由于受復雜環境影響難以使道路區域與非道路區域分割,例如鄉村小路、野外環境、沙漠道路、雪地等。
用于檢測非結構化道路的算法可大致分為基于道路特征、基于道路模型、基于神經網絡等。基于道路特征方法,主要是通過道路區域與非道路區域于顏色[1]、紋理[2]、邊緣[3]等特征的差異,然后再使用閾值分割、區域生長、基于統計等方法來得到初分割道路區域。它的優點是不敏感于道路形狀并且需要較少的先驗知識,卻對陰影和水跡敏感并且這類算法實時性較差。基于道路模型[4]的方法,首先在道路的先驗知識的基礎上,道路區域利用道路模型的建立來檢測。然后分析道路圖像,從而找出與原始道路更匹配的道路模型。它的優點是對路面上的陰影和水跡不敏感,但是敏感于道路的形狀,并且對于非結構化道路的復雜形狀很難找出準確的模型去匹配。基于神經網絡[5]的方法,主要根據其學習特性來檢測道路區域,這種方法難度在于訓練方法及大量的數據集。
鐘鵬飛[6]首先將原始圖像的顏色空間轉換,由紅綠藍(red-green-blue,RGB)轉換到色度-飽和度-亮度(hue-saturation-value,HSV),然后使道路區域和背景區域之間的顏色對比度增加,從而分離道路與背景。但是,該方法僅適用于在道路區域和背景區域之間有較大顏色差異的非結構化道路。
牛牧原等[7]針對非結構化道路存在陰影、積水等干擾。首先利用二維最大熵分割道路圖像,然后加入自適應模板進行特征提取。支持向量機(support vector machine,SVM)分類器用于增強分割效果。利用改進分塊算法來快速提取邊界點。最后采用改進的隨機最小二乘法來擬合道路邊界,降低干擾點影響。
Xu等[8]在使用逆透視變換后獲得鳥瞰圖,用大津法分割道路,最后在雙曲線模型基礎上用隨機一致性算法擬合道路邊界,但是大津法在強光照道路效果不佳。
通過分析以上方法,現提出一種基于區域生長法和小波變換的非結構化道路檢測方法。該方法根據大多數情況下道路區域在車載攝像頭的正下前方及道路區域與道路兩旁背景灰度差異,來進行區域生長法對圖像進行初分割,再利用小波變換得到的道路邊緣信息來修正初分割道路圖像,從而更好地檢測出道路可行駛區域。
圖像分割是圖像處理中重要的技術,而區域生長法[9]是一種古老而經典的分割算法。按照事先定義好的準則使一個像素或一個子區域匯集成更大區域的過程就是區域生長法。其本質是將圖像中具有相同或相似特性的像素連接起來,連接成同一片的區域。區域生長法首先將選擇目標分割區域中一組種子點為生長起點,可以是單個像素或小區域,然后根據事先定義的生長準則對比種子點周圍鄰域的像素中與種子點是否具有相似屬性,如果具有相似屬性,則將其與種子點所在的區域合并。最后,區域中新添加的像素被視為新的種子點,以繼續上述生長過程,直到沒有滿足條件的像素被劃分。
簡單的區域生長算法可用于分割更復雜的圖像,并能提供良好的輪廓信息和分割結果。區域生長方法的好壞取決于3個關鍵性法則:①選擇合適的種子生長點;②確定相似準則即生長準則;③確定生長停止的條件。
設R代表整個圖像,利用區域生長法圖像分割時,將R劃分為n個子區域R1,R2,…,Rn,并且滿足以下條件。
(2)Ri是一個連通域,i=1,2,…,n。
(3)Ri∩Rj=?,i≠j。
(4)P(Ri)=True,i=1,2,…,n。
(5)P(Ri∪Rj)=False,i≠j。
通過對以上區域生長法原理分析,對已經灰度化的非結構化道路圖像進行區域生長初分割。大多數情況下,車前就是道路區域且區域很大,然后道路區域與道路兩旁區域的灰度圖像有一定的灰度值差異,來選取種子點和生長準則。
非結構化道路區域生長法實現過程如下。
步驟1將道路圖像中間靠下邊緣第一個像素點來設置為種子點,設該像素為(x0,y0)。
步驟2針對于道路圖像兩邊不可能都有背景像素,將圖像左右兩邊中間的4鄰域的像素的灰度均值與種子點的灰度差記作τ,作為生長準則。
步驟3以(x0,y0)像素點為中心對比其8領域像素(x,y),如果這些新像素滿足生長準則,將(x,y)與(x0,y0)聚合在一個區域,然后將(x,y)放入堆棧。
步驟4在堆棧中重新選擇一個新的像素作為(x0,y0),返回到步驟3。
步驟5如果堆棧中沒有任何像素時,即為空,回到步驟1。
步驟6重復步驟1~步驟4直到灰度道路圖像像素點都被分到某個區域時,生長算法結束。
如圖1所示為非結構化道路的灰度圖,如圖2所示,可以看出道路轉彎處受強光影響而導致分割時邊緣信息的丟失,這也是很多分割算法不可避免會出現的情況。

圖1 非結構化道路灰度圖Fig.1 Unstructured road gray map

圖2 區域生長初分割圖Fig.2 Initial segmentation map of regional growth
為了解決以上問題,可以利用邊緣檢測出來的圖像邊緣信息來修正基于區域生長法的道路分割圖像,來重新劃分道路可行駛區域。
小波變換[10]作為多尺度理論的代表,并且在頻域和時域都具有良好性能,能夠將圖像的低頻信息和高頻細節分離出來,方便根據實際目的對其進行處理和利用,最后通過圖像的重構獲取理想的圖像。
將小波變換的模極大值用于邊緣檢測的原因是,梯度極大值的方向是梯度向量的方向,而沿梯度向量方向的小波系數模的極大值點是圖像的邊緣點。
基于小波變換極大模值邊緣檢測步驟如下。
步驟1首先對原始道路圖像進行圖像對比度增強,然后進行保持邊緣、降噪平滑的雙邊濾波(Bilateral filter)處理得到圖像f(x,y)。
步驟2選取二維高斯函數為二維平滑函數σ(x,y),且滿足3個限制條件。
(1)
步驟3對選取的二維高斯函數分別沿著x,y方向求導獲得小波函數,構造小波函數如下。

(2)
(3)
步驟4對道路圖像f(x,y)的行和列分別與式(2)和式(3)進行卷積操作,得到尺度s的二維小波變換的兩個分量為Gx和Gy。
Gx=f(x,y)ψ1s
(4)
Gy=f(x,y)ψ2s
(5)
步驟5對式(4)和式(5)按照式(6)和式(7)進行計算,求得梯度矢量的模和輻角。
(6)
(7)
步驟6使像素點的梯度方向分為:水平方向(0°或180°)、垂直方向(90°或270°)、正對角線方向(45°或225°)、負對角線方向(135°或315°)4個方向,通過式(6)與式(7)算出與該像素點梯度輻角大小最接近的方向。
步驟7對每一個像素點遍歷,比較其8鄰域梯度,計算該像素梯度值在“梯度輻角大小最接近的方向”上是否為極大值,否則將像素點的梯度置為零。
步驟8記錄梯度極大值中的最大值,然后做歸一化操作,當每個像素的梯度值大于設定的閾值時,將認為是圖像邊緣。
利用小波變換的極大模值分別對經過雙邊濾波處理和未經過濾波處理的非結構化道路圖像進行邊緣檢測,其對比效果如圖3所示。從在原始道路圖像經過對比度增強和Bilateral filter濾波處理后的小波變換極大模值邊緣檢測結果中可以看出,道路區域邊緣清晰且道路區域內和背景的小紋理被濾除,得到了不錯的邊緣檢測結果。

圖3 雙邊濾波后小波變換邊緣檢測Fig.3 Wavelet transform edge detection after bilateral filtering
通過圖2區域生長初分割圖像可以看出,由于受局部強光的影響,其前景道路圖像的邊界部分與背景區域相互粘連,沒有準確地檢測整個道路邊緣,使得無法提取完整的道路可行駛區域。
由于區域生長分割的圖像與小波變換邊緣的圖像都為二值化圖像,對區域生長分割圖像的道路區域的保留,對丟失的道路邊緣信息由小波變換檢測出邊緣線去重新修正。具體操作如下:重新設置一個與道路圖像大小相同全黑的目標圖像,如果區域生長分割圖像與小波變換邊緣圖像對應坐標點取值相同時,則目標圖像對應坐標點取值為0;取值不同時,則目標圖像對應的坐標點取值為1,也就是對兩幅圖像做異或邏輯運算(半加運算)。
根據對上面道路邊緣修正過程的分析,對兩幅圖像進行異或邏輯運算,目標圖像的取值應該滿足以下條件。
dst(x,y)=F(x,y)⊕W(x,y)
{(x,y)|0 (8) 式(8)中:cols為圖像寬度;rows為圖像的高度;(x,y)為圖像的坐標點;F(x,y)為區域生長初分割圖像;W(x,y)為小波變換邊緣檢測圖像;dst(x,y)為由F(x,y)和W(x,y)由異或邏輯運算獲得的目標圖像。邊緣修正的目標圖像如圖4所示。 圖4 邊緣修正后的目標圖像Fig.4 Target image after edge correction 通過圖4可以看出,受局部強光影響而導致邊緣丟失的區域生長分割圖像(圖2)由小波邊緣檢測圖像(圖3)對其邊緣信息修正后,獲得了一個邊緣完整的道路區域。 由于車載前置攝像頭拍攝的道路圖片中,道路區域為整個圖像的中間且最大連通域,對邊緣修正過的二值化道路圖像進行腐蝕、膨脹等形態學操作,通過輪廓檢測出二值化道路圖像里空洞的輪廓,再利用輪廓面積閾值消去除了其他所有空洞,最后得到道路區域的二值化圖像,如圖5所示。 圖5 道路二值化圖像Fig.5 Road binary image 通過圖5可以看出道路的邊界分為左右兩邊,假如將左右兩邊邊界點用一條曲線來擬合非常難得到準確的道路邊界線,所以需要把左右邊界點分別提取出來。提取過程如下:首先對道路二值化圖像(圖5)進行Canny算子邊緣檢測[11];然后通過每隔5行遍歷圖5像素點,記錄像素為1的圖像坐標點,當記錄的圖像坐標點在圖像左半邊時,把該像素點記作道路左邊界點,在圖像右半邊時,則記作道路要邊界點,記錄結果如圖6所示。 圖6 道路左右邊界點Fig.6 Left and right boundary points of the road 道路模型適當的選取對于非結構化道路檢測有著重要的影響,適合道路的模型可以進一步增強擬合的效果,反之則使得道路檢測不準確。 現如今,常見的道路模型有直線模型、二次曲線模型、三次曲線模型、樣條曲線模型等[12]。直線模型較為簡單,實時性好,但是對于彎道擬合效果差。二次曲線模型的計算量也不大,雖然能夠擬合彎道,但是對于曲率大的彎道擬合精度不高。三次曲線模型能夠較好擬合曲率變換快、曲率較大的道路,但是也隨之伴隨計算量增大。 考慮到非結構化道路情況復雜且結構多變,選取三次曲線模型進行道路擬合,三次曲線模型為 y=ax3+bx2+cx+d (9) 式(9)中:a、b、c、d為系數。 隨機抽樣一致性(random sample consensus,RANSAC)算法[13],數學模型的參數以迭代方式從包含異常值的一組觀測數據中估計。在隨機抽樣一致性算法中假設正確數據與異常數據(噪聲點)組成一組數據,正確數據記為內點,異常數據記為外點。外點是不能適應模型的數據,而存在可以估計參數的模型能夠解釋或者適用于內點。 最小二乘法在擬合直或曲線也有較好的效果,但最小二乘法的計算方法確定其擬合模型應“考慮”所有數據點。與隨機采樣一致性算法不同,當數據點中存在遠處噪聲點時,擬合結果會有很大的偏差。 最小二乘曲線擬合和隨機抽樣一致性算法曲線擬合對比結果如圖7所示,其中圖7(a)是對道路邊界提取的一組樣本點,在圖7(b)中是隨機抽樣一致性算法擬合樣本點,圖7(c)是最小二乘法擬合樣本點。由圖7的對比實驗表明,最小二乘法曲線擬合在噪聲點的影響下對道路邊界擬合效果不佳。非結構化道路由于路況復雜多變,道路邊界點可能存在多個噪聲點,而隨機抽樣一致性算法能夠去除大多數噪聲點(外點),因此選用RANSAC算法擬合道路邊界。 圖7 最小二乘曲線擬合與RANSAC曲線擬合比較結果Fig.7 Comparison results of least square curve fitting and RANSAC curve fitting 隨機抽樣一致性算法擬合道路邊界步驟如下。 步驟1從道路邊界點中隨機挑選4個數據點,將這4點記作“內點”。 步驟2根據這4個“內點”確定三次曲線模型的4個參數。 步驟3將所有邊界點與上述已經確定的模型做比較,當某邊界點與模型距離小于閾值時,將該點記作“內點”,否則記作“外點”。 步驟4計算“內點”與“外點”的比率。 步驟5在一定的迭代次數下,循環執行步驟1~步驟4,最后確認一個模型能夠最大化“內點”與“外點”的比率。 步驟6從最終模型生成道路邊界擬合曲線。 擬合結果如圖8和圖9所示。 圖8 RANSAC擬合道路左邊界點Fig.8 RANSAC fitting the left boundary point of the road 圖9 RANSAC擬合道路邊界結果Fig.9 RANSAC fitting road boundary results 通過收集約100張多種類型的復雜道路圖像來做道路檢測實驗,320×240的圖像尺寸,實驗環境為:Intel(R) Core(TM) i5-12500,CPU 3.30GHz, 16G內存,系統為Windows11家庭中文版,本文方法代碼運用C++和Opencv4.5進行編寫,算法仿真在Visual Studio 2019 中實現。 為了檢驗本文方法對大多數道路情況的適用性,分別對水泥道路、沙礫道路、沙漠道路及夜間道路進行多種閾值分割方法與所提的基于改進區域生長與小波變換結合的方法對比,各算法效果如圖10所示。 圖10 本文方法與各方法效果對比Fig.10 The results of this method compared with those of each method 在圖10各方法對比圖中,第一行分別是沙礫道路、水泥道路、沙漠道路、夜間道路的原始灰度圖像。第二行是分別對這3種道路進行大津法的閾值分割,可以看出道路在受強光的影響下,道路邊緣信息的丟失,并且道路邊緣受道路中沙礫或者其他物體影響情況下,道路區域分割不準確。第三行是分別對這3種道路進行一維最大熵的閾值分割,與大津法分割的缺點較為相同,并且道路區域與背景區域相互粘連。第四行是本文方法,首先利用改進的區域生長法進行道路初分割,再使用小波變換極大模值邊緣檢測,對初分割圖像進行邊緣誤檢來補足邊緣信息。可以看出受強光影響丟失的道路邊緣信息得到了修正并且邊緣線將道路區域與背景區域分割開,從而得到效果更好的道路可行駛區域。第五行是進行形態學處理、輪廓面積閾值消去后的二值化道路圖像。最后一行則是通過對3種不同路況的非結構化道路的建模后,利用隨機抽樣一致性算法擬合道路邊界線得出的非結構化道路可行駛區域。 提出一種在多種復雜路況下具有一定準確性非結構化道路檢測方法。通過對道路圖像預處理,在道路圖像初分割中使用改進的區域生長法,大致分割出道路區域;使用小波變換極大模值的邊緣檢測對初分割圖像進行邊緣信息的修正;再利用形態學處理、輪廓面積消去法得到只有道路區域的二值化圖像;最后選取三次曲線模型利用RANSAC算法擬合道路邊界點。道路檢測實驗表明,本文方法能有效檢測邊緣信息明顯的復雜非結構化道路。
2.3 道路區域的提取

2.4 道路邊界點提取

3 道路建模及邊界擬合
3.1 道路模型的選取
3.2 RANSAC擬合道路邊界



4 道路檢測實驗及分析

5 結論