楊 益,何 穎
(西北工業(yè)大學(xué)自動(dòng)化學(xué)院,陜西 西安 710129)
車(chē)道線(xiàn)檢測(cè)是智能車(chē)實(shí)現(xiàn)自動(dòng)駕駛的基礎(chǔ)。目前車(chē)道線(xiàn)的檢測(cè)方法主要有2類(lèi):(1)第1類(lèi)算法是基于模型的方法,常用的車(chē)道模型有直線(xiàn)模型[1]、二次曲線(xiàn)模型[2]、線(xiàn)性雙曲線(xiàn)模型[3]、B 樣條曲線(xiàn)模型[4]等。該類(lèi)方法首先對(duì)道路原始RGB圖像進(jìn)行灰度轉(zhuǎn)換,然后通過(guò) Sobel、Laplace、Robert、Canny 等算子[5]提取車(chē)道線(xiàn)邊緣,最后通過(guò) Hough 變換[6]、最小二乘擬合[7]、RANSAC 擬合[8]等算法對(duì)邊緣進(jìn)行擬合,從而將車(chē)道線(xiàn)以數(shù)學(xué)模型的形式表達(dá)出來(lái)。雖然Hough變換等算法在參數(shù)估計(jì)中對(duì)消除離群點(diǎn)有一定的作用,但是在陰影或其他車(chē)輛、路牌、建筑等有明顯邊緣的物體的影響下,此類(lèi)方法會(huì)檢測(cè)出大量與車(chē)道線(xiàn)無(wú)關(guān)的邊緣,算法性能將會(huì)顯著降低。另外,此類(lèi)方法是基于灰度空間檢測(cè)邊緣的,不能區(qū)分檢測(cè)到的不同顏色的車(chē)道線(xiàn)。(2)第2類(lèi)算法是基于特征的方法,該類(lèi)方法一般先通過(guò)提取路面的顏色[9-10]、紋理[11]或邊緣梯度等特征[12],再用區(qū)域增長(zhǎng)的方法獲取道路區(qū)域,或用分類(lèi)的方法獲取車(chē)道線(xiàn)信息。而結(jié)構(gòu)化道路的路面特征比較單一,很難提取出具有較好可區(qū)分性的特征。如果不加入其它嚴(yán)格約束條件,很容易受到與路面特征相似的非道路區(qū)域和光照變化場(chǎng)景的干擾。
傳統(tǒng)基于顏色檢測(cè)車(chē)道線(xiàn)的方法一般都是在灰度空間下進(jìn)行的。該方法不能區(qū)分不同顏色的車(chē)道線(xiàn),尤其是黃色車(chē)道線(xiàn)的識(shí)別。因?yàn)辄S色車(chē)道線(xiàn)是不同方向行駛車(chē)輛的道路的分界線(xiàn),它的檢測(cè)對(duì)于保障智能車(chē)在路面安全行駛有很大作用。為了讓車(chē)道線(xiàn)檢測(cè)算法適應(yīng)不同天氣與光照環(huán)境,并且能夠區(qū)分黃色或白色車(chē)道線(xiàn),本文提出了一種基于RGB空間的像素段檢測(cè)方法。該方法通過(guò)對(duì)道路圖像從下往上隔行掃描,結(jié)合對(duì)黃色和白色這2種車(chē)道線(xiàn)顏色的先驗(yàn)知識(shí)劃分它們?cè)赗GB空間中位置分布,對(duì)掃描出的像素段進(jìn)行分類(lèi),然后根據(jù)這兩類(lèi)像素段的亮度值設(shè)置2組閾值,提取出黃色或白色車(chē)道線(xiàn)。相對(duì)文獻(xiàn)[9-10]的算法,主要做了以下幾點(diǎn)改進(jìn):(1)通過(guò)隔行掃描能夠從原圖自動(dòng)尋找存在黃色或白色這兩種不同顏色車(chē)道線(xiàn)的行。(2)通過(guò)區(qū)域劃分自動(dòng)辨識(shí)這兩種不同顏色的像素段,從而對(duì)整體進(jìn)行閾值估計(jì)。該閾值是根據(jù)當(dāng)前圖像環(huán)境改變的,屬于動(dòng)態(tài)閾值分割。(3)通過(guò)對(duì)提取的像素段的寬度約束和閾值的多行表決能夠有效地去除圖像各種噪聲的干擾。
由于基于RGB空間的圖像分割會(huì)受到天空顏色的影響,因此本文用藍(lán)色分量的均值投影法來(lái)劃分道路與天空分界線(xiàn)[13]。用 fb(i,j)表示圖像中像素點(diǎn)(i,j)的藍(lán)色分量值,則一幅M×N的圖像的投影法表示為:
投影圖中的最小值對(duì)應(yīng)的水平位置認(rèn)為是天空與道路的分界線(xiàn)。
圖1 多行動(dòng)態(tài)掃描算法流程圖
由于車(chē)道線(xiàn)顏色的深淺在不同視距下是變化的,為了更準(zhǔn)確地尋找分割閾值且節(jié)省處理時(shí)間,本文使用隔行動(dòng)態(tài)掃描法尋找存在黃色或白色車(chē)道線(xiàn)的行。由于圖像ROI下方4/5區(qū)域?yàn)榻晥?chǎng),相比上方遠(yuǎn)視場(chǎng)能更清晰地提取黃白像素段樣本,因此只對(duì)ROI下方4/5區(qū)域進(jìn)行掃描。假設(shè)圖像ROI大小為H×N,μr、μg分別為該行所有像素點(diǎn)的R、G分量均值,σr為R分量標(biāo)準(zhǔn)差。μ'g為集合n中像素點(diǎn)的G分量均值,fr(i,j)為像素點(diǎn)(i,j)的 R 分量值,搜索算法流程圖如圖1所示。
逐行掃描完,每塊最多會(huì)掃描出一行符合條件的行,一共8塊最多能掃描出8行,這樣就能提取到足夠多的樣本。圖2為通過(guò)該方法掃描所得的結(jié)果,橫線(xiàn)為被掃描出含有黃或白色車(chē)道線(xiàn)的行。
圖2 隔行掃描尋找出的存在黃色或白色車(chē)道線(xiàn)的像素行
圖3 RGB空間立方體與道路色彩分布范圍示意圖
在RGB模型中,不同光照下道路圖像的色彩分布接近高斯分布[14],在RGB空間的分布范圍如圖3所示。路面色彩的分布范圍集中在黑白之間的灰度空間區(qū)域附近,圖2下方4/5區(qū)域所有像素點(diǎn)的RGB值在RGB空間分布如圖4所示。可以發(fā)現(xiàn),除了一些黃色車(chē)道線(xiàn)的像素點(diǎn)偏離黑白對(duì)角線(xiàn)向(255,255,0)靠攏和白色車(chē)道線(xiàn)像素點(diǎn)分布在(255,255,255)附近外,其他幾乎所有的像素點(diǎn)都分布在對(duì)角線(xiàn)中間灰色空間附近。于是,對(duì)圖2道路中掃描出的行可以按公式(1)提取黃色或白色車(chē)道線(xiàn)像素。
Re為滿(mǎn)足條件的像素點(diǎn)序列。其中Thr=Pr(μr+fr×σr)為黃色或白色車(chē)道線(xiàn)像素R分量閾值,Thg=Pg(μg+fg×σg)為黃色或白色車(chē)道線(xiàn)像素G分量閾值,μr、μg、σr、σg分別為該行 R、G 分量的均值與標(biāo)準(zhǔn)差,fr、fg分別為R、G分量的調(diào)和因子。
圖4 圖2下方4/5區(qū)域所有像素點(diǎn)的值在RGB空間的位置分布圖
由于車(chē)道線(xiàn)中R分量與均值的差距比G分量與均值的差距大很多,fr的一般取值范圍為:
1.5 <fr<2
fg的一般取值范圍為:
0.8 <fg<1.5
在晴天光照下這兩個(gè)系數(shù)可以取高,在陰暗天氣這兩個(gè)系數(shù)可以適當(dāng)調(diào)低。
式(1)實(shí)質(zhì)上就是對(duì)掃描出的行中像素點(diǎn)按閾值提取,將行中Ir(u,v)>μr+fr×σr與 Ig(u,v)>μg+fg×σg的像素點(diǎn)提取出來(lái)作為黃色或白色車(chē)道線(xiàn)像素點(diǎn)。
為了防止該行中存在路面一些R、G亮度比較高的雜質(zhì)點(diǎn)的影響,需要將上面提取到的像素點(diǎn)進(jìn)行篩選,將像素相鄰的點(diǎn)歸為一段(只要兩個(gè)像素點(diǎn)的間隔不超過(guò)3個(gè)像素點(diǎn)的長(zhǎng)度,即可認(rèn)為相鄰),然后結(jié)合車(chē)道線(xiàn)的寬度信息對(duì)這些段的長(zhǎng)度加以約束,將過(guò)短和過(guò)長(zhǎng)的段濾除掉。本文對(duì)段的寬度給出一個(gè)參考約束范圍:
0.01 N <w <0.1N
其中N為圖像寬度,w為像素段的長(zhǎng)度。
不同光照條件下道路中的黃色車(chē)道線(xiàn)的顏色大小在RGB空間中的位置分布差異比較大。具體表現(xiàn)為當(dāng)天氣效果由晴到陰時(shí),黃色車(chē)道線(xiàn)的RGB值在圖5中由黃色 Y(255,255,0)向白色 W(255,255,255)移動(dòng),但是離W會(huì)有一定的距離,不會(huì)無(wú)限接近W。為了能夠既快速又準(zhǔn)確地將黃白像素段進(jìn)行顏色分類(lèi),本文直接根據(jù)黃白顏色在RGB空間與黑白對(duì)角線(xiàn)OW之間的夾角α的差異來(lái)判定,認(rèn)為上面像素段中的點(diǎn)向量(R,G,B)與 OW(255,255,255)夾角均值在α之內(nèi)的為白色車(chē)道線(xiàn)像素段,即在圖5多面體O-ABCW中。該多面體是由以O(shè)為頂點(diǎn),OA為母線(xiàn),以?shī)A角α繞OW旋轉(zhuǎn)而形成的圓錐體與RGB立方體所截后形成的。如果不在該區(qū)域就為黃色車(chē)道線(xiàn)像素段(前面的步驟已經(jīng)將所選像素段中的點(diǎn)變?yōu)樽罱咏黋W的點(diǎn))。從大量圖像的實(shí)驗(yàn)效果看,α不宜取得過(guò)大,過(guò)大會(huì)導(dǎo)致一些光照陰暗的黃色車(chē)道線(xiàn)被誤分為白色,過(guò)小則導(dǎo)致白色的范圍太小。本文將α的估計(jì)視為一個(gè)分布密度函數(shù)服從高斯分布的兩個(gè)類(lèi)的分類(lèi)問(wèn)題。根據(jù)相對(duì)熵理論得出的最小錯(cuò)誤準(zhǔn)則可以很好地估計(jì)這個(gè)分類(lèi)閾值[15]。
其中Pw(α)、Py(α)分別為以α角為隨機(jī)變量,將像素判別為白色或黃色的概率分布,σw(α)、σy(α)分別為以α角為隨機(jī)變量,將像素判別為白色或黃色的概率分布的均方差。由于一個(gè)像素段有多個(gè)像素,對(duì)像素段按如下過(guò)程分類(lèi):先求取像素段中每一個(gè)像素的顏色向量與OW的夾角,將這些向量夾角的均值αi作為像素段與OW的夾角進(jìn)行分類(lèi),結(jié)果按下式計(jì)算:
圖5 黃色或白色車(chē)道線(xiàn)像素段在RGB空間中的位置劃分
為了防止路面由于反光或逆光拍攝對(duì)像素段提取造成干擾,需要在每一行中選取置信度較高的像素段作為代表來(lái)進(jìn)行閾值估計(jì)。本文對(duì)黃白這2種像素段采用不同的標(biāo)準(zhǔn)進(jìn)行取舍。定義像素點(diǎn)的模值為‖(R,G,B)‖2。用該段內(nèi)所有像素點(diǎn)RGB的模值均值作為該段的模值,用模值最大的像素段作為該行的白色像素段代表。對(duì)黃色像素段,用前面對(duì)段進(jìn)行分類(lèi)時(shí)計(jì)算的段與OW的平均夾角αi最大的段作為該行黃色像素段代表。假設(shè)這里獲得該行白色代表段與黃色代表段分別為Sew與Sey,亮度均值分別為(μwr,μwg,μwb)、(μyr,μyg,μyb),標(biāo)準(zhǔn)差分別為(σwr,σwg,σwb)、(σyr,σyg,σyb),在高斯分布的假設(shè)下,概率置信度取σ,可以按下列兩組閾值來(lái)區(qū)分該行像素點(diǎn)中的白色與黃色車(chē)道線(xiàn)。
(1)當(dāng)該行中的像素點(diǎn)RGB值滿(mǎn)足如下條件時(shí)為白色車(chē)道線(xiàn):
(2)當(dāng)該行中的像素點(diǎn)RGB值滿(mǎn)足如下條件時(shí)為黃色車(chē)道線(xiàn):
對(duì)圖2經(jīng)過(guò)上述算法處理所得的結(jié)果如表1所示。
表1 各行通過(guò)本文算法計(jì)算出的閾值
從數(shù)據(jù)表1結(jié)合圖2可看出,由于第5行、第6行(圖2中由下往上)中不存在白色車(chē)道線(xiàn),因此白色閾值為空。對(duì)于最終閾值的選取,實(shí)驗(yàn)中嘗試了取這些數(shù)據(jù)的均值和最小值(Tyellowb取最大值)的方法。通過(guò)大量圖像檢測(cè)的結(jié)果來(lái)看,用均值求取的最終閾值雖然能夠很好抑制像素段中干擾數(shù)據(jù),但是求取的閾值偏大,不能將圖像中相對(duì)亮度比較低的白色車(chē)道線(xiàn)檢測(cè)出來(lái)。而用最小值能將不太明顯的白色車(chē)道線(xiàn)檢測(cè)出來(lái),但是容易受到野值影響而使得最終的閾值偏小,導(dǎo)致圖片中白色與黃色區(qū)域泛濫。結(jié)合上面兩類(lèi)因素,本文先對(duì)所有行的數(shù)據(jù)作窗口大小為3的中值濾波消除野點(diǎn)的影響,然后分別求取剔除極值點(diǎn)后的數(shù)據(jù)的每一項(xiàng)的均值與標(biāo)準(zhǔn)差,最后用下列公式對(duì)整幅圖像的閾值進(jìn)行估計(jì):
利用上面求得的2組閾值,將原道路圖像中滿(mǎn)足公式(2)的像素點(diǎn)賦值為(255,255,255),將滿(mǎn)足公式(3)的像素點(diǎn)賦值為(255,255,0),剩余的所有點(diǎn)全部賦值為(0,0,0),這樣就可將原道路圖像分割為只含白,黃,黑的三值圖像。表1中的數(shù)據(jù)經(jīng)過(guò)公式(2)、(3)計(jì)算求得的結(jié)果為=217.3,=219.3,=219.1,=220.1,=207.2,=205.0,處理效果如圖6所示。
圖6 圖2分割出的白、黃合成車(chē)道線(xiàn)圖
從圖6的檢測(cè)效果來(lái)看,原道路圖像中兩邊樹(shù)干的白色涂層和路標(biāo)還有黃色車(chē)道線(xiàn)左邊路面上的干擾痕跡都被最終的閾值屏蔽了。原圖中遠(yuǎn)視場(chǎng)的黃色車(chē)道線(xiàn)顏色比較淡,被最終的閾值劃分到了白色車(chē)道線(xiàn)的范圍內(nèi),但是這并不影響后續(xù)對(duì)車(chē)道線(xiàn)模型的重建。因此算法基本滿(mǎn)足后續(xù)處理的要求,達(dá)到了分割的效果。
圖7 各種環(huán)境下的道路與處理結(jié)果圖
本文中算法是在2 GB內(nèi)存,1.8 GHz主頻的PC機(jī)的Matlab平臺(tái)上實(shí)現(xiàn)的。實(shí)驗(yàn)處理了從視頻提取的1123幀1280×720圖像,每幅圖像平均運(yùn)行耗時(shí)1.2 s。下面列出部分特殊環(huán)境下的實(shí)驗(yàn)結(jié)果,如圖7所示。其中,圖7(a)左半部為霧霾天氣情況下拍攝的車(chē)道線(xiàn)原圖,右半部表示通過(guò)本算法檢測(cè)與辨識(shí)出的黃白車(chē)道線(xiàn)重構(gòu)圖;圖7(b)為路面存在干擾痕跡情況下的原圖和重構(gòu)結(jié)果;圖7(c)為存在車(chē)道線(xiàn)被車(chē)輛遮擋和部分陰影時(shí)的情況;圖7(d)為左側(cè)存在陰影和前方存在強(qiáng)光照射時(shí)的情況。
由上述實(shí)驗(yàn)結(jié)果可知,在前述幾種不同程度的惡劣環(huán)境下本文提出的算法都有比較好的檢測(cè)效果。為了測(cè)試本文算法檢測(cè)車(chē)道線(xiàn)的精確度,搜集了100張各種環(huán)境下的結(jié)構(gòu)化路面圖像作為測(cè)試集。所有的圖片都縮放到600×800大小。將檢測(cè)結(jié)果與Canny算子檢測(cè)的邊緣作對(duì)比,分別將本文提出的算法檢測(cè)得到的車(chē)道線(xiàn)的邊緣和Matlab實(shí)現(xiàn)的Canny算子檢測(cè)到的邊緣的結(jié)果疊加到測(cè)試圖像上。找20個(gè)普通學(xué)生作簡(jiǎn)短的培訓(xùn)告知邊緣的概念,讓他們對(duì)測(cè)試結(jié)果打分。打分分為3個(gè)方面:(1)檢測(cè)到的邊緣與真實(shí)邊緣的總體吻合程度;(2)無(wú)漏檢的邊緣;(3)無(wú)虛假邊緣。打分分為3個(gè)等級(jí):1(差)、2(一般)、3(好)。將各個(gè)等級(jí)獲得的頻數(shù)統(tǒng)計(jì)如表2和表3所示,最后的平均意見(jiàn)得分(Mean Opinion Score,MOS)用頻數(shù)對(duì)分?jǐn)?shù)作加權(quán)平均。
表2 本文提出算法檢測(cè)的打分結(jié)果
表3 Canny算子檢測(cè)的打分結(jié)果
由表2和表3可知,如果將總體吻合度的打分結(jié)果優(yōu)于2(一般)作為正確的標(biāo)準(zhǔn),本文提出的算法正確檢測(cè)率達(dá)到98.5%,優(yōu)于Canny算子檢測(cè)的正確率86.7%。在漏檢邊緣方面,本文算法性能與Canny算子在大多數(shù)情況下相當(dāng);Canny算子主要是在模糊的圖像中漏檢幾乎全部邊緣,而本文的算子則基本上只在遠(yuǎn)視場(chǎng)處漏檢邊緣。在虛假邊緣方面,Canny算子檢測(cè)出大量難以消除的虛假邊緣;這些虛假邊緣極大地影響了Canny算子整體吻合度;本文算法幾乎沒(méi)有產(chǎn)生虛假邊緣。
本文提出了一種基于RGB空間的黃色或白色車(chē)道線(xiàn)檢測(cè)與辨識(shí)算法。該算法通過(guò)多行掃描提取出置信度比較高的能代表原道路圖像中黃色或白色這兩種不同顏色車(chē)道線(xiàn)的像素段作為樣本,并通過(guò)像素段在RGB空間的分布差異進(jìn)行分類(lèi),估計(jì)出黃色或白色車(chē)道線(xiàn)的閾值。實(shí)驗(yàn)結(jié)果表明,在結(jié)構(gòu)化道路下,該算法具有比較高的抗干擾性,能夠根據(jù)光照等環(huán)境的變化自動(dòng)調(diào)整閾值,快速?gòu)脑瓐D中準(zhǔn)確提取出不同顏色的車(chē)道線(xiàn),減輕了后續(xù)對(duì)車(chē)道線(xiàn)顏色分類(lèi)和車(chē)道線(xiàn)模型重建工作的難度,能夠應(yīng)用于車(chē)輛視覺(jué)導(dǎo)航與自動(dòng)駕駛中。
[1]Collado J M,Hilario C,De la Escalera A,et al.Detection and classification of road lanes with a frequency analysis[C]//Proceedings of the 2005 IEEE Intelligent Vehicles Symposium.Nevada,USA,2005:78-83.
[2]Lu W N,Zheng Y C,Ma Y Q,et al.An integrated approach to recognition of lane marking and road boundary[C]//Proceedings of the 1st International Workshop on Knowledge Discovery and Data Mining.Adelaide,Australia,2008:649-653.
[3]Chen Q,Wang H.A real-time lane detection algorithm based on a hyperbola-pair model[C]//Proceedings of the 2006 IEEE Intelligent Vehicles Symposium.Tokyo,Japan,2006:510-515.
[4]Wang Y,Teoh E K,Shen D.Lane detection and tracking using B-snake[J].Image and Vision Computing,2004,22(4):269-280.
[5]段瑞玲,李慶祥,李玉和.圖像邊緣檢測(cè)方法研究綜述[J].光學(xué)技術(shù),2005,31(3):415-419.
[6]Matas J,Galambos C,Kittler J.Robust detection of lines using the progressive probabilistic Hough transform[J].Computer Vision and Image Understanding,2000,78(1):119-137.
[7]王偉莉.車(chē)輛安全行駛輔助導(dǎo)航研究——車(chē)輛超車(chē)輔助導(dǎo)航[D].西安:西北工業(yè)大學(xué),2007.
[8]宋衛(wèi)艷.RANSAC算法及其在遙感圖像處理中的應(yīng)用[D].北京:華北電力大學(xué),2011.
[9]胡驍,李歲勞,吳劍.基于特征顏色的車(chē)道線(xiàn)檢測(cè)算法[J].計(jì)算機(jī)仿真,2011,28(10):344-348.
[10]覃勛輝.基于視覺(jué)的車(chē)輛導(dǎo)航參數(shù)提取方法[D].西安:西北工業(yè)大學(xué),2012.
[11]Kong H,Audibert J Y,Ponce J.General road detection from a single image[J].IEEE Transactions on Image Processing,2010,19(8):2211-2220.
[12]王永忠,王曉云,文成林.梯度點(diǎn)對(duì)約束的結(jié)構(gòu)化車(chē)道線(xiàn)檢測(cè)[J].中國(guó)圖象圖形學(xué)報(bào),2012,17(6):657-663.
[13]盧衛(wèi)娜.車(chē)輛視覺(jué)導(dǎo)航方法研究[D].西安:西北工業(yè)大學(xué),2006.
[14]劉志強(qiáng),仲晶晶,汪澎,等.不確定背景環(huán)境下車(chē)道檢測(cè)技術(shù)的研究[J].中國(guó)安全科學(xué)學(xué)報(bào),2009,19(12):159-164.
[15]Mehmet Sezgin,Bulent Sankur.Survey over image thresholding techniques and quantitative performance evaluation[J].Journal of Electronic Imaging,2004,13(1):146-168.