向 沖,廖駿杰
(1.長江職業(yè)學(xué)院數(shù)據(jù)信息學(xué)院,湖北 武漢 430070;2.武漢職業(yè)技術(shù)學(xué)院電子信息工程學(xué)院,湖北 武漢 430074)
自動車型分類(automatic vehicle classification,AVC)是支撐諸如智慧城市、自動駕駛、智能交通、交通分析與車輛安全等不同領(lǐng)域的重要基礎(chǔ)條件[1]。高性能計算,如具有圖形處理單元(graphics processing unit,GPU)的云計算、機器學(xué)習(xí)算法等的發(fā)展,加速了許多基于計算機視覺的AVC方法的開發(fā)[2]。作為AVC的實際用例,已經(jīng)有許多應(yīng)用場景部署了自動收費系統(tǒng)。但由于車型識別中的任何誤差都會帶來經(jīng)濟損失,因此仍然需要通過人力來手動糾正錯誤的分類結(jié)果。
基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的方法越來越多地被應(yīng)用于計算機視覺的目標(biāo)識別。最近基于圖像的AVC更是廣泛采用了此方法[3]。作為獨立分類器,基于CNN的分類器相對于光學(xué)傳感器(optical sensor,OS)而言,在整體性能上有顯著的改進。但是CNN仍存在局限性,例如從前視圖中很難區(qū)分重型車輛的類別。而這些重型車輛可以通過OS很好地進行分類。這表明,可以通過有效結(jié)合基于圖像的分類器與OS決策,開發(fā)1種針對AVC的識別方法。
因此,本文提出了1種新穎的車型識別方法。該方法在以下2個階段分別執(zhí)行集成方案。第一階段集成來自O(shè)S和CNN的輸出,從而提供1個集成特征向量作為下一階段的輸入。第二階段集成上一階段得到的特征向量而獲得的分類結(jié)果。這一步通過應(yīng)用梯度提升方法來執(zhí)行。試驗結(jié)果表明,本文提出的車型識別方法以顯著的優(yōu)勢勝過了現(xiàn)有系統(tǒng),能大大降低人力的使用。此外,與1組基于CNN方法的比較結(jié)果表明,本文提出的方法更優(yōu)。
多模態(tài)和多傳感器數(shù)據(jù)集成是基于早期集成和后期集成應(yīng)用于監(jiān)督和非監(jiān)督分類問題的技術(shù)。其中,后期集成[3]方法融合了用于分類不同模態(tài)或(與)傳感器數(shù)據(jù)的多個分類器的決策結(jié)果。一般而言,車輛分類通常使用不同的傳感器數(shù)據(jù)完成后期集成,例如應(yīng)變儀和光檢測傳感器。許多方法[4]組合了這些傳感器以提高準(zhǔn)確性。就組合方法而言,通常使用判別模型進行后期集成,例如支持向量機(support vector machine,SVM)、神經(jīng)網(wǎng)絡(luò)(neural network,NN)、隨機森林(random forest,RF)等。本文研究采用梯度提升方法。
文獻[5]提出了1種集成方法來識別3類目標(biāo),分別為汽車、行人和騎自行車的人。該方法將后期集成策略與SVM分類器相結(jié)合,以利用電荷耦合器件(charge coupled derive,CCD)和激光探測及測距系統(tǒng)(light detection and ranging,LIDAR)傳感器數(shù)據(jù)訓(xùn)練CNN模型。文獻[6]提出了1種基于后期融合的車輛檢測方法。該方法具有不同的數(shù)據(jù)模式,例如彩色圖像、密集深度圖和反射圖。以上這些方法采用了多層感知機(multilayer perceptron,MLP)融合,從每種模態(tài)訓(xùn)練的獨立CNN模型獲得的對象邊界框。盡管與這些方法的基本概念相似,但本文方法具有以下特點:①本文執(zhí)行的是分類任務(wù)而非檢測任務(wù);②模態(tài)不同,即本文為OS和攝像機相結(jié)合的模態(tài);③本文使用不同且更有挑戰(zhàn)性的數(shù)據(jù)集。
近年來,因基于CNN的目標(biāo)檢測與分類方法和開源的車輛數(shù)據(jù)集的突破性表現(xiàn),使得基于CNN的AVC變得非常流行。文獻[7]提出了1種級聯(lián)的基于部分圖像的車輛識別方法。該方法采用了潛在的SVM方法和基于部分的CNN模型。文獻[8]將SVM分類器應(yīng)用于從多個CNN提取的級聯(lián)特征。該方法的CNN模型根據(jù)車輛的整體和部分圖像對車輛進行分類。文獻[9]提出了1種具有不同CNN模型的空間加權(quán)池化操作,可以從經(jīng)過裁剪的圖像中提取重要特征。不同于上述提到的方法,本文研究將圖像視為整體輸入,而非經(jīng)過裁剪的車輛圖像。
本文設(shè)計的自動車型識別方法總體流程如圖1所示。

圖1 自動車型識別方法總體流程圖
本文方法可分為以下3個步驟:①利用OS直接提供類別標(biāo)簽決策;②使用攝像頭捕獲彩色圖像,并將其輸入CNN以確定車輛類型;③采用梯度提升分類器融合來自前置與后置OS獲得的離散類別標(biāo)簽,以及CNN分類器的連續(xù)類別概率,從而得到車輛類別。
CNN的基本架構(gòu)主要包括卷積操作、池化操作、激活函數(shù)、全連接層與損失層。
卷積操作的定式如式(1)所示。
(1)

池化操作應(yīng)用于局部空域中,會降低特征圖的空間分辨率。局部鄰域平均值的平均池化操作的計算如式(2)所示。
(2)
式中:Nx,y為局部空間鄰域。

全連接層通常出現(xiàn)在串聯(lián)層的末端,用于進一步提取特征。
損失層針對損失函數(shù)優(yōu)化模型參數(shù)。通常使用的Softmax損失函數(shù)具有以下形式:
(3)
式中:Yiyi為將第i個樣本分配給其真實類別標(biāo)簽yi的概率;N為訓(xùn)練樣本的數(shù)量。
(4)
式中:K為訓(xùn)練樣本的類別數(shù)量。
在式(3)和式(4)中,可以用任意的類標(biāo)簽替換真實的類標(biāo)簽yi,以計算所有類的概率集合。
本文方法使用基于超分辨率測試序列(visual geometry group,VGG)(CNN-1)和Inception(CNN-2)架構(gòu)的2個不同CNN模型。CNN-1通過以下方式修改VGG-16:①在最后的最大池化層后增加了1個7×7大小的平均池化;②取消最后2個全連接(fully connected,FC)層;③將第一個FC層中的神經(jīng)元數(shù)量從4 096個減少到1 024個;④在FC層之前(0.5%)和之后(0.25%)添加Dropout層,從而使VGG-16模型的復(fù)雜度降低為原來的九分之一,即僅包含15 MB的參數(shù)。主干網(wǎng)絡(luò)參數(shù)如表1所示。

表1 主干網(wǎng)絡(luò)參數(shù)
表1中,輸入數(shù)為224×234大小的圖像,最終分類層采用Softmax函數(shù),Dropout率為0.5。
CNN-2是Inception V3模型。在3.2節(jié)提供了CNN訓(xùn)練策略的詳細信息。這些模型將尺寸為224×224(CNN-1)和299×299(CNN-2)的圖像作為輸入,并提供類別概率的5維向量作為輸出。
梯度提升法是1種典型的異構(gòu)數(shù)據(jù)分類方法。它通過迭代組合弱分類器來構(gòu)建單個的強分類器。這種結(jié)合是通過貪婪算法實現(xiàn)的。

(5)
式中:wi為權(quán)重;ai為第i個樣本的目標(biāo)函數(shù)的值。
本文使用CatBoost算法進行梯度提升方法的分類。選擇CatBoost算法的原因是它可以融合多種類別的數(shù)據(jù),尤其是離散的類別數(shù)據(jù)。
本文使用具有代表性的VINCA數(shù)據(jù)集[10]進行試驗。VINCA數(shù)據(jù)集圖例如圖2所示。

圖2 VINCA數(shù)據(jù)集圖例
VINCA數(shù)據(jù)集由73 438張圖像組成,并且根據(jù)物理量(例如高度、重量與軸數(shù)等)將車型分為5個不同類別:第一類為高度小于2 m的44 437張輕型車輛數(shù)據(jù);第二類為高度為2~3 m的8 074張中型車輛數(shù)據(jù);第三類為高度超過3 m且有2個車軸的11 477張重型車輛數(shù)據(jù);第四類為高度超過3 m且有至少3個車軸的3 462張重型車輛數(shù)據(jù);第五類為包含摩托車、小汽車與三輪車在內(nèi)的6 400張車輛數(shù)據(jù)。此外,VINCA數(shù)據(jù)集還包括在不同條件下(如照明、遮擋、姿態(tài)、位置、多車存在等)的捕獲圖像。
首先,訓(xùn)練CNN模型以獲得每個圖像的分類概率。然后,對梯度提升方法進行訓(xùn)練,以獲取最終的類別標(biāo)簽。最后,將收集的數(shù)據(jù)集隨機分為訓(xùn)練-驗證-測試集,并分別按70%-15%-15%的比例來選擇訓(xùn)練數(shù)據(jù)集。每個圖像集上樣本的分布必須與整個數(shù)據(jù)集的分布相似。
3.2.1 CNN的訓(xùn)練
訓(xùn)練集中的圖像用于優(yōu)化CNN模型參數(shù)。CNN使用文獻[11]中的參數(shù)模型進行初始化。由3.1節(jié)的介紹可知,使用的數(shù)據(jù)集含有嚴(yán)重的類不平衡問題。其中,第一類與其他類樣本相比樣本數(shù)量更多。因此,本文使用加權(quán)Softmax損失作為目標(biāo)函數(shù)。其中,每個類別的權(quán)重對應(yīng)于該類樣本容量的倒數(shù)。L2正則化應(yīng)用于CNN參數(shù)。學(xué)習(xí)率設(shè)置為0.001。mini-batch大小設(shè)置為100。通過水平翻轉(zhuǎn)圖像,可以進一步擴充數(shù)據(jù)集。隨機梯度下降方法可用于參數(shù)優(yōu)化。
3.2.2 梯度提升方法的訓(xùn)練
梯度提升方法的訓(xùn)練數(shù)據(jù)是通過連接CNN中 Softmax層的輸出與來自O(shè)S的one-hot編碼值獲得的。該方法使用Catboost分類器,并且設(shè)置深度為6、學(xué)習(xí)率為0.03、最大迭代次數(shù)為500。
本小節(jié)在測試集上評估所提出的方法,并將其與對照方法進行性能比較。所使用的評價指標(biāo)為分類準(zhǔn)確率,并使用精準(zhǔn)度進行深入分析。各方法的準(zhǔn)確率與運行時間對比如表2所示。由表2可知,本文方法提供了最佳的結(jié)果。實際上,基于獨立CNN的方法與本文方法的巨大性能差距表明了本文方法的有效性。此外,與感興趣對象分類(object of interest classification,OIC)方法的比較證明了選擇無檢測分類方法的合理性。

表2 各方法的準(zhǔn)確率與運行時間對比
本文方法的主要對比方法如下。
①汽車整體分類(car classfication holist,CCH)[12]:使用Alexnet進行整體場景的汽車分類。
②OIC:首先使用在COCO數(shù)據(jù)集上訓(xùn)練過的RetinaNet目標(biāo)檢測器,從使用的數(shù)據(jù)集中裁剪感興趣對象;然后在經(jīng)過裁剪的圖像中訓(xùn)練VGG-14模型。
③僅使用本文方法的單一組件(即消融試驗):入口OS、出口OS、InceptionV3(CNN-2)和VGG-14(CNN-1)。
除了對比準(zhǔn)確性之外,試驗還對比了這些方法與本文方法的運行時間。運行時間是在具有12 GB GPU內(nèi)存的NVIDIA K80 GPU機器上測得的。表2的運行時間數(shù)據(jù)表明,本文方法是在合理的計算時間內(nèi)執(zhí)行的,因此對于車輛識別而言是完全可以接受的。CCH、CNN-1和CNN-2的對比表明,運行時間與CNN模型的復(fù)雜性有關(guān)。此外,由于本文的方法并行處理2個CNN,因此減少了時間復(fù)雜度。接下來,研究每種車輛類別的準(zhǔn)確性和精準(zhǔn)度,以深入分析本文方法及其組件的特性。表3為各車型的準(zhǔn)確率對比。

表3 各車型的準(zhǔn)確率對比
由表3可知:①除第四類車型,本文方法均提供了最佳準(zhǔn)確性;②前置OS的性能非常差;③后置OS在第四類車型表現(xiàn)最好,在第二類車型和第五類車型表現(xiàn)良好,在第三類車型和第一類車型表現(xiàn)最差。CNN模型的準(zhǔn)確性表明,CNN-2對于前三類車型更友好,而CNN-1對后兩類車型更友好。每個模型針對不同類別的分類優(yōu)勢證明了它們集成之后基本繼承了各自的優(yōu)點。表4為各車型的精準(zhǔn)度對比。

表4 各車型的精準(zhǔn)度對比
由表4可知,本文方法為所有車型提供了最佳精度。
表5為本文方法分類結(jié)果的混淆矩陣。

表5 本文方法分類結(jié)果的混淆矩陣
由表5可知,本文方法的精確度和召回率都在94%以上,說明了本文方法的誤識別和漏識別的概率較低。
基于訓(xùn)練數(shù)據(jù)集,計算CatBoost特征得分。CatBoost分類器的特征重要性排序如表6所示。

表6 CatBoost分類器的特征重要性排序
由表6可知,來自2個CNN的分?jǐn)?shù)都對最終決策有重要貢獻。此外,當(dāng)前置OS數(shù)量為2且后置OS為4時,OS表現(xiàn)最好。這證明了OS的輸入對于難以直接從圖像中推斷出的某些車輛屬性(例如軸數(shù)等)至關(guān)重要。
不同主干網(wǎng)絡(luò)的準(zhǔn)確率與損失值對比如表7所示。

表7 不同主干網(wǎng)絡(luò)的準(zhǔn)確率與損失值對比
3.4.1 CNN模型的選擇
初期在選擇本文方法的單獨組件方面,已經(jīng)檢驗了幾種CNN模型,即VGG-14、VGG-16、Inception、AlexNet、ResNet50、DenseNet和Xception。這些模型已按照3.2節(jié)中的相同試驗設(shè)置進行了訓(xùn)練。由表7可知這些模型的準(zhǔn)確性和損失值。本文方法正是根據(jù)這一研究結(jié)果選擇了VGG-14與Xception。
3.4.2 本文方法的局限性
本文方法的典型誤分類結(jié)果如圖3所示。

圖3 本文方法的典型誤分類結(jié)果
由圖3可知,誤分類的主要原因如下。
①不良的光照條件和遮擋,尤其是車軸和車輛頂部的遮擋。
②第二類車型由于其后面被遮擋的大篷車而經(jīng)常被錯誤分類,這導(dǎo)致車輛被歸類為第一類車型。
③其他原因,通常表現(xiàn)為會將第四類車型誤分為第三類。
將來可以通過以下幾種方法將這些錯誤減至最少。①通過收集更多不同的樣本,尤其是針對第三類車型和第四類車型的樣本,來增加訓(xùn)練數(shù)據(jù)。②使用數(shù)據(jù)擴充方法來得到更多數(shù)據(jù)。③配備高效的預(yù)處理器以應(yīng)對惡劣的環(huán)境條件。④通過引入改進損失函數(shù)來提高分類器的效率。⑤引入更深層的CNN模型。
不同于目前單一使用OS的系統(tǒng),本文提出1種多分類器集成方法用于高速路口中的自動車型識別。該方法通過組合來自O(shè)S的分類決策與來自2個CNN模型的分類概率得到最終的分類結(jié)果。由分類結(jié)果可知,本文提出的方法不但優(yōu)于傳統(tǒng)的車型識別方法,而且還優(yōu)于基于CNN的車型識別精度。這說明本文提出的方法完全可以應(yīng)用于實際場景中。未來的研究可通過持續(xù)改善以下幾個方面繼續(xù)提升識別效果:①收集更具泛化性的訓(xùn)練數(shù)據(jù);②使用更有效的預(yù)處理方法以應(yīng)對惡劣的環(huán)境;③研究針對車型識別的損失函數(shù)以及運用更深層的CNN。