李大湘,王小雨+
(1.西安郵電大學 通信與信息工程學院,陜西 西安 710121; 2.西安郵電大學 電子信息現場勘驗應用技術公安部重點實驗室,陜西 西安 710121)
車型分類算法中[1],主要包括特征提取和分類器設計兩部分。特征提取主要有:基于顏色、紋理、形狀等底層特征,例如HOG特征[2]、Gabor小波[3,4];基于底層特征的稀疏編碼、Fisher編碼等編碼特征[5,6];基于深度神經網絡的特征,例如AlexNet[7]、VGG-16[8]、VGG-19[8]、GoogleNet[9]、ResNet[10]等被提出并運用到圖像分類任務。在特征提取技術中,代表方法是SIFT特征與稀疏編碼相結合,SIFT特征雖然可獲取圖像局部細節特征,但對于車型圖像,因其某些特征點附近紋理不充足,易造成誤差。而深度卷積神經網絡可通過調整卷積層參數獲取圖像的任意尺度信息,且全連接層將卷積層多維特征矢量轉換為一維特征矢量,易于分類操作。因此,將深度卷積神經網絡(deep convolutional neural network,DCNN)特征作為車型圖像的特征表示。
在分類器設計中,主要有支持向量機(support vector machine,SVM)、KNN[11,12]、貝葉斯分類器[13,14]及深度神經網絡中的Softmax分類器等。對于車型特征分類,上述方法均采用單一分類器及相同參數設置,對所有特征一概而論從而忽略了車型的類間差異,造成分類精度下降。在深度神經網絡框架中,由于數據量、訓練次數等設置不合適,會造成過擬合、欠擬合等問題。
為解決上述問題,本文提出一種基于DCNN特征及集成學習(DCNN-ALSVM)的車型分類算法,其框架如圖1所示。首先對圖像提取DCNN特征,將全連接層的輸出矢量作為圖像的特征表示,采用PCA技術,降至100維,以提高分類速度。以拉格朗日支持向量機(Lagrangian support vector machine,LSVM)為Adaboost的基分類器,用集成分類器對DCNN特征進行分類。充分利用車型特征的類間差異,避免深度神經網絡中由于樣本少、訓練次數少等帶來的overfitting問題,并提高分類精度。

圖1 總體框架
微調預訓練好的VGG16網絡,提取圖像的DCNN特征,將全連接層Fc7的輸出作為圖像的特征表示,得到一個4096維的特征矢量,表示為
(1)
為了加快分類速度,將4096維的特征采用PCA技術,降至100維,如下
Xi={xj|j=1,…,100},i=1,…,N
(2)
這里N表示樣本數量。
采用文獻[15]提出的拉格朗日支持向量機(LSVM)作為弱分類器學習,即基分類器。考慮分類J維(特征為100維)實空間R*中N個點,J×N的特征矩陣X表示N個樣本點,每個Xi屬于正類還是負類,由對角矩陣D來說明,D的對角元素為+1或-1,這個標準線性核SVM為如下的二次規劃問題

(3)


(4)
(5)
記式(5)為:h(u),其KKT條件為
0≤u⊥Qu-e≥0
(6)
由于0≤a⊥b≥0?a=(a-αb)+,α>0,式(6)可寫成:Qu-e=((Qu-e)-αu)+,α>0,式(5)即LSVM算法的循環公式為
uk+1=Q-1(e+((Quk-e)-αuk)+),k=0,1,…
(7)
當uk+1-uk>cmin,cmin為最小邊界損失。得到最優結果u*=uk+1,最終得到預測結果y*為
y*=vu*
(8)
Adaboost算法的總體思路是通過訓練數據的分布構造一個分類器,由誤差率ε求出這個弱分類器的權重,并迭代更新訓練數據的分布,直到達到迭代次數,如圖2所示。每次以概率Pm抽取訓練樣本,記為X={(x1,y1),(x2,y2),…,(xn,yn)},n≤N。

圖2 Adaboost-LSVM算法框架
本文提出的DCNN+ALSVM算法如下:

迭代m次:
步驟1 用權重{αi}加權訓練樣本集,用LSVM算法訓練弱分類器hm;

步驟3 如果c>cmin返回步驟1;



BIT-Vehicles數據集:由北京理工大學實驗室從監控視頻中截取搜集整理。該數據集常用作車型分類,包括6種車型:558張公共汽車圖像、883張微型客車圖像、476張小型貨車圖像、5922張轎車圖像、1392張“運動型多功能車”(sport utility vehicle,SUV)圖像和822張卡車圖像,如圖3所示。從每類中選擇400張圖像,共2400張圖像,分為6個二分類問題,正負類中分別選擇75%的圖像用來訓練,剩下的25%圖像用于測試。

圖3 BIT數據集樣本
MIO-TCD數據集:該數據集分為用于分類的648 959張圖像和用于定位的137 743張圖像兩部分。可在http://podoce.dinf.usherbrooke.ca/challenge/dataset/獲取。本文采用該數據集中用于分類的部分,共有11類,分別為:鉸鏈式卡車,自行車,公共汽車,轎車,摩托車,非機動車輛,行人,皮卡,單元卡車,廂式作業車,背景。樣本如圖4所示。同樣地,從每類中隨機選擇1500張圖像,分為11個二分類問題,75%圖像作為訓練集,25%圖像作為測試集。

圖4 MIO-TCD數據集樣本
3.2.1 實驗方法與結果
微調預訓練好的VGG16網絡,提取DCNN特征,網絡參數設置:學習率為0.001,動量為0.9,最大迭代次數為50 000,其它參數不變。將N種車型分為N個二分類問題,每個二分類問題分別用Adaboost-LSVM進行分類學習。該實驗是在處理器為Inter(R) Xeon(R) CPU E5-2620 v4 @2.10 GHz DDR4 2400 MHz EEC Reg 128 G,GPU為4×NVIDIA Titan XP的電腦上完成的。
分別在BIT和MIO-TCD數據集上實驗測試,每類車型的分類準確率見表1和表2。可看出,在BIT數據集上,平均分類準確率為84.5%,其中客車分類效果最好,達到98%。在MIO-TCD數據集上,平均分類準確率為83%,其中鉸鏈式卡車分類效果最好為88%。

表1 BIT數據集實驗結果/%

表2 MIO-TCD數據集實驗結果/%
3.2.2 驗證PCA降維性能
采用PCA技術將4096維DCNN特征降至100維,分別對降維前后的特征進行分類,以BIT數據集中客車和MIO-TCD數據集中鉸鏈式客車為例進行分類實驗,實驗結果見表3和表4。可見,PCA降維后的特征進行分類,準確率與降維前一樣,但分類所用時間大幅降低。所以采用降維后的特征矢量進行分類。

表3 BIT數據客車分類時間

表4 MIO-TCD數據鉸鏈式卡車分類時間
3.2.3 驗證DCNN特征性能
選擇形狀和紋理特征分類作對比實驗,分別提取圖像的HOG、HU矩、wavelet小波特征,然后提出的Adaboot-LSVM分類算法進行分類。同樣地在BIT數據集和MIO-TCD數據集上分別做實驗。實驗結果如圖5和圖6所示。由圖可看出,DCNN特征對于車型分類來說,優于其它底層特征。

圖5 BIT數據集提取不同特征的分類結果

圖6 MIO-TCD數據集提取不同特征的分類結果
3.2.4 驗證Adaboost-LSVM分類算法性能
對圖像的DCNN特征,分別進行單LSVM分類,和集成算法Bagging-LSVM分類。同樣在BIT和MIO-TCD數據集上分別做實驗。實驗結果比較如圖7和圖8所示。由圖可見,文本提出的算法,優于使用單LSVM和Bagging-LSVM算法。

圖7 BIT數據集上不同分類算法對比

圖8 MIO-TCD數據集上不同分類算法對比
本文提出基于DCNN特征與集成分類算法對于車型分類準確率有很大提高。首先對圖像提取DCNN特征,然后進行Adaboost-LSVM分類。把N種車型分為N個one-vsall二分類問題,每個二分類問題均采用Adaboost-LSVM進行分類。為了驗證該算法的有效性和泛化能力,在BIT和MIO-TCD數據集上分別實驗,結果表明,該算法有較好的分類能力和泛化能力。