阮 航,王立春
(南京航空航天大學 計算機科學與技術學院,江蘇 南京 211100)
車輛檢測和分類是智能交通系統的關鍵,有助于提高交通監控和車流量統計的系統效率。交通視頻監控情況下車輛檢測和分類面臨的主要難點是道路環境復雜、光照和天氣變化多樣、攝像機位置高度不同。而解決這些問題成為智能交通系統實現的關鍵。
車輛檢測和分類包括定位車輛位置和分類車輛類型。在車輛檢測方面,基于特征和基于外觀的檢測方法被廣泛研究。陳擁權等[1]通過圖像積分圖來提取Harr特征,采用Adaboost算法對特征機械能分類,通過模式匹配實現車輛檢測。朱彬等[2]提出基于Harr-like和MB-LBP特征的分區域多融合特征車輛檢測方法,檢測遠近不同車輛,提升系統實時性。但是該方法對遮擋、光照變化和透視畸變十分敏感。文獻[3]利用對稱性和尾燈的特征信息,通過移動攝像頭來檢測和跟蹤多個車輛。文獻[4]使用幀差來檢測移動車輛,生成的二值圖像被用于對稱濾波器檢測汽車的前視圖。但該方法不能處理多輛車的情況。王海等[5]提出以低維Harr-NMF特征代替Harr特征,并自適應修正改進SOMPNN算法,用于車輛檢測。文獻[6]采用直方圖分析與自適應閾值結合的方式預測車輛假設區域,并通過紋理、對稱性、輪廓匹配度等驗證假設區域。
對于車輛細粒度分類,主要是識別車輛的品牌。然而,傳統的車輛分類方法只關注淺層特征,難以在細粒度分類中取得良好的表現。文獻[7]基于視頻車輛的幾何參數特征來提取車輛輪軸參數,實現車型自動分類。孟華東等[8]提出基于貝葉斯網絡的傳感器融合車輛分類系統,通過提取車輛高度輪廓和平面輪廓實現車輛特征提取。文獻[9]通過構建基于稀疏特征和背景建模的監控車輛分類識別框架,將車輛圖像表示為低維稀疏線性組合,實現車輛分類。文獻[10]在運動目標檢測和圖像標定技術上,通過引用多類支持向量機實現車輛分類。張偉等[11]基于鄰接傳感器網絡和BP神經網絡進行車輛類型分類。文獻[12]基于樸素貝葉斯分類模型,采用離線訓練分類器實現車輛分類。
這些方法需要復雜的圖像或視頻預處理,對圖像質量要求較高,容易受到變形的影響。在現實的交通監控,復雜的道路環境,各種光照和天氣條件下,攝像機采集圖像的位置和方向影響車輛檢測和分類的性能?;谔卣骱突谕庥^的方法沒有足夠的魯棒性,因為上述方法只提取圖像淺層特征。
近年來,深度學習在圖像處理領域,尤其是卷積神經網絡在物體檢測和圖像分類方面取得了很好的效果。卷積神經網絡是一種深度特征模型,主要通過卷積提取圖像淺層和深層特征,然后進行特征組合,從而實現圖像分類和物體檢測。卷積神經網絡具有良好的魯棒性,需要較少的圖像預處理。其提取深度特征的能力使其分類性能遠遠超過傳統方法。
卷積神經網絡卷積層為特征提取器表現為對象檢測器,所以卷積神經網絡也可以用來定位對象。Zhou等[13]采用類激活映射來表示區分圖像區域,可用于對象檢測和類別識別。文獻[14]提出了一個基于單個圖像的車輛識別框架,該框架通過使用基于部件檢測器來提取車輛的特征,但它無法識別一個圖像中的多個目標。文獻[15]通過主動學習策略實現車輛識別和車輛跟蹤系統。
受到這些思想的啟發,文中提出了一種基于卷積神經網絡特征圖的車輛檢測和分類模型,以準確、快速地對車輛進行檢測和分類。
首先建立一個名為DetectNet的檢測網絡,用卷積神經網絡模型訓練圖像。在這個網絡中,在卷積神經網絡的最終輸出之前對特征地圖進行可視化和分析,發現并非所有特征對于車輛檢測都具有相同的貢獻。因此,使用高維空間特征加權算法在DetectNet上計算加權和,得到圖像的加權特征圖。然后,對加權映射的特征圖通過閾值分割算法得到車輛目標候選框。最后,通過提取圖像的卷積神經網絡特征,可以得到稱為ClassNet的分類模型。這種基于CNN的模型可以檢測多個車輛目標,并輸出每個車輛模型的分類結果。
AlexNet,VGG,GoogLeNet是常用的深度神經網絡結構。文中采用GoogLeNet作為基本的卷積神經網絡。該網絡有22層,包含大量的神經網絡參數。首先使用ImageNet來訓練網絡模型,然后用小規模的車輛數據集對這個模型進行微調。
在訓練過程中,CNN中的不同卷積核提取圖像不同特征,用于生成圖像特征圖。為了分析不同的特征圖對車輛檢測的影響,將輸入圖像I送入DetectNet,經過前向計算,得到圖像I的每個類別的概率。假設最大概率來自類別c,Sc是該類的得分,為尋找圖像響應最大的區域,通過分析不同特征圖的像素值,可以得到圖像I對應的得分Sc如式1,其在所有類別中所占的概率pc的計算如式2:
(1)
(2)
其中,f為激活函數,n是最后一層全連接層的神經元個數,對于神經元k,Zk為最后的輸出值。
如圖1所示,卷積層和全連接層是DetectNet最后輸出的兩層網絡層。

圖1 卷積層(CONV)和全連接層(FC)的結構

(3)
(4)
其中,Zk為最后得到的加權特征圖;m為卷積層神經元的數量;Mki為第i張特征圖的全部響應。
將圖像輸入到DetectNet通過一次前向計算,得到圖像的分類結果。通過計算該分類結果的最大響應,可以得到最后的加權特征圖和特征地圖的最大響應,以獲得最終的加權特征地圖。如圖2所示,左欄為原始多目標車輛圖像,包括不同數量的車輛,不同的照明條件和不同的噪聲影響,右欄是加權特征映射算法對原始圖像的檢測結果。顏色越深,圖像中的響應越大。如圖2所示,該算法能夠完美地檢測和定位一幅圖像中的多輛車。

圖2 特征圖加權映射車輛檢測結果
目標檢測是分類的基礎,只有準確地識別目標才可以更好地分類。在真實的道路圖像中,首先檢測定位車輛區域,然后細分類車輛目標。通過微調GoogLeNet訓練得到DetectNet進行車輛檢測,將測試圖像放入DetectNet中,通過前向計算得到最終卷積層的特征圖和全連接層的權重。卷積神經網絡提取邊緣、線條等淺層特征到提取深層結構特征,最終組合成高級語義特征。
如圖2所示,圖像中較深的顏色代表最重要的區域,即車輛目標。對于車輛檢測,重復上述步驟結合尺度轉換和消除顏色信息。然后,通過累加單個目標結果并將加權特征映射上采樣到輸入圖像的大小,最終得到多個車輛位置。通過對特征圖進行輪廓外接矩形檢測,上下左右擴充矩形邊框,最終得到車輛的檢測矩形框。
由于卷積神經網絡的深層結構和大量的權值參數,使得需要大量時間來訓練神經網絡。因此,文中利用預先訓練的GoogLeNet模型來加速DetectNet和ClassNet的訓練過程。GoogLeNet模型是在ImageNet的大規模圖像數據集上訓練完成的,然后對預訓練模型進行微調,得到DetectNet來進行車輛檢測和分類任務。使用GoogLeNet模型參數初始化權重,然后使用車輛數據集更新權重參數。在計算機視覺任務中使用預訓練方法是非常普遍的,有許多文獻試圖尋求這種方法背后的理論。實驗基于Caffe平臺和GeForce GTX TITAN X GPU,在預訓練模型上進行微調,只需要2個小時就可以微調預訓練模型完成訓練。
利用web-nature數據集訓練DetectNet和surveillance-nature數據集訓練ClassNet,而這兩個數據集都來自Compcars。其中web-nature數據集包含163種車輛類型,文中選擇比較常見的73種,共52 083張圖像,這些圖像具有復雜多樣的背景,對車輛檢測問題有較好的適用性。surveillance-nature數據集包含281輛汽車,共有50 000輛汽車圖像。這些圖像是從真實道路監控場景下采集的車輛正向圖像,包括不同天氣和不同光照的圖像。這些圖像具有較少的背景信息和更詳細的車輛信息。文中利用該數據集來訓練ClassNet進行細粒度車輛分類。
為了測試訓練好的網絡,從交通監控視頻中采集了3 600幅圖像,測試數據集包括不同光照和不同環境的圖像。首先將測試圖像輸入DetectNet,經過前向計算,對特征進行加權映射得到車輛檢測結果。然后,將檢測到的車輛目標輸入ClassNet進行細粒度車輛分類。
在車輛檢測中,首先訓練DetectNet,得到單個加權映射特征圖,然后累積這些特征圖得到最終的車輛定位結果。
采用web-nature數據集作為訓練數據集,微調GoogLeNet模型,得到最終車輛檢測模型DetectNet。首先,將訓練數據集圖像歸一化256*256*3,對整個數據集求取均值,并將每幅圖像進行去均值處理。在進行微調之前,將GoogLeNet全連接層中的1 000個神經元替換為73即替換為訓練數據集類別數,并且對最后全連接層參數進行隨機初始化。為防止小規模數據集引起的過擬合問題,將整個網絡初始學習率設為0.001,并使用隨機梯度下降更新(SGD)參數,最終得到一個損失收斂網絡DetectNet。對于ClassNet,將GoogLeNet全連接層輸出替換281個類別,而不是分類層中的1 000個類別,對參數和學習速率進行與DetectNet相同的初始化。經過30 000次迭代后,得到了收斂網絡ClassNet用于車輛分類。
3.3.1 車輛檢測
對于DetectNet給出的候選框,在得到最終的特征映射后,首先通過圖像處理方法找到候選框中心的外輪廓,然后展開該輪廓以得到最終框。對于檢測準確性的判別,利用IoU(交并比)方法來驗證候選框是否為車輛位置,計算結果如下:
(5)
其中,A為候選框;B為真實矩形框;IoU為矩形A和矩形B的交集占矩形A和矩形B的并集的比率;SI為矩形A和矩形B的交集面積;SA+SB-SI為矩形A和矩形B的并集面積。
文中選取交并比0.7為閾值,即預測矩形框與真實矩形框重合度大于等于0.7的為檢測正確,否則為檢測錯誤。
將DetectNet模型的檢測結果與其他檢測方法進行了比較,包括提取Harr-like特征,對稱特征和Gabor特征,分類器采用Adaboost。另外,還將這種方法與兩種深度學習方法進行了比較。如圖3所示,隨著圖像數量的增加,車輛檢測性能總是優于其他方法。

圖3 隨著測試圖像數量增加檢測精度的變化
在圖4中,給出了這些方法的平均檢測精度??梢园l現,DetectNet模型具有更高的平均檢測精度。

圖4 平均檢測精度對比
可以看出,基于卷積神經網絡的加權特征圖方法可以提取不同而且豐富的特征,較為準確地檢測目標。該方法無需復雜的圖像預處理,通過將圖像輸入卷積神經網絡來提取圖像的深層特征,從而得到圖像響應最大的區域。
3.3.2 車輛分類
在細粒度車輛分類中最不同的地方是車標,但是在包含多個車輛目標的圖像中很難獲得車標。因此,提出了一個基于CNN的神經網絡模型ClassNet進行細粒度分類,網絡深層結構能夠區分圖像的深層特征。
如圖5所示,隨著測試圖像數量的增加,與SVM和AdaBoost分類器相比,ClassNet的細粒度分類準確率更高,ClassNet均有更高的性能。對于傳統方法,利用SIFT進行特征提取。在圖像網格上提取SIFT描述符并合并空間信息以獲得特征向量。然后利用SVM和AdaBoost分類器進行訓練和測試。其中一個原因就是SIFT提取圖像邊緣和紋理等淺層的局部特征。但ClassNet在前幾層神經網絡中已提取到這些特征,高層卷積層提取到輪廓等深層特征,隨著層數的增加,提取到的則是特征的高級語義組合。

圖5 隨著數量增加細粒度分類準確率的變化
文中也將ClassNet與其他相關結果進行了比較,如圖6所示,可以看出ClassNet均有較高的分類準確率。

圖6 平均準確率對比
文中提出了一種基于卷積神經網絡特征圖的車輛檢測和車輛分類模型。DetectNet使用加權特征圖實現車輛檢測,ClassNet用于細粒度車輛分類。在車輛檢測中,通過卷積神經網絡的前向計算得到卷積層特征圖,將特征圖進行加權映射得到車輛的檢測結果。在車輛細分類中,通過卷積神經網絡對車輛進行分類。與其他車輛檢測和分類方法相比,該模型具有如下優點:不需要復雜的圖像預處理,如圖像濾波和邊緣檢測;可以在一幅圖像中定位多輛車輛,對背景噪音和光照變化具有較強的抗干擾能力;基于CNN的細粒度車輛分類模型在真實道路采集的圖像中對低質量圖像和噪聲干擾圖像均具有良好的魯棒性。
然而,該方法還需要進一步研究和改進,如車輛的哪一部分對于細粒度分類最重要,以及如何改善深度網絡以獲得更高的準確率,這些都需要在今后的工作中繼續深入研究。