楊 波
(重慶對外經(jīng)貿(mào)學院 重慶 401520)
近年來,道路檢測技術作為自主駕駛、智能交通等領域的基礎且關鍵的組成部分逐漸成為研究的熱點問題。視覺檢測是道路檢測領域最為常用的解決方案,然而目前,基于視覺的道路檢測仍然是一個極具挑戰(zhàn)性的任務,其存在的主要問題是在一些復雜環(huán)境下的檢測魯棒性不高,容易受到光照變化、陰影、車輛及行人干擾等因素的影響[1-3]。
目前常用的視覺道路檢測方法可以分為基于模型的方法和基于特征的方法。基于模型的方法[4-6]通過搜尋顯著的道路特征來擬合訓練好的道路模型,此類方法在復雜路況下很難找到匹配的道路模型,難以滿足魯棒性需求;基于特征的方法主要利用道路的顏色[7-9]、紋理[10]等信息與非道路區(qū)域區(qū)分開來,其中,后者主要通過檢測道路的邊緣、消失點等道路紋理信息完成道路檢測,如Kong等[11]通過檢測道路消失點來確定道路邊緣,最終得到道路區(qū)域,但這種方法無法排除道路上的車輛、行人等干擾信息,容易造成誤檢,且算法復雜度高、實時性較差,故相比于紋理特征,道路顏色特征具有更強的可靠性。但傳統(tǒng)的基于顏色特征的方法在存在陰影等干擾信息的環(huán)境下準確性和魯棒性較差,且車道線所在道路區(qū)域通常被檢測為非道路區(qū)域。
為了提高道路檢測的性能,國內(nèi)外學者進行了其他探索。文獻[12-14]利用立體視覺得到深度信息來完成道路檢測,但此方法成本高,且實時性很難滿足。隨著深度學習的快速發(fā)展,也有學者將深度神經(jīng)網(wǎng)絡(Deep Neural Network, DNN)應用于道路檢測。由Levi等[15]提出的Stixel-NET通過訓練具有5個卷積層的深度網(wǎng)絡來分割道路區(qū)域。由Badrinarayanan等[16]提出的SegNet基于VGG16的網(wǎng)絡模型構造了一個具有編碼-解碼結構的深度卷積網(wǎng)絡來實現(xiàn)道路檢測及分類。此類方法需要在線下利用大量樣本集進行訓練,無論是數(shù)據(jù)集的人工標注還是網(wǎng)絡模型的訓練都是一項繁重且耗時的工作,不利于道路檢測算法的實際應用。
結合前人的研究成果與不足,本文提出一種基于種子超像素生長和多信息融合的視覺道路檢測算法。該算法采用形態(tài)學運算去除結構化道路中的車道線,以避免其對后續(xù)處理的不利影響;采用超像素分割算法將圖像分割成超像素塊,將圖像過分割成結構相似的若干區(qū)域;通過提取道路的HSV顏色空間的顏色特征,并結合預定義的道路模型完成基于視覺的道路檢測任務。
由于在城市等結構化道路環(huán)境下存在大量的車道線,但車道線作為干擾信息不利于后續(xù)對道路的檢測。針對上述問題,本文提出一種基于圖像開運算的車道線剔除算法。該算法基于車道線亮度值明顯高于周圍道路區(qū)域的特點,利用圖像開運算對車道線進行剔除。使用結構元素b(x,y)對圖像f(x,y)進行開運算操作,定義為:
fopen(x,y)=f(x,y)°b(x,y)=
(f(x,y)Θb(x,y))⊕b(x,y)
(1)
式中:符號“° ”表示開運算操作;符號“Θ”表示腐蝕操作;符號“⊕”表示膨脹操作。即先用結構元素b(x,y)對圖像f(x,y)進行腐蝕,再用同樣的結構元素對其結果進行膨脹。在圖像形態(tài)學運算領域,腐蝕操作的主要目的為縮小目標邊界和范圍;膨脹操作則與腐蝕操作相反,其主要目的為擴張目標邊界和范圍。腐蝕操作和膨脹操作運算定義如下:
AΘB={z|(B)Z?A}
(2)
(3)
針對數(shù)字圖像,從數(shù)學角度而言,形態(tài)學腐蝕操作通常以求取局部圖像區(qū)域最小值的形式來實現(xiàn),即通過獲取定義好的結構元素B所覆蓋的區(qū)域內(nèi)所有圖像像素的最小值來完成腐蝕操作。相應地,形態(tài)學膨脹操作則通常以求取局部圖像區(qū)域最大值的形式來實現(xiàn)。
此外,針對車道線在水平方向寬度較小而在豎直方向長度較大的特點,本算法采用橫向線形結構元素來對道路圖像進行開運算操作。處理結果如圖1所示(圖1(a)為原圖像,圖1(b)為形態(tài)學開運算處理結果)。
圖1 圖像形態(tài)學處理
基于特征的道路檢測算法由于其無須訓練、算法高效等特點而被廣泛應用。其中,相機的透視效應導致道路的紋理特征隨著與相機距離的變化而變化,故道路的顏色特征具有更強的可靠性。相比于RGB顏色空間,HSV顏色空間能更有效地區(qū)分顏色相似性,且HSV顏色空間更加符合視覺特性。針對道路檢測中顏色空間的選擇問題,Alvarez等[17]對RGB和HSV顏色空間作了對比,其結果如表1所示(“+”表示魯棒性強,“-”表示魯棒性弱)。
表1 不同顏色空間各通道魯棒性
基于以上討論,本文將對輸入圖像車道線剔除后的圖像進行顏色空間轉換。由RGB顏色空間轉換為HSV顏色空間的轉換公式如下:
(4)
(5)
(6)
轉換之后的效果如圖2所示(第一列分別為R、G、B通道;第二列分別為H、S、V通道)。
圖2 RGB轉換為HSV顏色空間
圖像超像素定義為具有相似特征的相鄰圖像像素構成的不規(guī)則像素塊。圖像超像素用少量的超像素代替大量的像素來表達圖片的特征,大大降低了由像素之間的相似性帶來的冗余性,并隨之降低了后續(xù)圖像處理任務的復雜性。近年來,超像素的理念已經(jīng)廣泛應用于目標檢測及分割等領域。
本文使用Achanta等[18]提出的SLIC(Simple Linear Iterative Cluster)超像素分割算法對道路圖像進行超像素分割,該超像素分割算法能夠高質(zhì)量地生成均勻緊湊的超像素。SLIC,即簡單線性迭代聚類,首先,它將彩色圖像轉化為CIE-Lab顏色空間,對應每個像素的(L,a,b)顏色值和(x,y)坐標組成一個5維向量,然后對此構造距離度量標準,兩個像素的相似性即可由它們的向量距離來度量,距離越大則相似性越小。最后通過迭代的方式對圖像像素進行局部聚類。SLIC算法的偽代碼如算法1所示。
算法1超像素分割算法
/*初始化*/
Initialize cluster centersCkby sampling pixels at regular grid stepsS.
Move cluster centers to the lowest gradient position in a 3×3 neighborhood.
Set labell(i)=-1 for each pixeli.
Set distanced(i)=∞ for each pixeli.
repeat
/*分配*/
for each cluster centerCkdo
for each pixeliin a 2S×2Sregion aroundCkdo
Compute the distanceDbetweenCkandi.
ifD setd(i)=D setl(i)=k end if end for end for /*更新數(shù)據(jù)*/ Compute new cluster centers. Compute residual errorE. UntilE≤threshold 上述過程中,迭代計算聚類中心是本算法的關鍵,而迭代的核心就是計算距離。其計算公式如下: (7) (8) (9) 式中:dc代表顏色距離;ds代表空間距離;NS表示類內(nèi)最大空間距離。 (10) 式中:K表示超像素總數(shù);N表示圖像的像素個數(shù),隨圖片及聚類不同而不同,所以作者取一個固定常數(shù)m代替。最終的度量公式為: (11) 由上述論述可知,該算法只需要用戶輸入兩個參數(shù),即超像素總數(shù)K和常數(shù)m。本文設置K值為2 000,m值為25,超像素分割結果如圖3所示。 圖3 超像素分割結果 在進行道路檢測前,首先要確定道路圖像中的某個道路區(qū)域作為種子點。對于本文而言,需要選擇道路區(qū)域的超像素塊作為種子超像素。當車輛在道路上行駛時,安裝于車輛上的相機得到場景圖像,而圖像的中底部像素所對應的區(qū)域是距離車輛最近的地方,也是最有可能是道路的區(qū)域?;诖?本文提出一種種子超像素塊選取方法。如圖4所示,首先,在圖像的中底部選擇5個超像素塊(最底層3個,次底層2個),然后分別統(tǒng)計5個超像素塊的顏色均值并計算各均值之間的距離,為排除圖像底部所對應的區(qū)域存在車輛、行人、道路破損等不利因素影響的可能,選擇距離最近的3個超像素塊作為最終的種子超像素。 圖4 種子超像素塊選取 由于本文擬提取超像素塊的顏色特征來區(qū)分道路與非道路區(qū)域。而當圖像中存在人行道、建筑物等與道路區(qū)域具有相似的顏色特征的內(nèi)容時,容易造成誤檢,使道路檢測的準確率降低。基于此,本文提出通過引入預定義道路模型解決此問題。本文認為越是同時靠近圖像的底部和中部,該像素所對應的區(qū)域作為道路的可能性越大,反之,越是靠近圖像的上部或者左右兩邊,其對應的區(qū)域越有可能是非道路區(qū)域。由此,本文提出的預定義的道路模型如下: (12) 式中:(x,y)表示每個超像素的均值橫坐標和縱坐標;τ(x,y)表示坐標(x,y)對應的超像素;X和Y組成圖像的分辨率。 接下來,本文在上述基礎上進行道路的檢測。首先是設計種子超像素生長準則,通過超像素生長實現(xiàn)基于顏色特征的視覺道路檢測。具體來說,本文通過統(tǒng)計每個超像素的HSV各通道直方圖,由于每個超像素塊對應的像素數(shù)不同,所以,本文將直方圖歸一化,然后計算每個超像素和種子超像素之間歸一化直方圖的距離,定義為Dh,并將其作為種子超像素生長的準則。換言之,當圖像超像素和種子超像素的歸一化直方圖距離較小,即顏色特征相似度越高時,進行種子超像素生長,反之,當圖像超像素和種子超像素的歸一化直方圖距離較大時,停止生長,直至遍歷所有的圖像超像素為止。 最后,本文引入預定義道路模型以提升算法的魯棒性,依據(jù)式(13)把不同的超像素塊分為道路區(qū)域和非道路區(qū)域兩部分。 (13) 式中:λ表示閾值;paver表示將超像素塊的均值橫坐標和均值縱坐標代入式(12)的結果。道路檢測結果如圖5所示。 圖5 道路檢測結果 本節(jié)對本文算法進行實驗驗證。實驗基于Inter Core i7 CPU,配備16 GB RAM,采用MATLAB軟件進行算法實現(xiàn)。實驗圖像來自KITTI(Karlsruhe Institute of Technology and Toyota Technological Institute)道路檢測數(shù)據(jù)集[19]。 本文對KITTI數(shù)據(jù)集下的道路圖像進行了道路檢測實驗,部分實驗結果如圖6所示,其中,第一行為選取于KITTI數(shù)據(jù)集的輸入圖像,第二行為對原始圖像進行超像素分割結果,第三行為道路檢測結果,第四行圖像為最終得到的道路區(qū)域檢測結果,第五行圖像為對應的groundtruth。 圖6 定性實驗結果 值得一提的是,為了驗證所提出的引入預定義道路模型的有效性,本文進行了消融實驗,實驗結果如圖7所示,其中第一行圖像為僅依靠顏色特征的道路檢測結果,第二行圖像為引入預定義道路模型之后的道路檢測結果。可以看出,通過引入預定義道路模型,可以解決道路圖像中的人行道、建筑物等與道路區(qū)域具有相似的顏色特征的內(nèi)容對道路檢測算法產(chǎn)生影響的問題。 圖7 消融實驗結果 本文選定精確率(precision,P)、召回率(recall,R)、F度量(F-measure,F)作為性能評估標準,這三個指標的具體定義為: (14) (15) (16) 式中:TP、FP、FN分別表示True Positive(被檢測為道路的道路像素)、True Negative(被檢測為非道路的非道路像素)、False Negative(被檢測為非道路的道路像素)。本文方法定量分析結果及其與目前比較流行且效果較好的幾種道路檢測算法結果對比如表2-表4所示。 表2 UM道路環(huán)境下道路檢測算法對比(%) 表3 UU道路環(huán)境下道路檢測算法對比(%) 表4 UM道路環(huán)境下道路檢測算法對比(%) 本文算法在MATLAB軟件上每幅圖像的平均檢測時間約為0.8 s,如果算法轉化為C++語言,平均檢測時間將大大縮短,加之本文算法中SLIC超像素分割算法占用了大部分計算時間,針對SLIC算法的優(yōu)化,2015年有學者實現(xiàn)并行執(zhí)行速度達250幀/s,這也可以在很大程度上提高算法的執(zhí)行效率。綜上所述,本文算法在實際應用中可以滿足實時性需求。 本文提出一種基于種子超像素生長的視覺道路檢測算法。首先,對圖像進行形態(tài)學處理去除結構化道路上的車道線信息,然后,將RGB顏色空間轉換為HSV顏色空間,并對原圖像進行超像素分割。最后,計算各超像素塊和選取的種子像素塊之間的歸一化直方圖距離,繼而將其作為準則進行種子超像素生長,并結合先驗知識完成基于視覺的道路檢測。在KITTI測試集上的實驗結果表明,本文道路檢測算法在不同道路場景下準確率超過86.36%,召回率超過86.62%,在算法以C++作為開發(fā)語言的前提下,可以滿足實際應用中的魯棒性、準確性及實時性需求。2 道路圖像預處理
2.1 種子超像素選取
2.2 道路模型
2.3 道路檢測
3 實驗結果分析
3.1 定性分析
3.2 定量分析
4 結 語