石林軍,余 粟
(上海工程技術(shù)大學(xué)工程實(shí)訓(xùn)中心,上海 201620)
隨著汽車行業(yè)的快速發(fā)展和計算機(jī)的廣泛應(yīng)用,我國汽車的擁有量越來越高,帶來交通便利的同時,交通事故也在逐年上升,越來越多人更關(guān)注汽車安全,同時,計算機(jī)技術(shù)在汽車方面應(yīng)用所占比重也越來越重。高級汽車輔助駕駛系統(tǒng) (advanced driver assist systems,ADAS)在汽車中的應(yīng)用越來越多,甚至無人駕駛汽車也開始發(fā)展起來,目前ADAS應(yīng)用通常是基于攝像機(jī),雷達(dá),紅外線或者攝像機(jī)和雷達(dá)多融合等傳感器來獲得道路信息,其中攝像機(jī)性價比最好,雷達(dá)和紅外線價格昂貴。其中機(jī)器視覺相當(dāng)于汽車的眼睛,為了實(shí)際的無人車行駛,機(jī)器視覺的研究顯得至關(guān)重要。
車道線檢測識別作為無人駕駛和ADAS系統(tǒng)中關(guān)鍵技術(shù)之一,基于機(jī)器視覺檢測車道線最常用。由于車道信息對于無人駕駛車輛系統(tǒng)中的道路安全改進(jìn)是必需的,因此車道的檢測是重要的任務(wù)。為了滿足實(shí)際無人駕駛的需求,提高擬合車道線算法的魯棒性和實(shí)時性也成了近幾年學(xué)者的追求。
從國內(nèi)外研究現(xiàn)狀來看,大多數(shù)方法都是針對特定路況 (如高速公路,城市道路)而特別設(shè)計的。目前比較流行的車道線檢測算法主要基于特征法和模型法?;谔卣鞯姆椒ㄖ饕峭ㄟ^車道線邊緣點(diǎn)的梯度、方向和灰度值顏色等等一些低級特征來檢測車道線[1],但是魯棒性很低,基于模型法有直線模型,B樣條模型,曲線模型等等[2-3],但是要么魯棒性不高,要么不夠?qū)崟r。結(jié)合模型法和特征法實(shí)現(xiàn)車道線精匹配是提高魯棒性和實(shí)時性較好的途徑。例如文獻(xiàn)[4-6]提出了根據(jù)車道線消失點(diǎn)約束特征點(diǎn)的幾種算法。文獻(xiàn)[7]提出了夜間提取車道線的算法,魯棒性很好。然而,如果車道標(biāo)記模糊和殘留,檢測精度可能會惡化。同樣,路面上的反射和污跡也會影響檢測結(jié)果。文獻(xiàn) [8]采用K-mean聚類像素點(diǎn)收斂最佳匹配車道線。文獻(xiàn) [10-11]運(yùn)用RANSAC擬合和跟蹤車道下。基于前人打的思想,下在本文中,我們介紹一種基于多約束條件的霍夫變換檢測車道的算法。首先,通過文獻(xiàn) [12]所提出的算法來提取感興趣區(qū)域 (ROI)。傳統(tǒng)的方法是用Canny算子提取邊緣信息,然后通過將邊緣信息映射到Hough空間來找到最佳的擬合直線。這嚴(yán)重依賴于原始圖像的邊緣信息。一旦路面上出現(xiàn)裂縫和陰影,該方法的準(zhǔn)確性可能會下降,本文從原始RGB圖像的每個顏色通道獲取信息,改變RGB的3個分量權(quán)重來灰度化圖像。此外,我們對圖像提取的二值圖提出幾個約束條件,消除了大量噪聲,接著通過Hough變換檢測并提取車道標(biāo)記。然后在提取的線段的基礎(chǔ)上,采用了基于概率表決程序估計消失點(diǎn),用消失點(diǎn)來約束線段[13]。最后對剩下有用的車道線進(jìn)行聚類處理。我們在本文的算法在大量的實(shí)驗(yàn)結(jié)果表明,所提出的方法優(yōu)于基于傳統(tǒng)的hough變換消失點(diǎn)估計約束方法和文獻(xiàn)[14]方法。最后基于理論分析和實(shí)驗(yàn)表明,所提算法檢測精度高,實(shí)時性好。
為了有效檢測圖像的同時減少處理時間,需要對對輸入的圖像進(jìn)行預(yù)處理。在本文中,圖像預(yù)處理包括ROI(Regio of interesting)裁剪,灰度化和降噪。通過安裝在移動車輛上的相機(jī)獲取的圖像通常包含除了車道標(biāo)記 (如背景和噪音)以外的一些無用信息。為了提高檢測速度,去除圖像干擾信息。一般來說,道路區(qū)域總是位于汽車的正面,除去下部份車頭和上部分天空,剩下的就是我們需要的區(qū)域。
1.1.1 提取ROI區(qū)域
預(yù)處理第一部分就是提取車道線圖像的ROI區(qū)域。為了提高檢測率并減少計算負(fù)擔(dān),我們的算法首先確定ROI[12]。由于道路信息主要位于原始圖像的中心部分,所以ROI可以被視為:
其中:I表示原始圖像,m,n,d分別表示圖像的高度,寬度和顏色深度,uproi和downroi分別表示背景的比例,選取一張車道線圖片為例,選定的ROI如圖1。
圖1 ROI和不同灰度化結(jié)果
1.1.2 邊緣檢測
在進(jìn)行邊緣檢測處理之前,我們需要將圖像從RGB色彩空間轉(zhuǎn)換為灰度圖像。RGB模型轉(zhuǎn)換為灰度空間的常用方程如下所示:
可以看出傳統(tǒng)的灰度化中,顏色的權(quán)重并不相同。但是,通過使用這個灰度,顏色信息將會丟失。在道路上,行車線的顏色通常是白色,黃色或紅色,總是與路面涂有高對比度的顏色。為了增強(qiáng)車道標(biāo)志信息的特征,我們使用了文獻(xiàn) [13]中提出的有效的方法。等式如所示:
兩種方法處理結(jié)果如圖2,很明顯可以看出文獻(xiàn)[5]的算法可以提高車道標(biāo)記強(qiáng)度值的質(zhì)量,對后續(xù)的準(zhǔn)確提取車道線特征很有幫助。
邊緣檢測的性能對于我們的系統(tǒng)是非常重要的。即使在惡劣的天氣或惡劣的場景下,該算法也必須是穩(wěn)健的,在這種情況下可能包含潛在的路線。在進(jìn)行邊緣檢測之前先對灰度圖進(jìn)行加權(quán)中值濾波處理[6],邊緣檢測有許多流行的方法,我們選擇Canny檢測作為我們的邊緣檢測器,即使對于低對比度圖像,它也可以更好地工作,本文方法處理效果如圖2(b)所示。
圖2 對比的二值圖
即使通過上述步驟大大消除了圖像中無用的信息,但如果直接利用Hough變換對二值圖像進(jìn)行處理,算法計算時間可能會較長,而且檢測精度不會太高。
通過以上的車道線圖像預(yù)處理,我們大大消除了無效點(diǎn),為Hough變換處理創(chuàng)造了有利的條件。而Hough變換檢測到的直線可能不是車道線。也許他們是污跡,護(hù)欄和路邊。為了消除這些干擾線,提高精度,我們設(shè)計了以下幾個約束條件。首先,車道標(biāo)線一般位于車輛上安裝的攝像頭拍攝的圖像的左右兩側(cè)。它們不是水平的或垂直的,它們的斜率的絕對值|θ|會約束于一個范圍(θmin<|θ|<θmax),如圖3所示,對該范圍的線段進(jìn)行檢測,這里:
其中:Hroi表示ROI的高度,Wroi表示ROI的寬度。如果候選線路超出范圍,我們將其視為干擾信息。其次,車道標(biāo)記可以被檢測為幾條不同的直線,這里以圖4為例,紅線和青色的線是我們需要檢測的車道線,橙色為干擾線,圖中的l2,l3。通過充分的實(shí)驗(yàn)驗(yàn)證,每兩個檢測到的車道標(biāo)線的角度差不能小于10°。當(dāng)找到一個候選線時,我們計算線與各個檢測線的角度差。如果有任何差異小于10°,我們將該候選線作為干擾信息,并將其刪除。通過上述方法,我們可以消除干擾線l2。
最后,由于車道有一定的寬度,車道線之間有一定的距離。我們首先在水平方向上確定ROI的中線,表示為:x=Hroi/2,如圖4所示,然后找出中線與所有檢測到的車道標(biāo)記之間的交點(diǎn)。彼此交叉點(diǎn)之間的距離應(yīng)大于閾值T。通過充分的實(shí)驗(yàn)驗(yàn)證,在所提出的算法中將T設(shè)置為Wroi/6。具體來說,當(dāng)我們獲得候選線時,我們計算中線和候選線之間的交叉點(diǎn),然后計算交叉點(diǎn)與檢查的車道標(biāo)線之間的所有距離。如果其中一個距離小于閾值,我們直接刪除候選行。因此,我們可以有效地消除路面圖像的污跡和邊緣。
圖3 ROI上檢測區(qū)域
圖4 示例限制線段的圖像
由于視野有限,大路上車道線連續(xù)、相互平行,車輛前方一定距離內(nèi)可以視為直線,Hough變換用于直線檢測時對噪聲不敏感,因此,我們采用霍夫變換提取車道標(biāo)記?;舴蜃儞Q實(shí)質(zhì)是從坐標(biāo)空間到參數(shù)空間的轉(zhuǎn)換,坐標(biāo)空間的直線對應(yīng)參數(shù)空間內(nèi)的一個點(diǎn),霍夫變換的基本思想是點(diǎn)與線之間的對偶性,即圖像空間中直線的斜率和截距對應(yīng)于參數(shù)空間中的一點(diǎn)。由于垂直線的斜率是無窮大的,因此Hough變換通過以下方程將圖像中的所有點(diǎn)轉(zhuǎn)換為極坐標(biāo)參數(shù)空間中的正弦曲線,表示為:
其中:(x,y)是圖像空間中的點(diǎn),幅度顯示圖像中存在線的概率。因此,檢測直線的任務(wù)已經(jīng)成為在參數(shù)空間中尋找峰值,有效地將檢測到的整體特征轉(zhuǎn)換為檢測局部特征。
基于二維直方圖技術(shù)的消失點(diǎn)檢測算法已被用于各種視覺系統(tǒng)。以前的算法取得了一些好的結(jié)果,但仍然無法保持精度和時間的均衡性能。最近的研究表明,消失點(diǎn)檢測可以轉(zhuǎn)換為一維直方圖搜索問題,這大大加快了程序。在本文中,我們基于類似思想以一種基于概率表決程序來估計消失點(diǎn),該算法優(yōu)點(diǎn)是消失點(diǎn)估計準(zhǔn)確,缺點(diǎn)是處理時間較長,車道線識別需要很高的實(shí)時性,所以一直不被學(xué)者采用。但是本文采用多約束限制的HOUGH變換,處理過后所剩的線段對數(shù)比較少,處理時間大量減少,在公共數(shù)據(jù)庫上測試我們的算法和文獻(xiàn) [14]liu等人的算法比較。我們的概率表決程序估計消失點(diǎn)算法在經(jīng)過上文改進(jìn)的霍夫變換提取特征線的基礎(chǔ)上,處理時間更短,具有更好的實(shí)時性。
車道線的方向相對集中,在消失點(diǎn)處相交,在圖像坐標(biāo)中找到消失點(diǎn),而樹木,文字和其他斑塊的陰影干擾可能出現(xiàn)在任何方向,因此我們可以用消失點(diǎn)來消除干擾線段。本文首先提出一種使用概率表決程序的魯棒消失點(diǎn)估計方法,基于上文提取的候選車道線上增加約束。為了考慮像素對準(zhǔn)誤差,在所提出的方法中引入表示形成線段的像素的取向如何對齊的線段強(qiáng)度τ。τ被定義為將較高的值分配給較長的和良好對齊的更清晰的線段,如下所示:
其中:li是長度,wi是由霍夫變換算法提取的線段的寬度。具有較高τ值的線段相關(guān)度更高。用霍夫變換檢測的線段模型如圖5所示。線段的厚度表示線段的強(qiáng)度。
對于一對線段(Li,Lj),認(rèn)為他的交點(diǎn)在圖像規(guī)劃α中被認(rèn)為是高斯分布Ω,如下:
其中:(x,y)∈Ω,(mij;x,mij;y)是圖像坐標(biāo)中的交點(diǎn)(Li,Lj),σij;x和σij;y是沿x軸和y軸的標(biāo)準(zhǔn)偏差。在這個等式中,假定高斯模型是各向同性的,則有:
其中:σi=α·(1/τi),α是比例因子。這個高斯模型對于具有較高線段強(qiáng)度值的一對(Li,Lj)具有更尖銳和更窄的分布,并且將較高的作為消失點(diǎn)的概率賦予交點(diǎn)周圍的區(qū)域。估計消失點(diǎn)的總體表決函數(shù)如下:
其中:N是線段的數(shù)量。最后,車道的消失點(diǎn)可以估計如下:
找到消失點(diǎn)后,通過消失點(diǎn)對檢測出的線進(jìn)行篩選,以消失點(diǎn)為中心畫以wi/10為直徑的小圓,經(jīng)過消失點(diǎn)上的小圓的特征線保留下來,其余線刪除,并且在陰影干擾的車道線識別效果良好。
車道線經(jīng)過本文算法中預(yù)處理過程得到的二值圖像。理想的二值圖像是只包括車道線的邊緣特征,但是往往因?yàn)橛嘘幱罢趽醯仍?,陰影邊緣也會被檢測出特征邊緣,在進(jìn)行了消失點(diǎn)約束車道線后的將車道線邊緣像素篩選了出來,圖5(a)為采集的一張車道線圖片,任意選取其中被陰影遮擋的一行,提取其二值圖像的像素點(diǎn)和灰度值之間的關(guān)系,如圖5(b)是未采用傳統(tǒng)的HT提取的結(jié)果,檢測到多個線段特征,圖5(c)是采用的本文算法改進(jìn)的HT的二值圖在這一行的像素與灰度值之間的關(guān)系,明顯看到干擾像素特征點(diǎn)變少了。其中的灰度值變化多次很明顯是樹影對車道線的干擾。
圖5 通過消失點(diǎn)HT變換提取特征點(diǎn)的過程
由于車道線在經(jīng)HT后經(jīng)常會產(chǎn)生多條經(jīng)過消失點(diǎn)的線,如圖6所示,我們對同一類的車道線進(jìn)行聚類,這里采用K-means對特征線聚類。
K-means聚類算法是很典型的基于距離的聚類算法,采用歐式距離作為相似性的評價指標(biāo),即認(rèn)為兩個對象的距離越近,其相似度就越大。車道線存在數(shù)目和幾何形狀特征不確定的問題。采用多次迭代的K-means聚類的方式,自動選擇最優(yōu)聚類中心通過聚類算法在縱向上將特征點(diǎn)組合,可以有效剔除孤立的特征點(diǎn),明確檢測目標(biāo),從而減少錯誤特征點(diǎn)的干擾。該算法認(rèn)為簇是由距離靠近的對象組成的,因此把得到緊湊且獨(dú)立的簇作為最終目標(biāo)。在車道線檢測里具體算法描述如下:
1)首先將經(jīng)過改進(jìn)的HOUGH變換提取的特征線圖像像素尋找距離特征線不大于d的特征點(diǎn)構(gòu)成為一個具有n個樣本數(shù)據(jù)對象的樣本數(shù)據(jù)集R={ri|i=1,2,···n}從數(shù)據(jù)集中任意選擇k個對象組成初始聚類中心集X={xj|j=1,2,···,k}。
2)將像素間的相似度定義為像素的差距,采用下式表示,計算樣本數(shù)據(jù)集與初始選擇的k個聚類中心的距離,將各個對象劃分到與它距離最小的簇:
3)對于每一簇j,從新計算該類的質(zhì)心:
式中,T為樣本點(diǎn)集合,N為樣本點(diǎn)數(shù)。
4)循環(huán)步驟2)和步驟3),直至質(zhì)心收斂。
這里選一張典型的經(jīng)過消失點(diǎn)約束的特征線車道線進(jìn)行K-mean聚類,結(jié)果如圖6所示。
圖6 圖上下兩部分分別為特征線聚類前后
文獻(xiàn)[14]車道線提取首先采用的是自適應(yīng)分割方法對路面區(qū)域進(jìn)行合理定位,然后用拉普拉斯濾波器消除外界干擾。其次,應(yīng)用線段檢測器檢測到的線段表示車道的結(jié)構(gòu)信息,用的是LSD(Line Segment Detector)檢測的線段。第三,通過定位和消失點(diǎn)限制去除非車道候選標(biāo)記。最后,從剩余的候選車道標(biāo)記中準(zhǔn)確提取車道。我們的算法和liu的方法如出一轍,但是我們用的更多的是形態(tài)學(xué)去限制特征線,用改進(jìn)的HOUGH變換提取特征線段,然后是基于概率表決程序估計消失點(diǎn)來約束候選車道線。為了驗(yàn)證本文的算法可用性,與liu的方法進(jìn)行比較,我們分別用了白天,晚上二種工況進(jìn)行測試,每類庫各250幀圖,在PC平臺上進(jìn)行試驗(yàn),算法使用硬件環(huán)境為 Intel i5 3320 CPU2.50 GHz,內(nèi)存為 4.0 GB,軟件是 WIN10系統(tǒng),VS2014+openCV2.0庫編程進(jìn)行了試驗(yàn)。定義基于傳統(tǒng)霍夫變換的消失點(diǎn)約束為A,文獻(xiàn)[14]為B,本文算法為C來表示,檢測統(tǒng)計結(jié)果如表1所示。
表1 不同算法在不同工況識別速度和處理時間
根據(jù)上表可以看出,本文所采用的算法在傳統(tǒng)HOUGH變換基礎(chǔ)上尋找消失點(diǎn)約束的算法上處理時間和錯誤率提高顯著,文獻(xiàn)[14]算法檢測的正確率稍高于本文提出的算法,但是本文算法平均處理時間比文獻(xiàn)[14]優(yōu)秀很多。
為驗(yàn)證本文所提出的算法檢測車道線的精確度、實(shí)時性和魯棒性,采集了晚上和白天的視頻數(shù)據(jù)進(jìn)行試驗(yàn)。隨機(jī)抽取檢測視頻中幾幀代表性圖片,如圖7。還是使用硬件環(huán)境為Intel i5 3320 CPU2.50 GHz,內(nèi)存為4.0 GB,軟件是WIN10系統(tǒng),VS2014+openCV2.0庫編程進(jìn)行了試驗(yàn)。
圖7 兩種天氣下視頻集環(huán)境下車道線的識別幀
在車道線識別程序的質(zhì)量評價中,實(shí)時性和識別率是最重要的指標(biāo).我們分別取測試過的陰天和晴天視頻集,篩選出匹配度不高和錯誤擬合的幀數(shù),檢測結(jié)果如表2所示。
表2 視頻統(tǒng)計結(jié)果圖
從表2晴天和陰天兩種工況測試的視頻段下的幀數(shù)檢測的正確率和平均檢測時間,可以看出,用本文算法對圖像預(yù)處理后,再經(jīng)過形態(tài)學(xué)多約束霍夫變換提取特征線,基于概率表決程序估計消失點(diǎn),用消失點(diǎn)再次約束特征線,再通過K-mean聚類特征點(diǎn),通過這三重優(yōu)化來擬合車道線,有效的提高了車道線識別率并減少了平均檢測時間。
車道線存在數(shù)目和幾何形狀特征不確定的問題,提出了以形態(tài)學(xué)多約束霍夫變換提取特征線,基于概率表決程序估計消失點(diǎn),再用消失點(diǎn)再次約束特征線,然后采用多次迭代的K-means聚類的方式,自動選擇最優(yōu)聚類特征線,可以有效剔除孤立的特征點(diǎn),明確檢測目標(biāo),從而減少錯誤特征點(diǎn)的干擾,如陰影、字標(biāo)、光照情況等因素的影響導(dǎo)致抗噪性能較差。大量實(shí)驗(yàn)表明,提出的算法具有很好的魯棒性、和錯檢率,實(shí)時性。