楊映波,周欣,曾珍,魏彪
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)
車(chē)輛檢測(cè)作為當(dāng)今智能交通中一個(gè)重要的課題,廣泛的應(yīng)用于道路監(jiān)控、車(chē)輛追蹤、車(chē)輛搜尋定位等領(lǐng)域,具有重大的研究意義。目前車(chē)輛檢測(cè)的常用方法有以下兩種,基于運(yùn)動(dòng)背景的,背景差分法[1]、幀間差分法[2]、光流法[3]等;以及基于車(chē)輛局部特征,利用SIFT[4]、Hog[5]、Harr[6]等特征計(jì)算車(chē)輛特征,放入支持向量機(jī)(SVM)[7]分類(lèi),進(jìn)行車(chē)輛檢測(cè)。前一種方法有一定的局限性,必須基于連續(xù)多幀的圖片才能夠進(jìn)行檢測(cè),同時(shí)對(duì)背景的要求極高,倘若出現(xiàn)雨雪天氣或者光照變化,會(huì)導(dǎo)致識(shí)別率降低。后一種方法,SIFT特征擁有尺度不變性以及旋轉(zhuǎn)不變性,但由于其計(jì)算量較大,實(shí)時(shí)檢測(cè)效率較低。Harr特征描述的是紋理特征,更適合于陰影檢測(cè),當(dāng)相比于SIFT以及Hog特征,缺乏了方向信息,導(dǎo)致在目標(biāo)識(shí)別中有一定缺陷。Hog特征描述的是邊緣方向密度,能夠有效地描述車(chē)輛邊緣輪廓,相比于SIFT特征,缺少尺度不變性,但可以通過(guò)對(duì)檢測(cè)圖片進(jìn)行多尺度縮放來(lái)進(jìn)行檢測(cè),計(jì)算量雖然會(huì)因此增大,但可根據(jù)具體場(chǎng)景進(jìn)行調(diào)節(jié)。同時(shí)基于車(chē)輛局部特征的方法,能夠有效地根據(jù)車(chē)輛的車(chē)尾以及車(chē)頭進(jìn)行車(chē)輛檢測(cè),但對(duì)車(chē)輛的側(cè)身識(shí)別率依然不高。同時(shí),自2012年以來(lái),深度學(xué)習(xí)取得了爆發(fā)性的突破,卷積神經(jīng)網(wǎng)絡(luò)(CNN)[8]作為其中模型之一,對(duì)圖像目標(biāo)識(shí)別分類(lèi)更有著出色的表現(xiàn)。其通過(guò)對(duì)圖像進(jìn)行多次的卷積、激活、池化操作,自主進(jìn)行特征提取,將高維特征壓縮至低維特征,進(jìn)行特征分類(lèi)。然而由于其運(yùn)算過(guò)程如同黑盒,科學(xué)家們無(wú)法用具體的數(shù)學(xué)方式去證明、表示其運(yùn)算過(guò)程,因此卷積神經(jīng)網(wǎng)絡(luò)具有一定的不可解釋性,這是當(dāng)代工程應(yīng)用無(wú)法接受的。
因此,本文基于以上特征與模型,提出一種車(chē)輛檢測(cè)算法,首先利用卷積神經(jīng)網(wǎng)絡(luò)的多個(gè)卷積核對(duì)圖像進(jìn)行特征描述,因其淺層特征是對(duì)圖像顏色、邊緣、紋理等特征的描述,根據(jù)其淺層特征中,邊緣性較好的圖像,獲取對(duì)應(yīng)的卷積核。用提取后的卷積核對(duì)原始圖像進(jìn)行預(yù)處理,然后進(jìn)行Hog特征運(yùn)算,放入支持向量機(jī)中進(jìn)行訓(xùn)練、分類(lèi),從而識(shí)別出正確車(chē)輛。實(shí)驗(yàn)表明,本方法能夠有效地從各個(gè)角度檢測(cè)出車(chē)輛,識(shí)別率優(yōu)于傳統(tǒng)方法以及經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)。
卷積神經(jīng)網(wǎng)絡(luò)與本方法中所用到的支持向量機(jī)同為有監(jiān)督學(xué)習(xí),區(qū)別在于,深度學(xué)習(xí)作為“端到端”的學(xué)習(xí),無(wú)需人工特定的選擇特征。深度學(xué)習(xí)以數(shù)據(jù)的原始形態(tài)作為輸入,經(jīng)過(guò)卷積層、池化層、激活層等多層疊加抽象,從原始數(shù)據(jù)中自動(dòng)提取本次任務(wù)所需的最終特征,其中所有過(guò)程并無(wú)夾雜人為操作。以下本文將著重介紹卷積層、池化層與激活層,以便后續(xù)展示輸出圖像特征。
卷積層通過(guò)一定大小以及數(shù)量的卷積核與同等大小圖像區(qū)域進(jìn)行卷積運(yùn)算,從而獲取圖像顏色、形狀、紋理等局部信息。卷積層中包含三個(gè)重要參數(shù),卷積核數(shù)量,卷積核大小以及卷積步長(zhǎng)。首先我們?cè)O(shè)Xi,j表示原圖第i行第j列的像素,Wm,n為卷積核第m行第n列的權(quán)重,b表示為卷積核的偏置項(xiàng),卷積核大小為k,ai,j表示卷積后的特征圖在第i行第j列的像素,因此卷積層的計(jì)算公式為:
不同的卷積核會(huì)分別檢測(cè)出圖像的局部信息,卷積核權(quán)重由網(wǎng)絡(luò)每次“反向傳播”進(jìn)行修正。通過(guò)組合這些卷積過(guò)后生成的圖像,整個(gè)卷積神經(jīng)網(wǎng)絡(luò)會(huì)對(duì)訓(xùn)練圖像有全方位的了解,以便后續(xù)提取有效特征。
池化層能夠?qū)μ卣鲌D進(jìn)行降采樣工作,通過(guò)去除特征圖不重要的像素信息,進(jìn)一步減少參數(shù)數(shù)量,同時(shí)保證特征不變性,在一定程度上防止了數(shù)據(jù)過(guò)擬合。池化操作常見(jiàn)的操作有平均值池化以及最大值池化。
本文方法中使用的為最大值池化,在n×n的圖像區(qū)域中,取其中最大的像素值,作為本區(qū)域的池化過(guò)后輸出值。池化公式為:
激活層能夠增加整個(gè)卷積神經(jīng)網(wǎng)絡(luò)的表達(dá)能力,(1)、(2)兩個(gè)公式僅僅為線性操作,只能起到線性映射的作用,無(wú)法構(gòu)成復(fù)雜的函數(shù)。本文方法中使用ReLU函數(shù)作為激活函數(shù),其能夠加速隨機(jī)梯度下降方法收斂,收斂速度約比其他激活函數(shù)快6倍。ReLU函數(shù)為:
Hog特征全稱(chēng)Histograms of Oriented,是基于邊緣與梯度的描述子,本文認(rèn)為即使機(jī)器不知道對(duì)應(yīng)的邊緣與梯度的位置,但通過(guò)局部梯度方向直方圖也能夠有效地描述局部目標(biāo)的形狀。因此Hog特征,作為由圖像局部區(qū)域的梯度方向直方圖所組合構(gòu)成的特征,能夠有效的描述車(chē)輛邊緣與梯度特征。以下為本文
Hog特征提取過(guò)程。
(1)首先輸入圖像為經(jīng)過(guò)灰度化的灰度圖像,計(jì)算其像素點(diǎn)(x,y)梯度大小以及方向,像素點(diǎn)(x,y)處的梯度值與方向分別為 G(x,y),θ(x,y),具體公式如下:
(2)將圖像劃分為若干個(gè)n×n的cell,各個(gè)cell之間不能重疊。在每個(gè)cell內(nèi)劃分相同的9個(gè)方向,以9個(gè)方向的等距離角度區(qū)間作為橫軸,梯度大小作為縱軸,計(jì)算出各個(gè)cell的梯度直方圖,得到每個(gè)cell的9維特征值。
(3)將相鄰的4個(gè)cell組合成為一個(gè)Block塊。串聯(lián)4個(gè)單元格的9維特征值,獲得本Block塊的36維特征值,然后對(duì)此特征值進(jìn)行歸一化。
(4)將所有Block塊的特征值串聯(lián)起來(lái),從而得到本圖像的Hog特征值。其中各個(gè)Block之間可以重疊,以增強(qiáng)Hog特征魯棒性。
綜上所述,傳統(tǒng)Hog特征搭配支持向量機(jī)SVM的方法能夠有效對(duì)車(chē)頭以及車(chē)尾進(jìn)行檢測(cè),但無(wú)法有效的獲取車(chē)輛側(cè)身的邊緣信息。卷積神經(jīng)網(wǎng)絡(luò)能夠自動(dòng)獲取特征,對(duì)圖像中待識(shí)別目標(biāo)有著強(qiáng)大的描述能力。但當(dāng)它在對(duì)原始數(shù)據(jù)進(jìn)行不斷的抽象過(guò)程中,隨著網(wǎng)絡(luò)層數(shù)的加深,每層的輸出變得越來(lái)越抽象,描述能力也越來(lái)越強(qiáng)。而Hog特征是提取像素級(jí)的梯度方向特征,對(duì)于高度抽象的特征無(wú)法提取有效的信息。根據(jù)Matthew Zeiler等人于2011年提出的反卷積神經(jīng)網(wǎng)絡(luò)[9],以及次年的特征可視化論文[10]所述,卷積層第一層與第二層學(xué)習(xí)的是顏色、邊緣等基礎(chǔ)特征,第三層學(xué)習(xí)的是紋理特征。往上更高層的特征則越來(lái)越抽象。因此第三層以后的輸出特征對(duì)于Hog計(jì)算來(lái)說(shuō),已經(jīng)過(guò)于抽象。但第一次卷積后的特征,能夠?qū)D像基礎(chǔ)信息,例如紋理、顏色、特征等,有良好的描述以及較低的抽象程度。因此本文選擇獲取卷積神經(jīng)網(wǎng)絡(luò)第一層特征,然后進(jìn)行Hog特征運(yùn)算,提升原始Hog特征對(duì)車(chē)輛側(cè)身特征的描述,給與它更強(qiáng)的特征描述能力,從而無(wú)論從車(chē)輛頭部、尾部、側(cè)身各個(gè)角度,都能夠有效地檢測(cè)車(chē)輛。以下分節(jié)為具體算法流程。
(1)根據(jù)公式(1),使用 5個(gè) 5×5的濾波器對(duì)輸入圖像進(jìn)行卷積,得到C1層5個(gè)126×126的特征圖。
(2)按公式(2)、(3)將 C1 層中每組特征根據(jù) 2×2的鄰域進(jìn)行最大值池化,然后通過(guò)一個(gè)ReLU激活函數(shù),得到S2層5個(gè)63×63大小的特征圖。
(3)根據(jù)公式(1),使用 16個(gè) 3×3的濾波器對(duì) S2層進(jìn)行卷積,得到C3層16個(gè)61×61大小的特征圖。
(4)同樣按公式(2)、(3)對(duì) C3 層進(jìn)行下采樣,獲得30×30的特征圖。
(5)將特征圖排列成特征向量。
根據(jù)前文所述,我們需要的是卷積神經(jīng)網(wǎng)絡(luò)淺層信息。經(jīng)過(guò)大量實(shí)驗(yàn),因此本文按上述具體參數(shù)構(gòu)建出五層卷積神經(jīng)網(wǎng)絡(luò)。具體卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖,如圖1所示。
圖1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖
在獲取了C1層的特征圖之后,除去明顯的顏色特征圖以及其他基礎(chǔ)特征圖,其中部分邊緣圖以人的肉眼無(wú)法判斷其邊緣性特征優(yōu)劣。故本文選取了以下4張具有代表性的邊緣特征圖,如圖2所示,保存對(duì)應(yīng)的4組卷積模型以及卷積核。對(duì)整個(gè)相同的數(shù)據(jù)集進(jìn)行卷積,得出4組輸出特征圖,根據(jù)第2小節(jié)所述算法,分別計(jì)算其Hog特征,代入支持向量機(jī)進(jìn)行訓(xùn)練,識(shí)別率如表1所示。
圖2 原始圖像與四組邊緣特征圖
表1 不同模型實(shí)驗(yàn)效果對(duì)比
由表1可知,第一組卷積模型提取的邊緣特征圖能夠更好地描述車(chē)輛邊緣性特征。因此保留其模型以及對(duì)應(yīng)的卷積核,具體卷積核如下公式(8)所示,選擇本組卷積特征作為計(jì)算Hog的輸入圖像。
根據(jù)3.1節(jié)所述,實(shí)驗(yàn)可以通過(guò)訓(xùn)練后的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)或者提取出的卷積核獲得邊緣特征圖,本文選擇通過(guò)已有的卷積神經(jīng)網(wǎng)絡(luò)對(duì)原始圖像進(jìn)行預(yù)處理。具體車(chē)輛檢測(cè)算法流程如下:
(1)根據(jù)3.1節(jié)訓(xùn)練過(guò)后的網(wǎng)絡(luò)模型,對(duì)圖像進(jìn)行預(yù)處理,獲得C1層特征圖。選取其中邊緣性最好的邊緣特征圖。
(2)將獲取的邊緣特征圖歸一化為128×128像素大小的灰度圖像。
(3)將灰度圖像劃分為64個(gè)16×16大小的cell,根據(jù)公式(4)、(5)、(6)、(7),計(jì)算每一個(gè) cell內(nèi)部像素點(diǎn)的梯度大小與方向。
(4)將每一個(gè)Cell的梯度方向由0-180°分為9個(gè)方向,每個(gè)方向范圍為20°。根據(jù)每個(gè)像素點(diǎn)的梯度大小與方向,投影到9個(gè)方向塊中,獲得一個(gè)9維的cell塊Hog特征值。
(5)將4個(gè)相鄰的cell合并成為一個(gè)Block塊,窗口滑動(dòng)步長(zhǎng)為32個(gè)像素,因此整張圖片包含16個(gè)Block塊。選擇歸一化函數(shù)L2-norm,對(duì)Block塊進(jìn)行歸一化,增加對(duì)光照的魯棒性。
(6)將每個(gè)Block塊的Hog特征值級(jí)聯(lián),獲得576維輸出特征,放入支持向量機(jī)中進(jìn)行訓(xùn)練,其中懲罰系數(shù)設(shè)為0.1,核函數(shù)選擇高斯核函數(shù)。
本方法中采取標(biāo)準(zhǔn)樣本集與自制樣本集所結(jié)合的方式,組成本方法中所用的數(shù)據(jù)集。自制樣本集來(lái)自成都市某路口2448×2048像素高清分辨率監(jiān)控?cái)z像儀,我們手動(dòng)截取了攝像頭視角下行駛的各類(lèi)車(chē)輛,以便后期本方法能夠適用于成都市道路監(jiān)控。標(biāo)準(zhǔn)樣本集來(lái)自Stanford大學(xué)車(chē)輛數(shù)據(jù)集,有一定的代表性以及權(quán)威性。標(biāo)準(zhǔn)集中含有8144張訓(xùn)練數(shù)據(jù),8041張測(cè)試數(shù)據(jù),以上數(shù)據(jù)均為正樣本。自制樣本集中含有4000張訓(xùn)練正樣本數(shù)據(jù),4000張測(cè)試正樣本數(shù)據(jù)。其中有關(guān)訓(xùn)練以及測(cè)試數(shù)據(jù)的負(fù)樣本,我們通過(guò)截取成都市道路監(jiān)控?cái)z像頭下非車(chē)輛的圖片作為負(fù)樣本。所有樣本像素大小為128×128。部分示例如圖3所示。
圖3 標(biāo)準(zhǔn)樣本集與自制樣本集部分示例
本文按照以上組合集,選取6000張車(chē)輛圖像作為訓(xùn)練正樣本。其中5000張圖像來(lái)自標(biāo)準(zhǔn)樣本集,1000張來(lái)自自制樣本集。同時(shí)從自制樣本集中選取5000張作為訓(xùn)練負(fù)樣本。選取12041張車(chē)輛圖像作為測(cè)試正樣本,其中包含8041張Stanford大學(xué)標(biāo)準(zhǔn)車(chē)輛集以及4000張自制樣本集。從自制樣本集中再取4000張作為測(cè)試負(fù)樣本。由上文可知,本文利用卷積神經(jīng)網(wǎng)絡(luò)自動(dòng)學(xué)習(xí)特征,對(duì)原圖像進(jìn)行預(yù)處理,從而獲取良好的邊緣特征圖。在此本文根據(jù)基于人工手動(dòng)設(shè)置的邊緣提取算子,對(duì)以上數(shù)據(jù)集進(jìn)行預(yù)處理,部分邊緣特征示例如圖4所示。最后計(jì)算相應(yīng)的邊緣特征圖Hog特征,分別放入支持向量機(jī)訓(xùn)練、分類(lèi),實(shí)驗(yàn)結(jié)果如表2所示。
圖4 各邊緣提取算子部分樣本示例
表2 不同算子實(shí)驗(yàn)效果對(duì)比
由圖4與表3結(jié)合所知,Canny邊緣提取算法提取過(guò)多無(wú)關(guān)車(chē)輛邊緣特征,導(dǎo)致正樣本識(shí)別率(36.24%)較低,總體識(shí)別率(51.25%)大幅度低于其他邊緣提取算法。與未經(jīng)圖像預(yù)處理的HOG+SVM經(jīng)典車(chē)輛檢測(cè)算法相比,基于Sobel與Robert邊緣提取的算法識(shí)別率僅略高于經(jīng)典算法。而結(jié)合由自主學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)所提取的邊緣特征圖,能夠較好地保存原圖車(chē)輛的細(xì)節(jié)特征,其算法識(shí)別率(99.42%)明顯高于余下算法識(shí)別率。
同時(shí)將以上數(shù)據(jù)集代入目前常規(guī)的車(chē)輛檢測(cè)算法,實(shí)驗(yàn)結(jié)果如表3所示。
表3 不同算法實(shí)驗(yàn)效果對(duì)比
由上表所知,本文所提出的方法識(shí)別率為99.42%,,明顯高于經(jīng)典HOG+SVM車(chē)輛檢測(cè)算法(96.07%),略高于經(jīng)典CNN算法(98.64%)。三種算法的正負(fù)樣本識(shí)別率相對(duì)于整體識(shí)別率沒(méi)有較大的波動(dòng),證明數(shù)據(jù)集設(shè)置合理。
針對(duì)在道路監(jiān)控中的車(chē)輛檢測(cè),本文提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)預(yù)處理的Hog特征車(chē)輛全身檢測(cè)算法。根據(jù)卷積神經(jīng)網(wǎng)絡(luò)下采樣層中邊緣性明顯的圖像,提取對(duì)應(yīng)的卷積核,對(duì)原始圖像進(jìn)行預(yù)處理,計(jì)算其Hog特征,最后交由支持向量機(jī)進(jìn)行分類(lèi)。實(shí)驗(yàn)證明基于CNN預(yù)處理的Hog特征在對(duì)車(chē)輛全身的描述性上強(qiáng)于基于人工邊緣提取算子預(yù)處理的Hog特征以及單一HOG特征,在識(shí)別率上略高于經(jīng)典CNN網(wǎng)絡(luò)。相對(duì)于經(jīng)典CNN網(wǎng)絡(luò)需要計(jì)算性能較好的GPU以及足夠的內(nèi)存,本文所提方法對(duì)設(shè)備硬件性能的要求較低,適用面廣,更方便適用于各道路監(jiān)控等設(shè)備,且識(shí)別率更高。