邢艷云,于波
(1.天津職業(yè)技術(shù)師范大學(xué)汽車與交通學(xué)院,天津 300222;2.中國(guó)汽車技術(shù)研究中心汽車工程研究院,天津 300162)
近年來(lái)智能交通系統(tǒng)飛速發(fā)展,駕駛輔助系統(tǒng)得到越來(lái)越多的汽車生產(chǎn)廠家的重視,而車輛檢測(cè)作為智能交通系統(tǒng)和駕駛輔助系統(tǒng)的重要組成部分,也一直是一個(gè)熱門的研究領(lǐng)域。目前車輛目標(biāo)的檢測(cè)算法根據(jù)是否存在運(yùn)動(dòng)信息分為兩類:(1)利用車輛的運(yùn)動(dòng)信息進(jìn)行檢測(cè),如背景差分法[1]、幀間差分法[2]、光流法[3]等。該類方法能夠在簡(jiǎn)單理想的情況下獲得較好的檢測(cè)效果,但過(guò)于依賴車輛的運(yùn)動(dòng)信息,當(dāng)失去車輛的運(yùn)動(dòng)信息或車輛靜止時(shí)車輛檢測(cè)效果很不理想;(2)檢測(cè)方法則不依賴于車輛的運(yùn)動(dòng)信息,這類方法一般從車輛本身的特征著手,根據(jù)所用特征的不同又可以分為基于顏色、陰影和紋理特性的方法[4-6],基于建模和模板匹配的方法[5]和基于統(tǒng)計(jì)和機(jī)器學(xué)習(xí)的方法[7-8〗。基于顏色和紋理特征的檢測(cè)方法研究的是車輛與非車輛在顏色與紋理的差異,從而實(shí)現(xiàn)車輛的檢測(cè),該方法的特點(diǎn)是對(duì)特征明顯的車輛能夠?qū)崿F(xiàn)較好的檢測(cè),但對(duì)于與地面顏色和紋理接近的車輛容易漏檢;基于建模和模板匹配的檢測(cè)方法的特點(diǎn)是需要建立車輛模型,然后將測(cè)試圖片與模型進(jìn)行匹配,從而得到目標(biāo)車輛,該方法對(duì)模型的要求較高,當(dāng)測(cè)試圖片與模型不一致時(shí),容易受到噪聲的干擾;基于統(tǒng)計(jì)和機(jī)器學(xué)習(xí)的方法是采用統(tǒng)計(jì)分析的思想,該方法通過(guò)提取適合車輛檢測(cè)的特征,利用神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)等方法進(jìn)行學(xué)習(xí)檢測(cè),識(shí)別準(zhǔn)確度高,但需要大量樣本進(jìn)行分類器學(xué)習(xí),并且不同分類器間性能也有差異,計(jì)算量較大。本文作者通過(guò)學(xué)習(xí)以上方法提出了基于水平特征的車輛檢測(cè)算法,該方法不依賴于車輛的運(yùn)動(dòng)信息,能夠快速地實(shí)現(xiàn)車輛目標(biāo)檢測(cè)。
為了防止圖片中噪聲對(duì)識(shí)別的影響,首先對(duì)圖片利用加權(quán)平均濾波算法進(jìn)行濾波處理,濾波算法的算子為
(1)
圖像濾波后對(duì)圖像進(jìn)行邊緣檢測(cè)[9],由于Sobel算法是一種較成熟的微分邊緣檢測(cè)算法,該算法計(jì)算簡(jiǎn)單,且能產(chǎn)生較好的檢測(cè)效果,對(duì)噪聲具有平滑作用,可以提供較為精確的邊緣方向信息。Sobel算子是一階導(dǎo)數(shù)的邊緣檢測(cè)算子,使用兩個(gè)方向算子(垂直算子和水平算子),對(duì)圖像進(jìn)行卷積運(yùn)算,得到兩個(gè)矩陣,再求這兩個(gè)矩陣對(duì)應(yīng)位置的兩個(gè)數(shù)的均方根,得到一個(gè)新的矩陣,即為灰度圖像矩陣中各個(gè)像素點(diǎn)的梯度值。
在算法實(shí)現(xiàn)過(guò)程中,通過(guò)3×3模板作為核與圖像中的每個(gè)像素點(diǎn)做卷積和運(yùn)算,然后選取合適的閾值以提取邊緣。Sobel算子水平方向和垂直方向的卷積模板如下:
(2)
(3)
文中利用車輛的水平特征對(duì)車輛進(jìn)行檢測(cè),因此檢測(cè)邊緣時(shí)僅利用水平方向的Sobel算子對(duì)圖像進(jìn)行了橫向的邊緣檢測(cè),對(duì)圖1的水平邊緣檢測(cè)結(jié)果如圖2所示。
圖1 圖像原圖
圖2 水平Sobel算子邊緣檢測(cè)結(jié)果
圖像分割是指將圖像分成各具特性的區(qū)域并提取出目標(biāo)的技術(shù)和過(guò)程,在圖像分割的基礎(chǔ)上才能對(duì)目標(biāo)進(jìn)行特征提取和參數(shù)測(cè)量,因此,它是圖像處理到圖像分析的關(guān)鍵步驟。文中采用了自適應(yīng)的圖像分割算法——OTSU算法,OTSU算法又稱為最大類間方差法,利用該方法對(duì)普通圖像進(jìn)行分割時(shí),可以獲得良好的分割效果,其閾值的計(jì)算方法[10-11]如下:
首先計(jì)算直方圖并歸一化,可以得到圖像灰度級(jí)1~M,第i級(jí)像素ni個(gè),總像素?cái)?shù)為N,則第i級(jí)灰度出現(xiàn)的概率為
Pi=ni/N
(4)
計(jì)算圖像的灰度均值為
(5)
計(jì)算直方圖的零階Wi和一級(jí)矩μi
(6)
w1=1-w[k]
(7)
(8)
對(duì)一級(jí)矩做以下處理:
μ0=μ[k]/w[k]
(9)
μ1=[μ-μ[k]]/[1-w[k]]
(10)
計(jì)算并找到最大的類間方差對(duì)應(yīng)此最大方差的灰度值即為要找的閾值,類間方差公式如下:
σ2[k]=w0(μ-μ0)2+w1(μ-μ1)2
(11)
即σ2[k]=[μ·w[k]-μ[k]]2/{w[k]·[1-w[k]]}
(12)
其中k從1~M變化,類間方差最大的k即為所求的最佳門限值。
利用最大類間方差法對(duì)圖像進(jìn)行圖像分割,分割結(jié)果如圖3所示。
圖3 利用最大類間方差法的圖像分割結(jié)果
由于車體的水平邊緣數(shù)量較多,且比較規(guī)則,故水平邊緣特征是表現(xiàn)車輛的一個(gè)很好特征。由于圖像中的車輛信息一般都會(huì)靠近圖片中間或中間偏下的位置,而圖像的上部通常是背景區(qū)域,因此,選取圖像的下面2/3作為車輛的檢測(cè)區(qū)域。對(duì)分割后的圖像計(jì)算出檢測(cè)區(qū)域內(nèi)各列的白色像素點(diǎn)個(gè)數(shù),即統(tǒng)計(jì)感興趣區(qū)域內(nèi)每列的邊緣像素點(diǎn)個(gè)數(shù),并畫出水平邊緣的列直方圖,如圖4所示,其中直方圖的級(jí)數(shù)等于感興趣區(qū)域的寬度,每級(jí)的bin值即為對(duì)應(yīng)列的邊緣像素點(diǎn)個(gè)數(shù)。
圖4 圖像的水平邊緣列直方圖
為了準(zhǔn)確地定位出車輛區(qū)域,利用中值濾波對(duì)水平邊緣的列直方圖進(jìn)行了濾波處理。通過(guò)分析多個(gè)車輛的水平特征,結(jié)合公式(13)得到一個(gè)閾值ThreVorHis:
(13)
式中:N是圖像檢測(cè)區(qū)域的列寬,ni是每列的水平邊緣像素?cái)?shù)。
由于車輛的水平邊緣一般都是連續(xù)的,因此將連續(xù)大于閾值的區(qū)域定為可能的車輛區(qū)域,并計(jì)算出連續(xù)區(qū)域的寬度,即為可能的車輛寬度。通過(guò)該方法將得到的感興趣區(qū)域在直方圖上畫出來(lái),如圖5所示。
圖5 圖像濾波后的感興趣區(qū)域
從圖5中標(biāo)記的感興趣區(qū)域可知,圖(a)和圖(b)均有兩個(gè)感興趣區(qū)域,對(duì)應(yīng)于原圖1和原圖2可知,圖像1中有兩輛汽車,而圖像2中僅有一輛汽車,在圖像2中標(biāo)記的感興趣2之所以被標(biāo)記為感興趣區(qū)域是因?yàn)樵诜指詈蟮膱D片右下方有一白色區(qū)域,因其列上的目標(biāo)像素?cái)?shù)與車輛的邊緣像素?cái)?shù)接近,且其寬度與定義的圖像中車輛寬度相當(dāng),故被誤認(rèn)為是車輛。為了確定感興趣區(qū)域內(nèi)目標(biāo)的真?zhèn)危矠榱舜_定感興趣區(qū)域內(nèi)真實(shí)目標(biāo)車輛的上下邊界,需要利用車輛的水平邊緣特征做進(jìn)一步的確認(rèn),確認(rèn)方法如下:
(1)找出每一個(gè)感興趣區(qū)域的左邊界和右邊界,即找出感興趣區(qū)域邊界對(duì)應(yīng)的圖像矩陣對(duì)應(yīng)的列;
(2)對(duì)每一個(gè)感興趣區(qū)域內(nèi)的目標(biāo)像素做行灰度直方圖;
(3)對(duì)做出的行灰度直方圖進(jìn)行邊緣分析,由于車輛的水平邊緣一般是連續(xù)的,像素?cái)?shù)比較集中,而且車輛的水平邊緣較多,相鄰兩個(gè)水平邊緣直接的距離較近,上下邊緣之間有多條水平邊緣,上下邊緣距離又與車體的寬度相當(dāng),即與感興趣區(qū)域的寬度相當(dāng),通過(guò)上述特征判定感興趣區(qū)域內(nèi)是否有車輛存在。
利用上述方法在存在車輛的行直方圖中標(biāo)記車輛的橫向位置,標(biāo)記結(jié)果如圖6和圖7所示。
圖6 圖像1兩個(gè)感興趣區(qū)域的行灰度直方圖與檢測(cè)的車輛位置
圖7 圖像2兩個(gè)感興趣區(qū)域的行灰度直方圖與檢測(cè)的車輛位置
由圖6和圖7可知,圖5(a)檢測(cè)的圖像1的兩個(gè)感興趣區(qū)域內(nèi)各有一輛車輛,而圖5(b)的圖像2中僅第一個(gè)感興趣區(qū)域檢測(cè)到了車輛,第二個(gè)感興趣區(qū)域沒有符合車輛水平特征的車輛,即用列直方圖檢測(cè)的感興趣區(qū)域內(nèi)是假目標(biāo)。由圖6與圖7的行灰度直方圖可知,有目標(biāo)的3個(gè)感興趣區(qū)域有一定的寬度,且水平線直接有多個(gè)間隔,而圖7(b)雖然行灰度直方圖有一定的寬度,但是像素不是特別連續(xù),而且水平線之間間隔太少甚至沒有間隔,因此,認(rèn)為該區(qū)域不是真目標(biāo)。在原圖上標(biāo)識(shí)出車輛位置如圖8所示。
圖8 原圖上標(biāo)識(shí)出車輛位置
由圖8(a)可知,利用車輛的水平特征在環(huán)境復(fù)雜的圖像中也可以準(zhǔn)確地檢測(cè)出車輛的位置,而圖8(b)中的偽目標(biāo)也被有效地剔除。另外,該方法對(duì)貨車的檢測(cè)也是有效的,如圖9所示。
圖9 基于車輛水平邊緣的貨車檢測(cè)結(jié)果
跟蹤算法本質(zhì)上也是車輛檢測(cè)算法,由于視頻數(shù)據(jù)的幀率為29.97 Hz,車輛在兩幀時(shí)間的方位變化不會(huì)太大,因此在檢測(cè)當(dāng)前圖像中的車輛位置時(shí)利用上次車輛檢測(cè)結(jié)果來(lái)限定檢測(cè)過(guò)程中搜索區(qū)域,即根據(jù)上次檢測(cè)出的車輛位置信息動(dòng)態(tài)調(diào)整感興趣區(qū)域的大小,從而大幅減小搜索區(qū)域,提高系統(tǒng)檢測(cè)的實(shí)時(shí)性。
在車輛圖像中,除路邊的干擾信息外,路面上的大部分信息對(duì)車輛的檢測(cè)也是不需要的。真正有效的區(qū)域,即感興趣區(qū)域,實(shí)際上只集中在車輛附近一個(gè)很小的區(qū)域內(nèi)。為了提高系統(tǒng)檢測(cè)的實(shí)時(shí)性,文中采用了限定感興趣區(qū)域法,即把離目標(biāo)車輛很遠(yuǎn),明顯對(duì)檢測(cè)沒有意義的區(qū)域直接剔除,不對(duì)其做任何計(jì)算與處理,從而可以節(jié)省大量的計(jì)算時(shí)間,明顯提高系統(tǒng)的實(shí)時(shí)性。如圖10所示,圖10(a)為檢測(cè)車輛的區(qū)域,圖10(b)即為建立的感興趣區(qū)域,從圖10(b)可以看出,限定感興趣區(qū)域的圖像區(qū)域占整個(gè)圖像的比例很小,因此,可以有效地提高計(jì)算速度,進(jìn)而大幅提高車輛檢測(cè)的實(shí)時(shí)性。
圖10 當(dāng)前幀的車輛檢測(cè)結(jié)果與其對(duì)應(yīng)的感興趣區(qū)域
限定感興趣區(qū)域法在測(cè)試中表現(xiàn)出較好的效果,但當(dāng)受到嚴(yán)重干擾如目標(biāo)車輛被橫向穿越的行人等遮擋很嚴(yán)重的情況下,算法會(huì)產(chǎn)生較大誤差甚至失效,在本車或前方車輛換道或者轉(zhuǎn)彎時(shí),算法也會(huì)產(chǎn)生較大誤差或暫時(shí)失效。實(shí)際應(yīng)用中,為保證車輛檢測(cè)在出現(xiàn)較大誤差或失效時(shí)能及時(shí)恢復(fù)正確識(shí)別,應(yīng)首先檢測(cè)算法是否失效,以便啟動(dòng)車輛重新檢測(cè)模塊。具體判定算法失效的方法如下:
在當(dāng)前幀感興趣區(qū)域內(nèi)沒有檢測(cè)到目標(biāo),下一幀的感興趣區(qū)域會(huì)適當(dāng)擴(kuò)大檢測(cè)范圍,即將感興趣區(qū)域擴(kuò)大,當(dāng)連續(xù)5次未檢測(cè)到車輛,即認(rèn)為算法失效。此時(shí)需重新啟動(dòng)初始檢測(cè)算法,即重新在整幀圖像中檢測(cè)目標(biāo)車輛,重新限定感興趣區(qū)域,從而恢復(fù)車輛的正確跟蹤。
實(shí)時(shí)跟蹤車輛的實(shí)驗(yàn)是車輛行駛狀態(tài)下利用行車記錄儀錄制某一國(guó)道上車輛行駛的視頻,車輛車速為60 km/h,視頻長(zhǎng)度為10 min,由于轉(zhuǎn)彎等問題導(dǎo)致的失效共重啟算法3次。截取部分跟蹤效果圖如圖11所示,每間隔20幀截圖一次。
圖11 車輛跟蹤的截圖
由圖11可知,該方法能夠有效地對(duì)車輛進(jìn)行跟蹤,只有當(dāng)前方車輛離當(dāng)前車輛距離較遠(yuǎn)時(shí),如圖中的最后一幅圖,才會(huì)失去跟蹤目標(biāo),此時(shí)如果在擴(kuò)大的感興趣區(qū)域內(nèi)連續(xù)5幀沒有檢測(cè)到車輛信息,則認(rèn)定算法失效,系統(tǒng)會(huì)重新啟動(dòng)車輛檢測(cè)算法,在整幅圖像進(jìn)行檢測(cè),直到重新檢測(cè)到車輛。
對(duì)圖像首先進(jìn)行濾波處理,去除部分噪聲,并利用Sobel算子的水平算子對(duì)圖像的水平邊緣進(jìn)行增強(qiáng)處理,利用最大類間方差法對(duì)邊緣增強(qiáng)后的圖像進(jìn)行圖像分割;然后根據(jù)車輛的水平特征利用車輛的列直方圖和行直方圖對(duì)車輛進(jìn)行檢測(cè),檢測(cè)結(jié)果良好,對(duì)復(fù)雜環(huán)境下的車輛也能有效地識(shí)別,且對(duì)貨車的識(shí)別效果良好;最后,利用限定感興趣區(qū)域法對(duì)車輛進(jìn)行跟蹤,通過(guò)實(shí)驗(yàn)驗(yàn)證,跟蹤方法有效。