邱 東,翁 蒙,楊宏韜
(長春工業(yè)大學(xué) 電氣與電子工程學(xué)院,吉林 長春 130012)
車道線檢測技術(shù)是無人駕駛的核心技術(shù),其檢測的正確與否直接決定了行車是否安全[1]。2018年春晚,百度Apollo平臺在珠海分會場的港珠澳大橋上上演了無人車駕駛[2],體現(xiàn)了中國自動駕駛技術(shù)的日漸成熟。目前,基于國內(nèi)外發(fā)展現(xiàn)狀,車道線檢測的算法可大致分為兩種, 分別是基于特征[3]和基于模型[4]的分割方法。Y. Su等[5]于2018年提出了一種基于立體平臺魯棒消失點約束的車道檢測方法,該方法在不考慮任何車道模型參數(shù)的情況下,對直線車道和曲線車道都能實現(xiàn)良好的檢測。J. Liu等[6]提出了一種有效、魯棒的高速公路車道檢測算法。它利用霍夫變換擬合道路俯視圖的車道線,對所有的車道線進行聚類后,提取每個類別中最具代表性的車道線,然后進行后處理。W. X. Wei等[7]利用改進的Hough變換法實現(xiàn)車道線檢測,通過比較前后兩幀車道線的斜率,在先前檢測到的車道線區(qū)域附近進行區(qū)域限制,設(shè)置感興趣區(qū)域(ROI)并且執(zhí)行對角點像素的搜索,以便對角點部分進行重建。尤小泉等[8]采用分塊變換與預(yù)測相結(jié)合的方法,在極大降低算法復(fù)雜度的同時能夠?qū)澋捞幍能嚨谰€進行有效的檢測,能有效地降低計算量,提高車道檢測的實時性。
文中就實時性和準(zhǔn)確率兩個方面提出一種基于改進概率霍夫變換的車道線快速檢測方法。該方法首先對圖像進行感興趣區(qū)域提取,再合理選取紅、綠、藍三色通道的比例對圖像進行灰度化處理,并通過中值濾波法對圖片進行濾波去噪;在采用OTSU算法進行閾值處理之后,通過Canny算子對車道線進行邊緣提??;其次從車道線長度、車道線斜率、車體寬度以及車道寬度4個方面對累計概率霍夫變換法增加4條約束條件以提高檢測的準(zhǔn)確率和實時性;然后運用改進的累計概率霍夫變換法進行車道線的檢測,消除干擾線和偽車道線;最后通過回歸分析法擬合出正確的車道線。
車輛行駛時,處理圖像是實時的,為減少冗余的計算量以保證快速地計算數(shù)據(jù),就必須對原始圖像進行預(yù)處理。圖像預(yù)處理的主要目的就是剔除無關(guān)信息,增強有關(guān)信息的可檢測性。文中的圖像預(yù)處理工作有:感興趣區(qū)域(ROI)的提取、圖像灰度化、濾波去噪和閾值處理。
相機所拍攝的圖片有很大一部分對車道線的提取不起作用,如:護欄,天空,路燈等,反而加大了工作量,對此,需對無用的信息加以剔除以保證圖片處理的實時性。由于相機以一定的位姿固定在車上,考慮到實際情況,取圖片高度的1/2,即將下半?yún)^(qū)域作為研究區(qū)域。原圖如圖1(a)所示,感興趣區(qū)域如圖1(b)所示。
為提高圖像的處理速度,需對原始的RGB圖像做灰度化處理,即將彩色空間的圖像轉(zhuǎn)換為灰度圖像。一般情形下,灰度化公式采?。?/p>
Gray=0.299×R+0.587×G+0.144×B
(1)
其中,R,G,B分別為紅、綠、藍三色通道的值,取值范圍為[0,255]。但以上式灰度化的圖像會丟失大量色彩信息,為增強道路標(biāo)識信息,又考慮到車道線一般為白色(255,255,255)和黃色(255,255,0),故本次圖像灰度化采取為:
Gray=0.5×R+0.5×B
(2)
灰度圖如圖1(c)所示。
相機在拍取照片時,都會帶有一定的噪聲,而噪聲對圖像處理會造成很多負面影響,中值濾波可以消除孤立噪聲并且可以很好地保持邊緣信息。中值濾波的基本思想是:根據(jù)模板的大小,將板內(nèi)所有像素點的灰度值進行排序,選取中間的灰度值來代替鄰域各像素點的灰度值,可表示為:
g(x,y)=med{f(x-k,y-l),(k,l∈W)}
(3)
其中,g(x,y)為處理后的圖像,f(x,y)為原圖像,W為模板大小。本次模板選為3×3。
圖1 預(yù)處理
灰度化處理及去噪之后需對圖像進行閾值處理,將圖像灰度值置為0或255,經(jīng)過歸一化后即將灰度值置為0或1。閾值處理后的圖像不再涉及多級灰度值,使得處理變得簡單。目前,閾值處理的方法可分為3種,分別是:全局閾值處理法、局部閾值處理法和自適應(yīng)閾值處理法。全局閾值處理法(global threshold method)對每一幅圖計算一個單一的閾值,將每個像素的灰度級與閾值作比較,若大于閾值,則為背景,若小于閾值,則為前景。局部閾值處理法(local threshold method)以像素的領(lǐng)域信息為基礎(chǔ)來計算每個像素的閾值,若圖像中一個像素的灰度級大于在該點閾值面的計算值,則將該像素點標(biāo)記為背景,否則為前景。由于受光照、陰影等的影響,若對所有圖像采用同一閾值進行圖像二值化,會使圖像處理變得不準(zhǔn)確,甚至?xí)^濾掉很多有用信息,因此,本次閾值處理采取自適應(yīng)閾值算法—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表示前景點數(shù)占圖像總像素的比例,平均灰度為U0;W1表示背景點數(shù)占圖像總像素的比例,平均灰度為U1。當(dāng)G取Gmax時,閾值T為最佳閾值,即T=W0×U0+W1×U1。大津二值化法處理結(jié)果如圖2(a)所示。
常用于邊緣檢測的算子有Sobel,Prewitt,Canny,Robert,Laplacian等。Sobel算子檢測邊緣的速度快,計算量小,由于引入了平均元素,因而對圖像中的隨機噪聲有一定平滑作用,對灰度漸變低噪聲的圖像有較好的檢測效果,但只能檢測水平和垂直線方向的邊緣,對于紋理較為復(fù)雜的圖像,邊緣檢測效果不理想。Robert是一種利用局部差分算子尋找邊緣的算子,定位比較精確,但由于不包括平滑,所以對于噪聲比較敏感。Laplacian算子獲得的邊界是比較細致的邊界,反映的邊界信息包括了許多的細節(jié)信息,但是所反映的邊界不是太清晰。
由于Canny算子具有良好的抑制噪聲和精確定位邊緣的能力[11],故本次邊緣檢測采用Canny算子。Canny算子將圖像與Gauss平滑濾波器進行卷積,得到信噪比(SNR)較高的圖像,能起到很好地抑制噪聲的效果;其次,通過卷積算子[12]:
(5)
求得x,y方向的一階偏導(dǎo)數(shù)進而求出梯度的幅值和方位角;再通過非極大值抑制(NMS)保留幅值局部變化最大的點;最后采取雙閾值進行邊緣的檢測和連接,通過高閾值得到的邊緣圖像,含有較少的虛假邊緣,且邊緣不可能實現(xiàn)閉合,若在斷點的8鄰域點中尋找滿足的低閾值點,再根據(jù)收集新的邊緣,就可實現(xiàn)圖像邊緣的閉合。邊緣檢測的結(jié)果如圖2(b)所示。
圖2 閾值處理及邊緣檢測
通過上述處理,已在很大程度上降低了圖像處理的計算量,但如果用累計概率Hough變換法直接對圖像進行車道線檢測,由于受到臨近車道線,護欄等影響,在提取本車道線時,在一定程度上降低了直線檢測的準(zhǔn)確性。因此,對基于累計概率Hough變換檢測車道線法加以改進,通過車道模型進行分析,增加以下四個約束條件,模型如圖3所示。
圖3 道路分析模型
(1)對線段長度設(shè)定閾值。
在檢測對向和同向車道分界線時,根據(jù)《道路交通標(biāo)志和標(biāo)線》規(guī)定,可跨越對向和同向行道分界線實線長不短于2 m,間隔長不短于4 m。由于相機固定在車上且通過逆透視變換標(biāo)定完成,二者位姿不會發(fā)生改變,但受路面陰影、污跡以及路旁護欄等影響,會出現(xiàn)誤檢的情況。此時,對圖像中檢測的直線長度設(shè)定閾值,可有效刪除干擾線,步驟為:通過逆透視變換獲得鳥瞰圖,根據(jù)圖像中兩像素點的距離與真實世界中兩點距離的比例關(guān)系進行換算,若真實世界中直線的距離小于1 m,就剔除該直線。
(2)對左右車道線斜率設(shè)定閾值。
當(dāng)車輛在本車道行駛時,左車道線斜率θ1=(0,π/2),右車道線斜率θr=(π/2,π),則|θ|=[θmin,θmax]。由于車體本身有一定的寬度,且相機一般處于車體中央,結(jié)合實際情況,通過大量的實驗驗證,只對以下范圍內(nèi)的直線做檢測:
(6)
(3)以距離為條件篩除干擾線。
(4)以角度為條件篩選偽車道線。
由于車道寬度是固定的,經(jīng)過多次試驗可知,在圖像中單個車道的左右車線的角度不會小于12°,當(dāng)確定一條候選線時,計算與兩側(cè)車道方向所有直線與候選線的夾角,若有與之夾角小于12°的直線就剔除。為驗證所選取角度的合理性,文中做了大量實驗,選取3 623幀圖片進行分析,在已知正確車道的前提下,基于消失點約束,計算每個車道左右兩條線的夾角,表1為實驗結(jié)果,表示能檢測到的車道最小夾角和圖片幀數(shù)占比情況。對于圖3中的模型,若直線L4為車道線,可計算所有直線與L4的夾角,以L4,L7的夾角β1為例,若β1<12°,則剔除線段L7。
表1 檢測出的最小車道角度及占比情況
由于經(jīng)典Hough變換計算量較大,很難保證實時性,為改善這個不足,文中采用累計概率霍夫變換(PPHT)對直線進行檢測,PPHT是經(jīng)典霍夫變換的一種改進算法[13-14]。經(jīng)典Hough變換的基本思想是利用點和線的對偶性,將圖像中的曲線轉(zhuǎn)換為參數(shù)空間的一點[15-16]。其在圖像中沿著線累積點,以獲取Hough參數(shù)空間(r,θ)的投票,根據(jù)設(shè)定的閾值,最終確定圖像空間中的曲線。笛卡爾坐標(biāo)和參數(shù)空間(r,θ)中的直線方程表示為:
f(x,y)=kx+b-y=0
(7)
f(r,θ)=xcosθ+ysinθ-r=0
(8)
式(7)中,k表示直線的斜率,b表示截距;式(8)中,r表示到幾何垂線的距離,θ表示r與X軸之間的夾角。由于空間參數(shù)與線的參數(shù)有關(guān),又可表示為:
(9)
對平面直角坐標(biāo)系而言,若圖像中有一條直線,那么直線上所有點在參數(shù)空間上對應(yīng)無數(shù)條直線,而這些直線必定相交于同一點,即可確定對應(yīng)的k,b,這就達到了檢測直線的目的;對極坐標(biāo)系而言,直線上所有點在參數(shù)空間對應(yīng)無數(shù)條曲線,而曲線相交對應(yīng)的點即可確定r,θ的值,原理如圖4所示。計算時,在參數(shù)空間中建立一個二維數(shù)組累加器A,但不同的坐標(biāo)系所對應(yīng)的取值不同,平面直角坐標(biāo)系的二維數(shù)組累加器分別對應(yīng)k和b的取值范圍,極坐標(biāo)系中對應(yīng)r和θ的取值范圍,在參數(shù)計算表決結(jié)果中計算出A(k,b)或A(r,θ)的峰值,但在尋找直線時,不直接選取最大的峰值,一般會選取前幾個峰值所對應(yīng)的參數(shù)以保證直線檢測的準(zhǔn)確性。
(a)平面坐標(biāo)系下的Hough變換原理
(b)極坐標(biāo)系下的Hough變換原理
與經(jīng)典Hough不同的是,PPHT無需對邊緣每一個像素點進行檢測,只需從點集中隨機選取一個像素點進行分析。PPHT算法具體步驟如下:
(1)從每個區(qū)間點集中隨機選取一個像素點,且每個區(qū)間對應(yīng)一個累加器,在參數(shù)空間下計算θ對應(yīng)的r值,對應(yīng)的累計器A(r,θ)加1;
(2)從點集中刪除該點并更新累加器;
(3)根據(jù)設(shè)定的閾值,若累加器的值大于閾值,則表示已檢測到直線,最后再刪除該直線上所有的點;
(4)重復(fù)以上3個步驟,直至點集為空。
經(jīng)概率霍夫變換后,累加器閾值選取的不恰當(dāng)會出現(xiàn)誤檢的情況,再者受噪聲的影響,檢測出的直線可能不連續(xù)也可能偏離原直線,會帶來更差的效果;除此之外,對于虛線車道,檢測出的直線原本就斷斷續(xù)續(xù),但都處于同一直線上。針對這些問題,采用回歸分析對檢測出的直線進行擬合。對直線上的像素點建立的一元回歸模型可表示為:
yi=α0+αixi+λi,i=1,2,…n
(10)
考慮到文中要檢測的是車道線,回歸模型的選取應(yīng)具備穩(wěn)健性和良好的邊界自適應(yīng)性,因此本次回歸模型選取為核回歸(kernel regression,KR)模型。根據(jù)Taylor級數(shù)展開估計鄰域內(nèi)像素點的值,展開式可表示為:
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分別表示回歸函數(shù)的i階導(dǎo)數(shù)和微分信息,而{αn}N可用加-權(quán)最小二乘法求得,可表示為:
(12)
其中,K為核函數(shù),h為窗寬。通過以上步驟可以很好地實現(xiàn)直線擬合。
為充分驗證文中方法具有較高的準(zhǔn)確性、實時性和魯棒性,本次實驗采用經(jīng)典霍夫變換法以及文獻[17]中的方法與文中方法作比較。文獻[17]的基本思想是:利用投影原理等先驗知識改進區(qū)域生長法,接著分割圖像并劃分道路的邊界區(qū)域,然后通過融合邊緣檢測數(shù)據(jù)得到準(zhǔn)確的車道線特征點集合,車道檢測中則采用Hough變換提取直線段來匹配道路直線模型[17]。本次實驗基于的硬件平臺是:Intel(R) Core(TM) i7-7700 CPU3.60 GHz,內(nèi)存為8 G,系統(tǒng)為WIN10,軟件為:VS2013+OpenCV3.0.0。為充分驗證文中算法的優(yōu)越性,本次實驗選取7種不同的路況進行測試,分別是普通路況(路面無任何干擾因素)、帶有污跡的路況、帶有陰影的路況、帶標(biāo)志符干擾的路況、反光路面、強光照路況以及晚間路燈照射的路況,路況原圖與測試結(jié)果如圖5所示。
(a)普通路況及其檢測結(jié)果
(b)帶污跡的路況及其檢測結(jié)果
(c)帶陰影的路況及其檢測結(jié)果
(d)標(biāo)志符干擾及其檢測結(jié)果
(e)反光路面、強光照情形及其檢測結(jié)果
(f)晚間路燈照射路況及其檢測結(jié)果
表2~表4為三種方法在實時性和準(zhǔn)確性的比較結(jié)果。為加強對比性以及驗證文中方法的普遍適用性,本次對比在三種路段分別進行試驗,第一個路段為普通路段,視頻總幀數(shù)為3 698幀,實驗結(jié)果對應(yīng)表2;第二個路段為有大量陰影的路段,視頻總幀數(shù)為1 689幀,實驗結(jié)果對應(yīng)表3;第三個路段為晚間路燈照射路段,視頻總幀數(shù)為2 612幀,實驗結(jié)果對應(yīng)表4。通過三種路段的結(jié)果可知,文中方法相比于經(jīng)典霍夫變換法在實時性和正確性上具有很大優(yōu)勢,相比于文獻[17]中的方法具有較好的實時性,在正確率上也稍有優(yōu)勢。實驗結(jié)果表明,即使在道路有污跡、陰影、標(biāo)志符等干擾信息、路面反光、強光照以及晚間路燈照射的路面上,也能很好地檢測出車道線,具有很好的魯棒性。
表2 不同算法在普通路段中的識別率和準(zhǔn)確率比較
表3 不同算法在有大量陰影路段中的識別率和準(zhǔn)確率比較
表4 不同算法在晚間路燈照射路段中的識別率和準(zhǔn)確率比較
針對傳統(tǒng)霍夫變換法檢測車道線實時性不高等問題,提出一種基于改進概率霍夫變換的車道線快速檢測算法。首先通過一系列的圖像預(yù)處理工作來提高圖像處理的運算速度,接著運用Canny算子進行邊緣檢測,然后對累計概率霍夫變換法增加4個約束條件,運用改進后的PPHT檢測直線,最后通過核回歸模型擬合出正確車道線。實驗結(jié)果表明,該方法彌補了傳統(tǒng)霍夫變換法運算耗時、正準(zhǔn)率低的缺點,相比于其他算法具有較好的實時性、準(zhǔn)確性和魯棒性。