邱 東,翁 蒙,楊宏韜
(長春工業大學 電氣與電子工程學院,吉林 長春 130012)
車道線檢測技術是無人駕駛的核心技術,其檢測的正確與否直接決定了行車是否安全[1]。2018年春晚,百度Apollo平臺在珠海分會場的港珠澳大橋上上演了無人車駕駛[2],體現了中國自動駕駛技術的日漸成熟。目前,基于國內外發展現狀,車道線檢測的算法可大致分為兩種, 分別是基于特征[3]和基于模型[4]的分割方法。Y. Su等[5]于2018年提出了一種基于立體平臺魯棒消失點約束的車道檢測方法,該方法在不考慮任何車道模型參數的情況下,對直線車道和曲線車道都能實現良好的檢測。J. Liu等[6]提出了一種有效、魯棒的高速公路車道檢測算法。它利用霍夫變換擬合道路俯視圖的車道線,對所有的車道線進行聚類后,提取每個類別中最具代表性的車道線,然后進行后處理。W. X. Wei等[7]利用改進的Hough變換法實現車道線檢測,通過比較前后兩幀車道線的斜率,在先前檢測到的車道線區域附近進行區域限制,設置感興趣區域(ROI)并且執行對角點像素的搜索,以便對角點部分進行重建。尤小泉等[8]采用分塊變換與預測相結合的方法,在極大降低算法復雜度的同時能夠對彎道處的車道線進行有效的檢測,能有效地降低計算量,提高車道檢測的實時性。
文中就實時性和準確率兩個方面提出一種基于改進概率霍夫變換的車道線快速檢測方法。該方法首先對圖像進行感興趣區域提取,再合理選取紅、綠、藍三色通道的比例對圖像進行灰度化處理,并通過中值濾波法對圖片進行濾波去噪;在采用OTSU算法進行閾值處理之后,通過Canny算子對車道線進行邊緣提取;其次從車道線長度、車道線斜率、車體寬度以及車道寬度4個方面對累計概率霍夫變換法增加4條約束條件以提高檢測的準確率和實時性;然后運用改進的累計概率霍夫變換法進行車道線的檢測,消除干擾線和偽車道線;最后通過回歸分析法擬合出正確的車道線。
車輛行駛時,處理圖像是實時的,為減少冗余的計算量以保證快速地計算數據,就必須對原始圖像進行預處理。圖像預處理的主要目的就是剔除無關信息,增強有關信息的可檢測性。文中的圖像預處理工作有:感興趣區域(ROI)的提取、圖像灰度化、濾波去噪和閾值處理。
相機所拍攝的圖片有很大一部分對車道線的提取不起作用,如:護欄,天空,路燈等,反而加大了工作量,對此,需對無用的信息加以剔除以保證圖片處理的實時性。由于相機以一定的位姿固定在車上,考慮到實際情況,取圖片高度的1/2,即將下半區域作為研究區域。原圖如圖1(a)所示,感興趣區域如圖1(b)所示。
為提高圖像的處理速度,需對原始的RGB圖像做灰度化處理,即將彩色空間的圖像轉換為灰度圖像。一般情形下,灰度化公式采取:
Gray=0.299×R+0.587×G+0.144×B
(1)
其中,R,G,B分別為紅、綠、藍三色通道的值,取值范圍為[0,255]。但以上式灰度化的圖像會丟失大量色彩信息,為增強道路標識信息,又考慮到車道線一般為白色(255,255,255)和黃色(255,255,0),故本次圖像灰度化采取為:
Gray=0.5×R+0.5×B
(2)
灰度圖如圖1(c)所示。
相機在拍取照片時,都會帶有一定的噪聲,而噪聲對圖像處理會造成很多負面影響,中值濾波可以消除孤立噪聲并且可以很好地保持邊緣信息。中值濾波的基本思想是:根據模板的大小,將板內所有像素點的灰度值進行排序,選取中間的灰度值來代替鄰域各像素點的灰度值,可表示為:
g(x,y)=med{f(x-k,y-l),(k,l∈W)}
(3)
其中,g(x,y)為處理后的圖像,f(x,y)為原圖像,W為模板大小。本次模板選為3×3。

圖1 預處理
灰度化處理及去噪之后需對圖像進行閾值處理,將圖像灰度值置為0或255,經過歸一化后即將灰度值置為0或1。閾值處理后的圖像不再涉及多級灰度值,使得處理變得簡單。目前,閾值處理的方法可分為3種,分別是:全局閾值處理法、局部閾值處理法和自適應閾值處理法。全局閾值處理法(global threshold method)對每一幅圖計算一個單一的閾值,將每個像素的灰度級與閾值作比較,若大于閾值,則為背景,若小于閾值,則為前景。局部閾值處理法(local threshold method)以像素的領域信息為基礎來計算每個像素的閾值,若圖像中一個像素的灰度級大于在該點閾值面的計算值,則將該像素點標記為背景,否則為前景。由于受光照、陰影等的影響,若對所有圖像采用同一閾值進行圖像二值化,會使圖像處理變得不準確,甚至會過濾掉很多有用信息,因此,本次閾值處理采取自適應閾值算法—OTSU算法來提高算法的魯棒性[9-10]。OTSU算法采用聚類的思想,將灰度值差異最大的兩部分看作前景和背景,通過計算前景和背景的方差確定閾值的大小,可表示為:
G=W0×(U0-U)2+W1×(U1-U)2=
W0×W1×(U0-U1)2
(4)
其中,U=W0×U0+W1×U0。W0表示前景點數占圖像總像素的比例,平均灰度為U0;W1表示背景點數占圖像總像素的比例,平均灰度為U1。當G取Gmax時,閾值T為最佳閾值,即T=W0×U0+W1×U1。大津二值化法處理結果如圖2(a)所示。
常用于邊緣檢測的算子有Sobel,Prewitt,Canny,Robert,Laplacian等。Sobel算子檢測邊緣的速度快,計算量小,由于引入了平均元素,因而對圖像中的隨機噪聲有一定平滑作用,對灰度漸變低噪聲的圖像有較好的檢測效果,但只能檢測水平和垂直線方向的邊緣,對于紋理較為復雜的圖像,邊緣檢測效果不理想。Robert是一種利用局部差分算子尋找邊緣的算子,定位比較精確,但由于不包括平滑,所以對于噪聲比較敏感。Laplacian算子獲得的邊界是比較細致的邊界,反映的邊界信息包括了許多的細節信息,但是所反映的邊界不是太清晰。
由于Canny算子具有良好的抑制噪聲和精確定位邊緣的能力[11],故本次邊緣檢測采用Canny算子。Canny算子將圖像與Gauss平滑濾波器進行卷積,得到信噪比(SNR)較高的圖像,能起到很好地抑制噪聲的效果;其次,通過卷積算子[12]:
(5)
求得x,y方向的一階偏導數進而求出梯度的幅值和方位角;再通過非極大值抑制(NMS)保留幅值局部變化最大的點;最后采取雙閾值進行邊緣的檢測和連接,通過高閾值得到的邊緣圖像,含有較少的虛假邊緣,且邊緣不可能實現閉合,若在斷點的8鄰域點中尋找滿足的低閾值點,再根據收集新的邊緣,就可實現圖像邊緣的閉合。邊緣檢測的結果如圖2(b)所示。

圖2 閾值處理及邊緣檢測
通過上述處理,已在很大程度上降低了圖像處理的計算量,但如果用累計概率Hough變換法直接對圖像進行車道線檢測,由于受到臨近車道線,護欄等影響,在提取本車道線時,在一定程度上降低了直線檢測的準確性。因此,對基于累計概率Hough變換檢測車道線法加以改進,通過車道模型進行分析,增加以下四個約束條件,模型如圖3所示。

圖3 道路分析模型
(1)對線段長度設定閾值。
在檢測對向和同向車道分界線時,根據《道路交通標志和標線》規定,可跨越對向和同向行道分界線實線長不短于2 m,間隔長不短于4 m。由于相機固定在車上且通過逆透視變換標定完成,二者位姿不會發生改變,但受路面陰影、污跡以及路旁護欄等影響,會出現誤檢的情況。此時,對圖像中檢測的直線長度設定閾值,可有效刪除干擾線,步驟為:通過逆透視變換獲得鳥瞰圖,根據圖像中兩像素點的距離與真實世界中兩點距離的比例關系進行換算,若真實世界中直線的距離小于1 m,就剔除該直線。
(2)對左右車道線斜率設定閾值。
當車輛在本車道行駛時,左車道線斜率θ1=(0,π/2),右車道線斜率θr=(π/2,π),則|θ|=[θmin,θmax]。由于車體本身有一定的寬度,且相機一般處于車體中央,結合實際情況,通過大量的實驗驗證,只對以下范圍內的直線做檢測:
(6)

(3)以距離為條件篩除干擾線。

(4)以角度為條件篩選偽車道線。
由于車道寬度是固定的,經過多次試驗可知,在圖像中單個車道的左右車線的角度不會小于12°,當確定一條候選線時,計算與兩側車道方向所有直線與候選線的夾角,若有與之夾角小于12°的直線就剔除。為驗證所選取角度的合理性,文中做了大量實驗,選取3 623幀圖片進行分析,在已知正確車道的前提下,基于消失點約束,計算每個車道左右兩條線的夾角,表1為實驗結果,表示能檢測到的車道最小夾角和圖片幀數占比情況。對于圖3中的模型,若直線L4為車道線,可計算所有直線與L4的夾角,以L4,L7的夾角β1為例,若β1<12°,則剔除線段L7。

表1 檢測出的最小車道角度及占比情況
由于經典Hough變換計算量較大,很難保證實時性,為改善這個不足,文中采用累計概率霍夫變換(PPHT)對直線進行檢測,PPHT是經典霍夫變換的一種改進算法[13-14]。經典Hough變換的基本思想是利用點和線的對偶性,將圖像中的曲線轉換為參數空間的一點[15-16]。其在圖像中沿著線累積點,以獲取Hough參數空間(r,θ)的投票,根據設定的閾值,最終確定圖像空間中的曲線。笛卡爾坐標和參數空間(r,θ)中的直線方程表示為:
f(x,y)=kx+b-y=0
(7)
f(r,θ)=xcosθ+ysinθ-r=0
(8)
式(7)中,k表示直線的斜率,b表示截距;式(8)中,r表示到幾何垂線的距離,θ表示r與X軸之間的夾角。由于空間參數與線的參數有關,又可表示為:
(9)
對平面直角坐標系而言,若圖像中有一條直線,那么直線上所有點在參數空間上對應無數條直線,而這些直線必定相交于同一點,即可確定對應的k,b,這就達到了檢測直線的目的;對極坐標系而言,直線上所有點在參數空間對應無數條曲線,而曲線相交對應的點即可確定r,θ的值,原理如圖4所示。計算時,在參數空間中建立一個二維數組累加器A,但不同的坐標系所對應的取值不同,平面直角坐標系的二維數組累加器分別對應k和b的取值范圍,極坐標系中對應r和θ的取值范圍,在參數計算表決結果中計算出A(k,b)或A(r,θ)的峰值,但在尋找直線時,不直接選取最大的峰值,一般會選取前幾個峰值所對應的參數以保證直線檢測的準確性。

(a)平面坐標系下的Hough變換原理

(b)極坐標系下的Hough變換原理
與經典Hough不同的是,PPHT無需對邊緣每一個像素點進行檢測,只需從點集中隨機選取一個像素點進行分析。PPHT算法具體步驟如下:
(1)從每個區間點集中隨機選取一個像素點,且每個區間對應一個累加器,在參數空間下計算θ對應的r值,對應的累計器A(r,θ)加1;
(2)從點集中刪除該點并更新累加器;
(3)根據設定的閾值,若累加器的值大于閾值,則表示已檢測到直線,最后再刪除該直線上所有的點;
(4)重復以上3個步驟,直至點集為空。
經概率霍夫變換后,累加器閾值選取的不恰當會出現誤檢的情況,再者受噪聲的影響,檢測出的直線可能不連續也可能偏離原直線,會帶來更差的效果;除此之外,對于虛線車道,檢測出的直線原本就斷斷續續,但都處于同一直線上。針對這些問題,采用回歸分析對檢測出的直線進行擬合。對直線上的像素點建立的一元回歸模型可表示為:
yi=α0+αixi+λi,i=1,2,…n
(10)
考慮到文中要檢測的是車道線,回歸模型的選取應具備穩健性和良好的邊界自適應性,因此本次回歸模型選取為核回歸(kernel regression,KR)模型。根據Taylor級數展開估計鄰域內像素點的值,展開式可表示為:
f(xi)≈f(x)+f(1)(x)(x-xi)+
α0+α1(x-xi)+…+
α2(x-xi)2+…+αN(x-xi)N
(11)
其中,f(i)(x)和{αn}N分別表示回歸函數的i階導數和微分信息,而{αn}N可用加-權最小二乘法求得,可表示為:
(12)
其中,K為核函數,h為窗寬。通過以上步驟可以很好地實現直線擬合。
為充分驗證文中方法具有較高的準確性、實時性和魯棒性,本次實驗采用經典霍夫變換法以及文獻[17]中的方法與文中方法作比較。文獻[17]的基本思想是:利用投影原理等先驗知識改進區域生長法,接著分割圖像并劃分道路的邊界區域,然后通過融合邊緣檢測數據得到準確的車道線特征點集合,車道檢測中則采用Hough變換提取直線段來匹配道路直線模型[17]。本次實驗基于的硬件平臺是:Intel(R) Core(TM) i7-7700 CPU3.60 GHz,內存為8 G,系統為WIN10,軟件為:VS2013+OpenCV3.0.0。為充分驗證文中算法的優越性,本次實驗選取7種不同的路況進行測試,分別是普通路況(路面無任何干擾因素)、帶有污跡的路況、帶有陰影的路況、帶標志符干擾的路況、反光路面、強光照路況以及晚間路燈照射的路況,路況原圖與測試結果如圖5所示。

(a)普通路況及其檢測結果

(b)帶污跡的路況及其檢測結果

(c)帶陰影的路況及其檢測結果

(d)標志符干擾及其檢測結果

(e)反光路面、強光照情形及其檢測結果

(f)晚間路燈照射路況及其檢測結果
表2~表4為三種方法在實時性和準確性的比較結果。為加強對比性以及驗證文中方法的普遍適用性,本次對比在三種路段分別進行試驗,第一個路段為普通路段,視頻總幀數為3 698幀,實驗結果對應表2;第二個路段為有大量陰影的路段,視頻總幀數為1 689幀,實驗結果對應表3;第三個路段為晚間路燈照射路段,視頻總幀數為2 612幀,實驗結果對應表4。通過三種路段的結果可知,文中方法相比于經典霍夫變換法在實時性和正確性上具有很大優勢,相比于文獻[17]中的方法具有較好的實時性,在正確率上也稍有優勢。實驗結果表明,即使在道路有污跡、陰影、標志符等干擾信息、路面反光、強光照以及晚間路燈照射的路面上,也能很好地檢測出車道線,具有很好的魯棒性。

表2 不同算法在普通路段中的識別率和準確率比較

表3 不同算法在有大量陰影路段中的識別率和準確率比較

表4 不同算法在晚間路燈照射路段中的識別率和準確率比較
針對傳統霍夫變換法檢測車道線實時性不高等問題,提出一種基于改進概率霍夫變換的車道線快速檢測算法。首先通過一系列的圖像預處理工作來提高圖像處理的運算速度,接著運用Canny算子進行邊緣檢測,然后對累計概率霍夫變換法增加4個約束條件,運用改進后的PPHT檢測直線,最后通過核回歸模型擬合出正確車道線。實驗結果表明,該方法彌補了傳統霍夫變換法運算耗時、正準率低的缺點,相比于其他算法具有較好的實時性、準確性和魯棒性。