朱世懂,姜麗芬,孫華志,馬春梅
(天津師范大學計算機與信息工程學院,天津300387)
隨著我國經(jīng)濟不斷發(fā)展,車輛不斷增多,給交通管理帶來了巨大的挑戰(zhàn).在現(xiàn)實的交通管理過程中,車輛檢測技術發(fā)揮著重要的作用,其在高速公路收費站、城市道路管理、城市交叉路口和停車場中都得到了廣泛的應用,為車輛管理提供了基礎支持[1].
近年來,隨著計算機和圖像處理技術的不斷發(fā)展,機器視覺檢測方法已經(jīng)取代傳統(tǒng)方法成為現(xiàn)代智能交通系統(tǒng)的一個重要組成部分[2].如何設計高效的車輛檢測算法,提高檢測準確率是目前人們最關注的問題.早期的機器視覺檢測方法,主要利用車輛相對于靜態(tài)背景都是運動的這一特性,如,幀間差分法[3]利用視頻中相鄰幀之間的關系來判斷車輛的位置從而進行檢測,背景差分法[4]將待檢測圖像與背景圖像相減判斷對應像素是否為車輛,還有基于光流法的車輛檢測方法[5]等,而這些方法對于場景光照、運動速度等外在因素的變化有一定的要求,因此準確率和魯棒性不高.
隨著機器學習的不斷發(fā)展與應用,以機器學習理論為基礎的檢測算法成為當前車輛檢測領域研究的熱點,當前比較成熟的車輛檢測方法主要基于車輛特征結(jié)合分類器的模式,如,基于梯度方向直方圖特征和支持向量機的車輛檢測方法[6],使用Adaboost結(jié)合Haar-like特征進行車輛檢測的方法[7]等,但這類方法對于復雜背景下的車輛檢測效率不高.卷積神經(jīng)網(wǎng)絡在車輛檢測方面的精度很高[8],但是需要的網(wǎng)絡層數(shù)較多,復雜度較高,訓練時間較長,并不適用于現(xiàn)階段的車輛檢測任務.文獻[9]提出了一個通過PCA技術組成的簡單的深度學習網(wǎng)絡:PCANet,有研究表明它對于手寫數(shù)字識別以及人臉識別[10]都有良好的效果,但其要求圖像質(zhì)量較高,圖像中的噪聲必須很小,當目標物體周圍的背景過多時,其提取特征的效果不是很好.
針對單支PCANet的局限性,本文嘗試使用2條PCA數(shù)據(jù)變換流,建立并行網(wǎng)絡提取車輛輪廓特征和紋理特征,用2種車輛數(shù)據(jù)集訓練網(wǎng)絡,經(jīng)過融合實現(xiàn)并行網(wǎng)絡的同步學習,進而對車輛進行檢測.
車輛檢測任務是根據(jù)輸入的圖像信息,提取各區(qū)域的圖像特征,通過分類來判斷圖像是否為車輛.
本文的車輛檢測模型結(jié)構如圖1所示,主要用2個PCANet對車輛圖像進行特征提取,將得到的特征進行加權融合,訓練一個SVM分類器,用于車輛圖像的分類.
圖1 基于PCANet的車輛檢測模型結(jié)構Fig.1 PCANet-based vehicle detection model
選取車輛圖片構成原圖像數(shù)據(jù)集,使用卷積神經(jīng)網(wǎng)絡提取的輪廓圖片作為輪廓數(shù)據(jù)集,分別對特征提取網(wǎng)絡進行訓練,得到2個特征提取器.對實際場景進行檢測時,使用多尺度選擇框,實現(xiàn)對圖像中不同大小的車輛進行檢測.
特征提取網(wǎng)絡使用兩階段的PCANet架構,網(wǎng)絡結(jié)構如圖2所示.
圖2 特征提取網(wǎng)絡結(jié)構Fig.2 Network structure of feature extraction
假設有N張像素大小為m×n的車輛圖片樣本{Xi}Ni=1,對圖像進行塊采樣,假設采樣塊大小為k1×k2,第 i張圖片的所有采樣向量為 xi,1,xi,2,…,xi,mn∈Rk1k2,其中xi,j表示圖像Xi的第j個采樣向量.然后對每個向量進行去均值化,即每個采樣向量減去向量的平均值,得到表示去均值化后的向量.為所有輸入的車輛圖像構造相同的矩陣并把它們結(jié)合在一起,得到
在第一階段,使用X作為輸入來學習L1個PCA濾波器,得到 W1l,l=1,2,…,L1,然后讀取車輛圖像矩陣 Ii,i=1,2,…,N,用得到的濾波器對圖像進行卷積運算
其中:“*”表示二維卷積;W1l為第一階段的濾波器;Ili為第i張圖像第l個濾波器的輸出.
在第二階段,重復和第一階段相同的過程,對第一階段的輸出向量進行去均值化等操作,進而得到第二階段的 L2個濾波器 W2k,k=1,2,…,L2,使用第一階段的輸出Ili作為第二階段的輸入,對于每個輸入Ili,將有L2個輸出,將Ili與W2k做卷積運算
Oli為第i張圖像對應于第一階段的第l個輸出的第二階段的輸出,其中包含了L2個卷積結(jié)果,第二階段每張圖像輸出總數(shù)為L1L2,然后對這些輸出進行二值化,H()是一個 Heaviside函數(shù),將每個像素值置為正數(shù)或零,然后將每個二進制值編碼為(0,2L2-1)之間的十進制數(shù),最后,將每一個輸入Ili得到的L2個輸出合并為一個矩陣
最終每張圖像得到L1個輸出Tli,將每個Tli按照重疊分塊模式分為B塊,統(tǒng)計每個塊的直方圖信息,然后將各個塊的直方圖特征進行級聯(lián),最終得到每張圖片的特征向量fi,即圖像的特征表示
采用2類數(shù)據(jù)集作為輸入分別訓練2個特征提取器,這2類數(shù)據(jù)集分別為車輛圖片構成的數(shù)據(jù)集和用卷積神經(jīng)網(wǎng)絡提取的車輛輪廓的數(shù)據(jù)集,圖像數(shù)據(jù)經(jīng)過PCANet網(wǎng)絡處理后會得到2類圖像特征,為了降低復雜度,更有效地訓練SVM分類器,將其進行融合,融合公式為
其中:fli為第i張圖片的第l個特征,n為特征提取器個數(shù),F(xiàn)i為融合后的圖像特征.
在用實際場景圖像進行車輛檢測時,由于拍攝角度問題,車輛圖像的大小可能不一致,如果定義同一種尺寸大小的選擇區(qū)域可能會丟失車輛信息,出現(xiàn)漏檢或多輛車在同一檢測框中的現(xiàn)象,因此本文選擇不同尺寸的檢測框,對實際場景圖進行檢測,再將檢測結(jié)果合并.
合并檢測框的方法是,每個檢測框都有一個中心點,計算任意2個檢測框中心點的距離,如果距離小于某一閾值,那么就將其合并為一個檢測框.距離約束公式為:
其中:(xi,yi)、(xj,yj)為任意2個檢測框的中心點坐標,α為距離閾值.
在特征融合之后需要判斷這些特征的類別,也就是對圖像進行分類,本文使用SVM(支持向量機)[11]分類器來分類,SVM是一種機器學習算法,可以進行數(shù)據(jù)分析和模式識別,也可以用于分類和回歸分析,SVM分類器通過一個非線性映射將作為學習樣本的特征向量映射到一個高維的特征空間中,在這個空間中構造最優(yōu)分類面,從而將提取的圖像特征進行正確的分類.本文選取徑向基函數(shù)將車輛特征屬性在低維空間的非線性問題映射成高維特征空間的線性問題,徑向基函數(shù)為
然后在新空間中求解最優(yōu)分類面,通過最大化分類間隔找出最優(yōu)分類超平面,最終轉(zhuǎn)化為二次最優(yōu)規(guī)劃問題,進行圖像分類.
本文使用公開的VehicleID數(shù)據(jù)庫[12],從中抽取8 000張車輛圖片作為正樣本集,8 000張背景圖片作為負樣本集,并將圖像的大小歸一化為64×64,對其進行標注,作為原圖像數(shù)據(jù)集.部分正負樣本見圖3.
由于PCANet對噪聲較大的車輛圖像訓練效果較差,因此設計了一個3層的簡單卷積神經(jīng)網(wǎng)絡,經(jīng)過訓練,對正、負樣本進行輪廓提取,形成輪廓圖像數(shù)據(jù)集,部分輪廓圖像見圖4.
圖3 正負樣本Fig.3 Positive and negative samples
圖4 樣本輪廓Fig.4 Outline of samples
從原圖像數(shù)據(jù)集中隨機抽取80%的正負樣本作為原圖像訓練集D1,剩余20%作為測試集T,從輪廓圖像數(shù)據(jù)集中隨機抽取80%的正負樣本作為輪廓圖像訓練集D2.
用數(shù)據(jù)集D1和數(shù)據(jù)集D2分別訓練并行的PCANet,得到2個特征輸出,將這2個特征融合后輸入到SVM中,訓練SVM分類器.用測試集T對模型進行測試,實驗了不同濾波器尺寸對實驗測試集準確率的影響,準確率為檢測到的車輛圖片占測試集圖片總數(shù)量的比例.根據(jù)文獻[9]中網(wǎng)絡的初始設置得出經(jīng)驗,將2階段的濾波器個數(shù)預先定為8,可以在未知實驗結(jié)果的情況下保證最小誤差.濾波器尺寸從1×1依次變化到9×9,實驗結(jié)果見圖5.結(jié)果顯示濾波器尺寸大小為3×3時準確率最高,這是因為當濾波器尺寸足夠小時,對車輛特征的提取也就更加精確.
將濾波器尺寸固定為3×3,由于濾波器數(shù)量太少會增大計算復雜度,降低效率,所以設濾波器數(shù)量最小值為4,因為濾波器尺寸為3×3,根據(jù)主成分分析原理,濾波器數(shù)量最多為9,因此對濾波器數(shù)量從[4,4]到[9,9]進行了實驗,結(jié)果見圖 6.實驗結(jié)果顯示當濾波器數(shù)量為[8,7]時測試準確率最高,這是因為隨著濾波器數(shù)量的增加,提取的車輛特征維度增高,對車輛的識別也就更加精確.
圖5 不同濾波器尺寸準確率Fig.5 Accuracy of different sizes of filter
圖6 不同濾波器數(shù)量準確率Fig.6 Accuracy of different numbers of filter
實驗得到的網(wǎng)絡最優(yōu)參數(shù)為濾波器尺寸3×3,濾波器數(shù)量[8,7],使用本文算法對2個公開的車輛數(shù)據(jù)集進行了測試,分別為Stanford-Cars[13]和PKU-VD[14],Stanford-Cars數(shù)據(jù)集覆蓋多種規(guī)格(如轎車、轎跑車、敞篷車、兩廂車和貨車等)的車輛,實驗選取了其中3 000張車輛圖片作為測試集,PKU-VD數(shù)據(jù)集中共有221 519輛車(共約140萬張圖像),實驗選取了其中3 000張車輛圖片作為測試集.實驗結(jié)果見表1,使用分類常用指標精確度P(precision)和召回率R(recall)對算法進行評估,結(jié)果表明本文算法具有良好的分類效果.
精確度P的計算公式為:
其中:TP為檢測到的車輛實際為車輛的圖片數(shù)量,F(xiàn)P為檢測出的車輛實際為非車輛的圖片數(shù)量.召回率R的計算公式為:
其中FN為檢測到的非車輛實際為車輛的圖片數(shù)量.
表1 不同數(shù)據(jù)集測試結(jié)果Tab.1 Test results for different datasets
使用上述最優(yōu)網(wǎng)絡參數(shù)將單一PCA網(wǎng)絡和并行PCA網(wǎng)絡進行比較,實驗結(jié)果見圖7,以圖片數(shù)量作為因變量,由圖7可見,并行網(wǎng)絡結(jié)構對于車輛的識別準確率明顯優(yōu)于單一網(wǎng)絡.
圖7 單、并行網(wǎng)絡架構對比實驗準確率Fig.7 Accuracies of comparison experiments between single and parallel network architectures
為了驗證本文方法的有效性,將其與傳統(tǒng)機器學習方法進行了對比,重現(xiàn)了3種基于傳統(tǒng)機器學習的車輛檢測方法,分別是基于PCA+LDA+SVM的車輛檢測方法[15],利用SVM分類器對車輛的Haar特征進行分類的車輛檢測方法[16],利用Adaboost實現(xiàn)的在線車輛檢測算法[17].對實際場景圖中的車輛進行檢測,共檢測3 000張圖片.由于訓練圖片大小為[64,64],因此將滑動窗口大小與圖片大小成比例的設置為[128,128]、[64,64]、[32,32]、[16,16],對應滑動步長設置為[64,32,16,8],這樣有助于和車輛圖像進行匹配,減少計算量.將多尺度檢測框合并閾值α從1依次遞增到10,實驗得出閾值α的最優(yōu)值為4.最終得到車輛識別的統(tǒng)計結(jié)果見表2,其中DR(detection rate)為算法的車輛檢測率,即檢測到實際場景圖中車輛的數(shù)量與圖中車輛總數(shù)的比值,F(xiàn)DR(false drop rate)為車輛誤檢率,即檢測到錯誤車輛的數(shù)量與檢測出的車輛總數(shù)的比值.由表2可見,本文的并行交叉PCANet車輛檢測算法在檢測率方面優(yōu)于前2種傳統(tǒng)方法,相比于第3種優(yōu)勢不明顯,但是在誤檢率方面要明顯優(yōu)于第3種方法,綜合比較本文方法更加適合復雜場景下的車輛檢測任務.
表2 車輛檢測方法對比實驗結(jié)果Tab.2 Experimental results of vehicle detection methods
本文提出并行交叉PCANet進行特征提取和支持向量機分類的車輛檢測方法,用2條簡單深度學習網(wǎng)絡PCANet,以并行方式對車輛進行特征提取,提高了算法的學習能力,訓練支持向量機分類器具有更好的分類能力,可有效對車輛進行檢測.實驗結(jié)果表明,本文的車輛檢測方法在復雜場景下的檢測率和誤檢率優(yōu)于傳統(tǒng)方法,具有較好的應用前景.但是該算法在部分遮擋較為嚴重的場景下的車輛定位還不夠精確,因此在本文工作的基礎上還應改進算法對遮擋車輛的檢測效果.