胡 鵬,白 天,許曉瓏
(1.中國科學技術大學 軟件學院,安徽 合肥 230027; 2.福建省廈門市公路局 信息處,福建 廈門 361008)
隨著計算機硬件技術和計算機視覺技術的發展,智能交通(ITS)也得到快速的發展。自動交通事件檢測系統是智能交通系統很重要的一部分,也越來越受到廣大學者們的關注。一個好的自動交通事件檢測系統,車輛檢測是關鍵。傳統的車輛檢測方法很多,但其魯棒性都不夠好,基于交通視頻的車輛檢測以其檢測范圍大、工程量小、安裝簡單、成本低、信息豐富而逐步取代傳統的檢測方法。利用視頻進行車輛的識別,涉及兩個主要技術:車輛的檢測定位和車輛的識別。
車輛的檢測定位是車輛識別的基礎。車輛的檢測定位主要有兩種方法:一種是使用高斯對背景建模[1],然后使用視頻幀畫面減去背景即可得到前景運動車輛;另一種針對交通視頻采集器是固定的,可以使用幀差法得到運動目標。而目前車型分類主要有兩種方式:(1)利用特征提取算法提取圖像的特征,然后使用傳統機器學習分類器進行分類。例如:提取車輛圖像Harr-like特征[2],然后使用Adaboost[3]做特征選擇并進行分類;提取尾燈和車輛尺寸等特征[4],然后使用混合動態貝葉斯網絡(HDBN)[5]進行車型的分類;使用車輛邊緣信息作為特征[6],并使用Adaboost進行分類;通過高斯背景建模[7],提取背景,進而得到前景車輛,然后提取車輛寬高比、寬度等特征,并使用支持向量機[8](SVM)進行分類。(2)使用深度學習進行端到端的學習,模型自動具有特征提取能力。例如:使用神經網絡進行端到端的學習[9];使用深度置信網絡[10](DBN)進行車輛、行人的識別。然而,第一種方法識別正確率普遍低于第二種方法,第二種方法又具有很高的時間復雜度,不具有實時性。
針對以上方法存在的問題,本文提出一種改進的卷積神經網絡模型,在滿足準確率的前提下,提高了測試效率。

圖2 改進的卷積神經網絡
在本部分中,將從運動目標的檢測[11]和對檢測出的運動目標進行識別兩個方面整體介紹車型分類系統。
目前做運動目標檢測的主流方法有相鄰幀差法[12]、光流法、背景消去法、基于統計學習方法等幾種。由于本文中車型分類系統的輸入視頻的采集器具有固定位置不變性,并且為達到實時性的需求,計算量不宜過大,故采用改變的幀差法[13]進行運動目標的檢測。改變過的幀差法流程圖見圖1。
詳細檢測流程如下:
(1)通過邊緣檢測算子Candy算子計算視頻流中的連續兩幀圖像Fk和Fk-1對應的Ek和Ek-1兩張邊緣圖像;
(2)差分兩張邊緣圖像Ek和Ek-1得到Dk;
(3)將Dk劃分為多塊,并統計非0的塊記為Sk;
(4)根據閾值對Sk進行二值化,從而可以得到整個圖像塊對應的矩陣M;
(5)對矩陣M中的非0值進行連接,并刨去過小且獨立的區域;

圖1 目標檢測流程圖
(6)獲取包含運動目標的最小外接矩形。
本文使用改進的卷積神經網絡進行目標的識別,卷積神經網絡相比傳統機器學習分類器,例如SVM和AdaBoost,具有以下優點:
(1)傳統機器學習分類器對圖像進行分類,需要人工提取特征,如SIFT、SURF、PCA-SIFT、HOG、Harris等;得到這些特征的特征向量一般需要很大的計算量,且還需對圖像進行預處理操作,而卷積神經網絡的卷積層具有自動抽取特征能力,直接將原圖像輸入網絡即可分類。
(2)卷積神經網絡的不同卷積層可以提取不同層次的特征,且在一定層數內,層數越深,可以抽取越高層的特征。
(3)同一輛車輛在不同環境下外觀表現很復雜,采集器距離、高度、角度、光照等都對其影響很大,人工設計特征算子無法考慮所有的情況,而卷積神經網絡對縮放、平移等仿射變換具有很好的抵抗力,從而可有效克服環境帶來的影響。
卷積神經網絡的卷積層可以抽取多量且豐富的圖像特征,并且這些特征一般具有抗仿射變換、平移不變性、旋轉不變性、尺度不變性等,而且隨著卷積層數的增加可以抽取到越來越高層次的特征,故卷積神經網絡相比淺層網絡在目標識別領域具有很大的優勢。然而卷積神經網絡的模型計算量主要集中在卷積層的計算,因此卷積層數的增加必然導致計算量的增加直至無法滿足實時性需求。譬如經典的目標識別網絡AlexNet[14]具有5個卷積層,其卷積層計算時間占整個網絡前傳時間的0.841;ResNet-50[15]具有48個卷積層,其卷積層計算時間占整個網絡前傳時間的0.999。
由于目標識別任務中,不同目標之間的差異性不一樣,有的目標之間具有顏色、形狀等明顯差異,有的目標之間只有紋理差異,從而識別過程中可以考慮具體情況對于不同類別目標的識別采用提取不同層次的特征進行比較的策略來減少大量的卷積計算。由此本文針對車型識別應用,改進卷積神經網絡模型,模型如圖2所示。
本模型在原始卷積神經網絡的基礎上改進而來,模型主要由多個卷積層(包括池化和激活函數等)和兩個分類器組成(原始卷積神經網絡只有一個分類器)。其中分類器1和分類器2分別負責不同的任務,分類器1負責對低層特征進行分類,分類器2負責對高層特征進行分類,且分類器1與分類器2共享模型前面的卷積層;最終分類結果由分類器1和分類器2共同決定,計算公式如下:
(1)

式(1)中,Pres為最終分類結果,Pclass1和Pclass2分別為分類器1和分類器2的輸出結果,且都是n維的概率列向量(n對應n個類別)。Fclass1,Max為Pclass1列向量中的最大值,Fclass1,Sec為Pclass1列向量中的次大值。ε為閾值,控制最終結果是否考慮分類器2的結果。sign(x)函數是符號函數。
圖2中的模型:分類器1對兩個卷積層提取的特征進行分類,分類器2對5個卷積層提取的特征進行分類,公共卷積層是前兩個卷積層。模型也可看成兩個卷積神經網絡,分別對應粗黑體實線框中的子模型和虛線框中的子模型,兩個子模型之間共享部分卷積層且相互牽制。
(1)使用數據集前向傳播和反向傳播訓練虛線框中的子模型(即一個普通的卷積神經網絡);
(2)將數據集通過前面的公共卷積層,得到特征數據集,使用特征數據集訓練分類器1,并反向傳播時微調公共卷積層參數。
(1)對于一個測試用例test,經過兩層卷積層時,得到的是低層特征;
(2)進程1將低層特征輸入到分類器1進行分類操作;
(3)進程2繼續高層特征的提取;
(4)若分類器1分類完成,輸出的概率列表中,最大概率與次大概率之間的差值大于某個閾值,即很大置信度相信低層特征即可分類正確,此時輸出最大概率類,并終止進程2的計算,進行下一測試用例,即式(2):
Ctest=P1test
(2)
(5)否則,即辨認不出是最大概率類還是次大概率類,則等待虛線框子模塊測試結果,最終結果將由分類器1與分類器2按權重共同決定,即式(3):
(3)
上式中(假設分為5類,向量為5維),第一個向量為分類器1輸出的概率向量且只保存最大值與次大值,其他概率項置0(假設類1和類3分別為最大、次大概率);第二個向量為分類器2輸出的概率向量;α和β分別為向量1和向量2的權重系數;由于分類器1無法高置信度地辨認最終結果為最大概率類還是次大概率類,且分類器2對更高層次特征進行分類,因此最終結果將更偏向于分類器2的結果,即保證α<β且α+β=1;最終結果Ctest取向量1與向量2的加權和。
為了驗證所提方法的有效性和可行性,利用OpenCV和Caffe分別進行車輛檢測和車型識別的實驗。處理器選用因特爾Core i7,8 GB內存,顯卡選用英偉達GEFORCE GTX850M。實驗數據為廈門各路口監控視頻,有白天、陰雨天和黑夜的視頻,視頻分辨率為1 280×720,幀率為30幀/s。
系統架構如下:系統輸入為交通視頻,輸出為5種分類類別,分別為小轎車類別、巴士類別、卡車類別、摩托車類別、非機動車類別。系統工作流程為:系統先通過運動目標檢測模塊獲取交通視頻中的運動目標所在區域的外接矩形圖像,然后進行人工標注,最后訓練和測試分類模型。系統架構如圖3所示。

圖3 系統架構圖
本文以廈門公路局提供的廈門各路段監控視頻為系統實驗數據,所有視頻均為公路實際監控過程中的真實視頻。監控視頻來自于三個鏡頭,每個鏡頭大約有45 h的監控視頻;三個鏡頭視頻采集角度如圖4所示。

圖4 三個鏡頭信息
實驗中將三個鏡頭統一起來工作,所有視頻經過運動目標檢測模塊后,檢測到的有效車輛圖片并人工標記的有40 000張。其中各種車型對應的數量如表1所示。

表1 車輛檢測模塊檢測結果
從巴士車、小轎車、摩托車、卡車中各抽取50%的數據作為測試集;各類剩余50%作為原始訓練集。由表1可知,由于巴士車數量只有小轎車的1/10,直接將原始訓練集進行分類模型的訓練會有嚴重的類別不平衡問題,故執行下列操作:將剩余的1 000張巴士車圖片使用旋轉、復制、翻轉等操作增加到10 000張,其他各類類比此操作,從而生成新的訓練數據集,見表2。非機動車類型包括自行車、行人、背景等。各車型部分樣本見圖5。

表2 運動目標分類模塊數據集

圖5 各車型部分樣本
由于實驗效果需要對比,故實驗中不僅訓練本文提出的模型,還需訓練經典的AlexNet模型(原模型輸出1 000類,改變模型輸出5類)與之形成對比。
在實驗中,訓練數據集由于類別不平衡做了一些數據集擴大操作,但是最終訓練集也只有50 000張圖片;然而本文提出的模型具有5個卷積層以及兩個分類器,從而訓練集太小會導致模型過擬合,故本實驗中使用遷移學習[16]的思想,遷移經典模型卷積層參數作為本實驗模型的初始化參數。使用ImageNet龐大的數據集訓練的AlexNet模型具有很強的圖像特征抽取能力,故本實驗中遷移此模型卷積層的參數到實驗模型上,然后使用訓練集finetune[17]實驗模型。
圖6和圖7分別描述了實驗模型和AlexNet模型測試集上的錯誤率和測試時間與ε取值的關系,其中錯誤率由式(4)計算。隨著ε取值由0到1,錯誤率整體呈下降趨勢,最終趨于AlexNet模型的錯誤率;批量測試時間整體呈上升趨勢。由分析可知,當ε=0時,實驗模型等價于圖2中粗體實線框中對應模型,整個模型只有兩個卷積層加分類器1,因此模型準確率較低,但批量測試時間較短;當ε=1時,實驗模型等價于圖2中虛線框中對應模型,也就是經典的AlexNet模型,因此模型準確率較高,基本等于AlexNet模型的正確率,但批量測試時間很長,稍微高于AlexNet模型的測試時間(這是由于兩個模塊占用更多計算機資源導致的)。聯合圖6和圖7分析可得,當0<ε<1時,取合適的ε可以使得準確率基本等于AlexNet模型,但是時間效率高于AlexNet模型。
表3展示了ε=0.35時實驗模型與AlexNet模型在分類準確率和效率上的對比。實驗模型準確率不僅稍高于AlexNet模型,而且批量測試時間比AlexNet模型降低了21.99%,因而,模型具有很高的測試效率。

(4)
本文針對車型識別應用,改進卷積神經網絡模型。改進的模型中,具有5個卷積層和2個分類器,2個分類器分別負責對不同層次的特征進行分類,由于提取不同層次特征即分類,故可以節省部分高層特征提取的時間。在車型分類的實驗中,本模型分類的正確率不僅不低于AlexNet模型,而且批量測試效率得到了大幅度的提升。由于本模型準確率稍高于AlexNet模型,故筆者將在提高準確率方面做進一步研究。

圖6 錯誤率與ε取值的關系圖

圖7 批量測試時間與ε取值的關系圖

車型改進的AlexNetAlexNet分類/測試正確率分類/測試正確率巴士車964/1 0000.964962/1 0000.962小轎車9 923/10 0000.9929 891/10 0000.989摩托車3 924/4 0000.9813 920/4 0000.980卡車4 635/5 0000.9274 674/5 0000.935非機動車4 690/5 0000.9384 685/5 0000.937合計24 136/25 0000.965 4424 132/25 0000.965 28總測試時間/s845.31 083.7
[1] ZIVKOVIC Z. Improved adaptive Gaussian mixture model for background subtraction[C]//Proceedings of the 17th International Conference on Pattern Recognition. IEEE, 2004: 28-31.
[3] KAFAI M, BHANU B. Dynamic Bayesian networks for vehicle classification in video[J]. IEEE Transactions on Industrial Informatics, 2012, 8(1): 100-109.
[4] MURPHY K P. Dynamic bayesian networks: representation, inference and learning[D]. Berkeley: University of California, 2002.
[5] KHAMMARI A, NASHASHIBI F, ABRAMSON Y, et al. Vehicle detection combining gradient analysis and AdaBoost classification[C]//Proceedings of the IEEE Intelligence Transportation Systems, 2005: 66-71.
[6] CHEN Z, PEARS N, FREEMAN M, et al. Road vehicle classification using support vector machines[C]// IEEE International Conference on Intelligent Computing and Intelligent Systems. IEEE, 2009: 214-218.
[7] SUYKENS J A K, VANDEWALLE J. Least squares support vector machine classifiers[J]. Neural Processing Letters, 1999, 9(3): 293-300.
[8] Liu Yiguang, You Zhisheng. A neural network for image object recognition and its application to car type recognition[J]. Computer Engineering, 2003, 29(3): 30-32.
[9] WU Y Y, TSAI C M. Pedestrian, bike, motorcycle, and vehicle classification via deep learning: deep belief network and small training set[C]//2016 International Conference on Applied System Innovation (ICASI). IEEE, 2016: 1-4.
[10] HINTON G E. Deep belief networks[J]. Scholarpedia, 2009, 4(5): 5947.
[11] 萬纓, 韓毅, 盧漢清. 運動目標檢測算法的探討[J]. 計算機仿真, 2006, 23(10): 221-226.
[12] SUN Z, BEBIS G, MILLER R. On-road vehicle detection: A review[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2006, 28(5): 694-711.
[13] Zhan Chaohui, Duan Xiaohui, Xu Shuoyu, et al. An improved moving object detection algorithm based on frame difference and edge detection[C]//Fourth International Conference on Image and Graphics. IEEE, 2007: 519-523.
[14] KRIZHEVSKY A, SUTSKEVER I, HINTON G E. Imagenet classification with deep convolutional neural networks[C]//Advances in Neural Information Processing Systems, 2012: 1097-1105.
[15] He Kaiming, Zhang Xiangyu, Ren Shaoqing, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2016: 770-778.
[16] PAN S J, YANG Q. A survey on transfer learning[J]. IEEE Transactions on Knowledge and Data Engineering, 2010, 22(10): 1345-1359.
[17] OQUAB M, BOTTOU L, LAPTEV I, et al. Learning and transferring mid-level image representations using convolutional neural networks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2014: 1717-1724.