劉 萍 孫耀航
(陸軍軍官學(xué)院計(jì)算中心 合肥 230031)
隨著社會(huì)的進(jìn)步和發(fā)展,安全駕駛和汽車的簡(jiǎn)便操作越來(lái)越受到人們的重視。蘋果、谷歌和特斯拉等公司相繼推出了無(wú)人駕駛系統(tǒng),國(guó)內(nèi)的廠商也對(duì)此領(lǐng)域產(chǎn)生了高度興趣?;谌斯ぶ悄芎痛髷?shù)據(jù)的無(wú)人駕駛技術(shù),被認(rèn)為是消除交通安全問(wèn)題的最終方法。從美國(guó)DARPA挑戰(zhàn)賽[1]到中國(guó)未來(lái)智能車大賽,無(wú)人駕駛技術(shù)在全世界興起了一陣熱潮[1]。
對(duì)于無(wú)人駕駛系統(tǒng)來(lái)說(shuō),車道線檢測(cè)是非常重要的技術(shù)。到現(xiàn)在為止,已經(jīng)有一些基于機(jī)器視覺的無(wú)人駕駛技術(shù)得到了應(yīng)用。其中,一部分算法直接檢測(cè)道路的邊緣,而另一些算法首先利用道路的部分參數(shù)(例如顏色信息)來(lái)確定道路邊緣[2~5]。算法應(yīng)用的技術(shù)也有很大差別(霍夫變換、模版匹配和神經(jīng)網(wǎng)絡(luò)等)??偟膩?lái)說(shuō),有兩類方法用于車道線檢測(cè):基于特征的方法和基于模型的方法[6]?;谔卣鞯姆椒ㄍㄟ^(guò)探測(cè)數(shù)種低級(jí)特征的組合來(lái)確定車道的位置。這類方法要求車道線必須是粉刷清楚,不然就會(huì)失效[7~9]。顯然,基于特征的方法對(duì)于大城市主干道很有效率,但是對(duì)于次重要的路段,或者道路保養(yǎng)不及時(shí)的城市就容易失效。另外要注意的是,因?yàn)榛谔卣鞯姆椒▽?duì)于檢測(cè)的線的特征沒(méi)有細(xì)致的約束,所以很容易受到噪聲或者遮擋的影響。
本文提出了一種基于反透視變換的車道線檢測(cè)算法,將攝像頭拍攝的視頻圖像轉(zhuǎn)換為俯視圖,以檢測(cè)車道線。本方法可以利用現(xiàn)實(shí)道路的模型,例如車道長(zhǎng)度、路寬以及路況等。本算法的流程如圖1所示。

圖1 算法流程
城市道路刷有白色、黃色的各種標(biāo)線,而車道的檢測(cè)也就轉(zhuǎn)化為對(duì)圖像中這些標(biāo)線的檢測(cè)。圖像分割是最常用的檢測(cè)標(biāo)線的方法,圖像分割也經(jīng)常用于在圖像中確定物體或者邊緣的位置。更準(zhǔn)確地說(shuō),圖像分割是一個(gè)為圖像內(nèi)每個(gè)像素標(biāo)明一個(gè)標(biāo)簽的過(guò)程,而標(biāo)記了相同標(biāo)簽的像素有同樣的視覺特征。
圖像分割最簡(jiǎn)明的方法就是閾值法[10~11]。閾值法的原理是根據(jù)設(shè)定的閾值對(duì)灰度圖像進(jìn)行二值化,所以二值化的效果取決于閾值的選取方法。本文提出了一種基于全局的最優(yōu)閾值算法。在車道線檢測(cè)過(guò)程中,為了減小路緣和遠(yuǎn)處圖像不清晰的問(wèn)題,本算法將圖像中天空的部分裁剪掉,在裁剪后的圖像中,道路占圖像的絕大部分。考慮到車道分割對(duì)噪聲和速度的敏感性,本文采用了基于全局的最優(yōu)閾值法對(duì)圖像進(jìn)行二值化。
最優(yōu)閾值法的原則是通過(guò)研究圖片的漸變數(shù)據(jù)分布特征,確定作為閾值的灰度。嘉定一幅圖片的灰度被分為1~m,那么這幅圖片中灰度為m的像素?cái)?shù)為n,圖片的像素總數(shù)為

每個(gè)灰度值的像素出現(xiàn)的概率為

然后用一個(gè)證書K將像素分成C0和C1兩組:

C0組中像素出現(xiàn)的概率為

像素飽和均值為

C1組中像素出現(xiàn)的概率為

像素飽和度均值為

從1,2,…,m遍歷k的取值,找到使得方差最大的k值記為K。當(dāng)σ2()k取最大值時(shí)的K為最優(yōu)閾值。
圖像二值化的結(jié)果如圖2所示,圖2(a)為OTSU算法二值化的圖片,圖2(b)為本文算法二值化的圖片,可以看出我們的算法明顯噪聲更小。是圖像總體飽和度的均值。則:

兩組像素的方差為

圖2 圖像二值化
通過(guò)對(duì)圖像進(jìn)行二值化,凸顯了車道線的邊緣特征。針對(duì)車道線在俯視視角相交,導(dǎo)致不能對(duì)車輛進(jìn)行正確導(dǎo)向的問(wèn)題,需要利用反透視變換對(duì)圖像視角進(jìn)行校正。
由圖3所示,由于視角問(wèn)題,車道兩邊平行的車道線在圖像中顯示為在末端相交的直線。在遠(yuǎn)處會(huì)丟失很多圖像信息。通過(guò)反透視變換,我們可以抓取道路特征,以標(biāo)明車道線等信息[12~14]。

圖3 車道線模型的投影
在照相機(jī)平面上,一個(gè)目標(biāo)可以被看成是中心投影到平面上的。中心投影法是一個(gè)比較簡(jiǎn)單的投影方法,可以產(chǎn)生接近實(shí)際視覺效果的圖像。根據(jù)中心投影法的原則我們得到:

(u,v)是圖像坐標(biāo),Xw是參考坐標(biāo),s是比例因子。假定道路是絕對(duì)水平的,s的值就是固定的,M是可以通過(guò)圖像校準(zhǔn)計(jì)算的轉(zhuǎn)換矩陣。因此,對(duì)反透視變換矩陣的計(jì)算,就轉(zhuǎn)換為對(duì)公式Ax=b的求解。這個(gè)公式可以由奇異值分解很方便地求解。
固有參數(shù)(例如道路長(zhǎng)度、中心和視角變換)以及變化參數(shù)(例如車的相對(duì)位置)在處理前就進(jìn)行了校準(zhǔn)[8]。圖4展示了反透視變換后的二值圖像。

圖4 反透視變換后的車道線檢測(cè)
在反透視變換之后,車道線圖像的視角呈垂直俯視。接下來(lái),我們需要利用K-均值聚類算法對(duì)車道線進(jìn)行擬合。
K-均值聚類算法在數(shù)據(jù)挖掘領(lǐng)域有廣泛的應(yīng)用。雖然K-均值聚類算法的計(jì)算復(fù)雜度比較高,但是有幾種啟發(fā)式算法可以匯聚成此算法的最優(yōu)解[15~16]。
分配:將每個(gè)觀測(cè)值分配給均值最接近它的聚類。

即使某個(gè)觀測(cè)值滿足分配給多個(gè)聚類,每個(gè)Xp只能被分配給唯一的 S(t)。

當(dāng)分配結(jié)束之后,聚類的過(guò)程也就結(jié)束了。K-均值聚類算法的計(jì)算結(jié)果如圖5所示。

圖5 K-均值聚類算法及其車道線匹配
我們將小型攝像頭裝在家用轎車車頂和保險(xiǎn)杠上進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)圖像為實(shí)拍圖像。實(shí)驗(yàn)結(jié)果如以下所示。
1)圖6展示了崎嶇道路的車道線檢測(cè)。

圖6 崎嶇道路的車道檢測(cè)
2)圖7展示了對(duì)亮度明顯變化的車道線檢測(cè)。

圖7 亮度明顯變化的車道線檢測(cè)
城市道路車道線檢測(cè)是無(wú)人駕駛領(lǐng)域一項(xiàng)關(guān)鍵的計(jì)數(shù)。本文提出了一種基于反透視變換的車道線檢測(cè)算法。本算法不僅能夠有效地檢測(cè)車道線,而且能夠克服道路中不清晰、遮擋和干擾的問(wèn)題。我們也給出了說(shuō)明本算法有效性的實(shí)驗(yàn)。未來(lái)我們的研究方向,則是希望能夠辨別各種不同的車道線,以便車輛能夠根據(jù)車道標(biāo)志的不同做出反應(yīng)。