楊志鋼,馬俊杰
哈爾濱工程大學(xué) 信息與通信工程學(xué)院,黑龍江 哈爾濱 150001
隨著社會(huì)的不斷發(fā)展,人們對(duì)汽車這一交通工具的需求日益增長(zhǎng),道路上的車輛種類也越加繁多。車輛在給人們出行帶來(lái)便捷的同時(shí),也滋生了一些交通安全、違法犯罪問(wèn)題,譬如車輛超速、超載、套牌、無(wú)牌等。車輛的監(jiān)管一般采用攝像頭抓拍的方式,通過(guò)圖像確定車輛的信息與行為,其中車輛種類的識(shí)別分類是一個(gè)重要研究方向。目前主流的車輛分類算法按目標(biāo)范圍大致可分為3類:基于車型種類的分類算法、基于不同品牌轎車的分類算法、基于轎車子品牌的分類算法?;谲囆头N類的分類算法用于區(qū)分大、中、小體型的不同用途車輛,如卡車和轎車;基于不同品牌轎車的分類算法專注于區(qū)分轎車的品牌信息,如吉利、比亞迪等;基于轎車子品牌的分類算法深入?yún)^(qū)分同一廠類品牌下的子品牌轎車,如奔馳旗下的smart、邁巴赫系列車型。本文提出車輛圖像細(xì)粒度分類屬于基于轎車子品牌的分類算法。
車輛圖像的細(xì)粒度分類相較于一般的多分類任務(wù),難度更大,主要體現(xiàn)在兩個(gè)方面:第一,同一類別的車輛圖像取決于拍攝條件,角度、環(huán)境、清晰度、以及遮擋條件導(dǎo)致其圖像低層特征類內(nèi)距離大;第二,不同車輛之間由于相似度較高造成低類間差異。因此,要想實(shí)現(xiàn)對(duì)車輛圖像的正確分類,必須對(duì)所提取的車輛特征有很高的要求。2010年,F(xiàn). Perronnin等[1]提出了一種基于SIFT特征與改進(jìn)的Fish核的圖像細(xì)粒度分類方法,該方法對(duì)光照變化具有良好的適應(yīng)性,但對(duì)圖像拍攝角度變化表現(xiàn)得不是很好。近年來(lái),深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)領(lǐng)域迅速發(fā)展,作為實(shí)現(xiàn)深度學(xué)習(xí)的一項(xiàng)重要技術(shù),卷積神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別領(lǐng)域已經(jīng)取得了卓越的成績(jī)。Zhang N等[2]利用卷積神經(jīng)網(wǎng)絡(luò)出色的性能在圖像細(xì)粒度分類任務(wù)中得到了較好的效果。2017年,王秀席等[3]利用改進(jìn)的LeNet-5卷積神經(jīng)網(wǎng)絡(luò)在車型識(shí)別中取得了好的識(shí)別結(jié)果?;谏疃染矸e特征的圖像分類方法依靠多層卷積自行學(xué)習(xí)有效的特征表示,免去了傳統(tǒng)方法中挑選合適的基于先驗(yàn)知識(shí)的圖像特征算法的繁瑣步驟,且采用端到端的訓(xùn)練方式快速使模型具有表達(dá)目標(biāo)特征的能力。
因此本文提出了一種融合FV-SIFT特征和深度卷積特征的車輛圖像細(xì)粒度分類算法,該算法首先采用SIFT特征描述子對(duì)車輛圖像提取特征,再采用Fisher Vector算法對(duì)提取的特征向量進(jìn)行編碼得到FV-SIFT特征,然后采用VGG-16卷積神經(jīng)網(wǎng)絡(luò)對(duì)車輛圖像提取深度卷積特征,最后將FV-SIFT特征與VGG-16深度卷積特征進(jìn)行線性融合并采用支持向量機(jī)對(duì)其進(jìn)行分類。實(shí)驗(yàn)結(jié)果表明,融合后的車輛圖像特征對(duì)單一FV-SIFT特征表現(xiàn)不佳的現(xiàn)象進(jìn)行了改善,且相較深度卷積網(wǎng)絡(luò)基礎(chǔ)上提高了車輛圖像細(xì)粒度分類的準(zhǔn)確率指標(biāo)。
FV-SIFT特征提取方法由兩部分組成:1)對(duì)輸入圖像使用SIFT描述子進(jìn)行特征提取,獲得特征向量;2)對(duì)高維特征向量使用PCA算法進(jìn)行降維處理,提升表達(dá)能力的同時(shí)減少參數(shù)計(jì)算量;3)通過(guò)Fisher Vector算法對(duì)特征向量進(jìn)行編碼,從而得到車輛圖像的FV-SIFT特征向量。如圖1所示。
圖1 FV-SIFT特征提取流程
D G Lowe等[4]于2004年提出基于SIFT特征的檢測(cè)算法,利用了該特征具有的尺度不變性,能提取對(duì)尺度縮放、旋轉(zhuǎn)、亮度變化無(wú)關(guān)的特征向量,獲得了良好的檢測(cè)效果。SIFT特征提取共分為4個(gè)步驟:1)構(gòu)建尺度空間檢測(cè)極值點(diǎn);2)特征點(diǎn)過(guò)濾以及精確定位;3)獲取特征點(diǎn)的方向值;4)最后生成特征描述子。本文采用Dense SIFT算法來(lái)加速特征提取,巧妙地避開(kāi)SITF描述子檢測(cè)的前3個(gè)步驟,即直接定位關(guān)鍵點(diǎn)位置和描述子采樣區(qū)域,計(jì)算SIFT特征向量。提取過(guò)程如圖2所示。
圖2 Dense-SIFT特征提取過(guò)程
首先采用一個(gè)矩形窗口在邊界框內(nèi)以一定的步長(zhǎng)在圖像上從左到右、從上到下的順序滑動(dòng)獲取像素塊,接著對(duì)像素塊進(jìn)一步劃分為4×4的16個(gè)方格,方格上的每個(gè)像素點(diǎn)都需計(jì)算梯度方向,得到8方向的梯度直方圖,作為當(dāng)前方格的特征向量,最后將每個(gè)小塊的特征向量連接起來(lái)得到該像素塊的4×4×8=128維的Dense-SIFT特征向量。由于得到的Dense-SIFT特征維數(shù)較高,為了便于后續(xù)計(jì)算方便,本文采用主成分分析(PCA)方法[5]對(duì)Dense-SIFT特征進(jìn)行降維處理。
主流的模式識(shí)別方法按概率模型可以分為生成式模型和判別式模型。生成式模型通過(guò)構(gòu)建同類目標(biāo)的聯(lián)合概率分布,來(lái)描述同類目標(biāo)的相似度,如高斯混合模型(GMM)[6],且可以用于處理長(zhǎng)度不一的輸入數(shù)據(jù);另一類是判別式方法,比如SVM,這類方法主要反映異類數(shù)據(jù)之間的差異,在數(shù)據(jù)量較少的情況下分類效果更好。結(jié)合兩者優(yōu)勢(shì)的Fisher Vector算法,用生成式模型(GMM)對(duì)樣本輸入進(jìn)行建模,再進(jìn)一步得到樣本的Fisher Vector特征表示。
定義似然函數(shù)p(X|λ)的梯度向量表示為
UX=λlogp(X|λ)
(1)
式中:X={xt,t=1,2,…,T}為圖像的特征集合并且服從高斯分布;λ={wi,μi,σi,i=1,2,…,N}是GMM的模型參數(shù)。
為了能夠讓梯度向量能夠更好地表示圖像特征,對(duì)其進(jìn)行歸一化處理,得到Fisher Vector特征向量。如式(2)所示:
(2)
深度學(xué)習(xí)的概念源于人工神經(jīng)網(wǎng)絡(luò)的研究,啟發(fā)自人腦的分層結(jié)構(gòu),通過(guò)逐層級(jí)的提取不同維度的語(yǔ)義特征信息,獲得有效的表征數(shù)據(jù)顯式特征的能力,通過(guò)訓(xùn)練的方式,讓多層級(jí)網(wǎng)絡(luò)自主學(xué)習(xí)特征表達(dá)參數(shù),從而實(shí)現(xiàn)端到端的模型[7]。其中,卷積神經(jīng)網(wǎng)絡(luò)在圖像上的表現(xiàn)較為突出,被廣泛應(yīng)用于計(jì)算機(jī)視覺(jué)領(lǐng)域的個(gè)方向。
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)是將局部感受野、權(quán)值共享和空間亞采樣的思想融合在一起來(lái)獲取某種程度的位移不變性、尺度不變性、以及形變不變性[8]。卷積神經(jīng)網(wǎng)絡(luò)是一種層次模型,每一層包含若干個(gè)二維特征面,特征面又由若干個(gè)獨(dú)立神經(jīng)元所決定。通常一個(gè)卷積神經(jīng)網(wǎng)絡(luò)中包含卷積層、非線性映射層、池化層以及全連接層(fully connected layer,F(xiàn)C)[9-10]。卷積層作用是提取表達(dá)能力強(qiáng)的局部圖像特征,通過(guò)若干卷積塊加強(qiáng)卷積層的特征表達(dá)能力;非線性映射層引入了非線性的因素來(lái)提升網(wǎng)絡(luò)表達(dá)能力,避免了線性不可分的現(xiàn)象;池化層的作用是對(duì)卷積特征映射圖進(jìn)行降采樣,同時(shí)降低網(wǎng)絡(luò)運(yùn)算復(fù)雜度;全連接層源自多層感知機(jī)模型,對(duì)特征維數(shù)進(jìn)行降維并進(jìn)行分類。
卷積神經(jīng)網(wǎng)絡(luò)是通過(guò)監(jiān)督學(xué)習(xí)模式進(jìn)行訓(xùn)練,具體過(guò)程為:設(shè)置網(wǎng)絡(luò)初始參數(shù),將輸入數(shù)據(jù)喂入網(wǎng)絡(luò),得到網(wǎng)絡(luò)輸出值,與原標(biāo)簽值對(duì)比得到損失值,然后計(jì)算利用梯度反向傳播算法調(diào)整網(wǎng)絡(luò)各層的參數(shù),依此迭代至終止條件。VGG-16卷積神經(jīng)網(wǎng)絡(luò)是由Karen Simonyan和Andrew Zisserman[11]所提出的,并且該網(wǎng)絡(luò)在2014年的ILSVRC比賽上取得了定位問(wèn)題第一名和分類問(wèn)題第二名的優(yōu)秀成績(jī)。VGG模型如圖3所示。
圖3 VGG-16
可以得知,VGG-16有13個(gè)conv層、5個(gè)maxpool層、3個(gè)fully connect層,最后由softmax層輸出分類結(jié)果。其中conv(i)-(n)代表該層的的卷積核是n個(gè)i×i的方塊;maxpool表示最大值池化[12];FC-(m)表示全連接層的輸出特征向量的個(gè)數(shù)為m。在每個(gè)卷積層的后面,加入了ReLU激活函數(shù),引入了非線性,加強(qiáng)特征表達(dá)能力和避免了梯度飽和問(wèn)題。ReLU激活函數(shù)為:
f(x)=max{0,x}
網(wǎng)絡(luò)的參數(shù)傳遞過(guò)程如下所示:由于VGG-16網(wǎng)絡(luò)的限定,輸入圖像統(tǒng)一為448×448;第1、2個(gè)conv層的輸出為64個(gè)448×448大小的feature map,然后步長(zhǎng)為2的max pooling層將其縮小為64個(gè)大小為224×224的feature map;第3、4個(gè)的conv層輸出128個(gè)224×224大小的feature map,隨后的max pooling將其縮小為128個(gè)112×112的feature map;第5、6、7個(gè)的conv層輸出256個(gè)112×122大小的feature map,隨后的max pooling將其縮小為256個(gè)56×56的feature map;第8、9、10個(gè)的conv層輸出512個(gè)56×56大小的feature map,隨后的max pooling將其縮小為512個(gè)28×28的feature map;第11、12、13個(gè)的conv層輸出512個(gè)28×28大小的feature map,隨后的max pooling將其縮小為512個(gè)14×14的feature map。本文選擇第13層卷積層的輸出作為深度卷積特征。
由于VGG-16網(wǎng)絡(luò)中包含3個(gè)卷積層,網(wǎng)絡(luò)參數(shù)量高達(dá)上億個(gè),相較于少樣本量的車輛樣本庫(kù),直接訓(xùn)練網(wǎng)絡(luò)易出現(xiàn)過(guò)擬合,從而導(dǎo)致深度卷積網(wǎng)絡(luò)特征表達(dá)能力不足。因此,本文采用模型遷移策略,即將大樣本數(shù)據(jù)集上學(xué)習(xí)到的網(wǎng)絡(luò)權(quán)重參數(shù)應(yīng)用到數(shù)量級(jí)較小數(shù)據(jù)集的任務(wù)上,通過(guò)微調(diào)的方式將網(wǎng)絡(luò)參數(shù)適用于車輛數(shù)據(jù)集,從而得到符合條件的車輛圖像的卷積網(wǎng)絡(luò)模型。
本文采用在ILSVRC-2012數(shù)據(jù)集上訓(xùn)練好的VGG-16網(wǎng)絡(luò)模型參數(shù),修改網(wǎng)絡(luò)最后一層全連接層的輸出,使其輸出類別數(shù)量與車輛類別相同,在車輛圖像數(shù)據(jù)集中微調(diào),得到有效的車輛類別分類模型。然后提取網(wǎng)絡(luò)中的卷積層參數(shù),作為深度卷積網(wǎng)絡(luò)特征提取器,對(duì)輸入圖像進(jìn)行特征提取,獲取深度卷積特征向量。圖4為采用卷積神經(jīng)網(wǎng)絡(luò)遷移策略提取深度卷積特征流程圖。具體步驟如下:
1)采用ILSVRC-2012數(shù)據(jù)集對(duì)VGG-16卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練,得到VGG-16卷積神經(jīng)網(wǎng)絡(luò)預(yù)訓(xùn)練模型;
2)根據(jù)實(shí)際的車輛類別數(shù)修改VGG-16卷積神經(jīng)網(wǎng)絡(luò)預(yù)訓(xùn)練模型最后一個(gè)全連接層輸出個(gè)數(shù);
3)將車輛圖像數(shù)據(jù)集(訓(xùn)練集)輸入到VGG-16卷積神經(jīng)網(wǎng)絡(luò)預(yù)訓(xùn)練模型中進(jìn)行權(quán)重參數(shù)的微調(diào),得到關(guān)于車輛的VGG-16卷積神經(jīng)網(wǎng)絡(luò)微調(diào)模型;
4)將車輛圖像輸入到VGG-16卷積神經(jīng)網(wǎng)絡(luò)微調(diào)模型中,通過(guò)前向傳播的方式將網(wǎng)絡(luò)第13層卷積層輸出的特征作為該圖像的深度卷積特征。
圖4 卷積神經(jīng)網(wǎng)絡(luò)遷移策略提取特征流程
本文算法總體流程如圖5所示,先將車輛圖像數(shù)據(jù)集分為兩部分,一部分為訓(xùn)練集,另一部分為測(cè)試集。
圖5 本文算法總體流程
具體實(shí)驗(yàn)步驟如下:
1)對(duì)車輛圖像訓(xùn)練集提取FV-SIFT特征(X1);
2)對(duì)車輛圖像訓(xùn)練集提取VGG-16深度卷積特征(X2);
3)將步驟1)提取的FV-SIFT特征和步驟2)提取的VGG-16深度卷積特征連接起來(lái)組成一個(gè)大特征,即為融合特征(X=[X1,X2]);
4)將對(duì)車輛圖像訓(xùn)練集提取的融合特征作為SVM分類器的輸入進(jìn)行分類訓(xùn)練,得到關(guān)于車輛的SVM分類模型;
5)對(duì)車輛圖像測(cè)試集按照步驟1)~3)提取融合特征,并輸入到步驟4)中訓(xùn)練好的車輛SVM分類模型中進(jìn)行分類預(yù)測(cè)。
本文實(shí)驗(yàn)在BMW-10車輛數(shù)據(jù)集上,詳細(xì)論證了融合FV-SIFT特征和深度卷積特征的分類方法的有效性。
實(shí)驗(yàn)環(huán)境是CPU為Intel(R) Xeon(R) E5-1620,主頻3.7 GHz,內(nèi)存16 GB;GPU為Quadro P4000,顯存8 GB;操作系統(tǒng)為Windows10;軟件采用MATLAB,選用MatConvNet框架。
本文研究的是基于轎車子品牌的車輛細(xì)粒度分類,特點(diǎn)是不同類的車輛外觀、體型等特征相似度較高。圖6為本文所采用的BMW-10車輛數(shù)據(jù)集中的部分車輛圖像,該數(shù)據(jù)集包含了512張10類不同寶馬車輛圖像,每一類中的車輛圖像的角度、像素尺寸均存在較大范圍差異,每類車型樣本數(shù)量在50張左右。每張圖片大小不一,由于VGG-16的輸入要求為448×448,因此在實(shí)驗(yàn)中將車輛圖像大小歸一化為448×448。在每種車型樣本中隨機(jī)選取三分之二作為訓(xùn)練集,其余三分之一作為測(cè)試集。
圖6 部分車輛圖片
為了驗(yàn)證方法的有效性,本文采用的對(duì)比實(shí)驗(yàn)方案如下:1)基于FV-SIFT特征的車輛細(xì)粒度實(shí)驗(yàn);2)基于VGG-16深度卷積特征的車輛細(xì)粒度分類實(shí)驗(yàn);3)融合FV-SIFT特征和深度卷積特征的車輛細(xì)粒度分類實(shí)驗(yàn)。
考慮到深度卷積特征網(wǎng)絡(luò)VGG-16得到的特征維數(shù)為40多萬(wàn)的數(shù)據(jù)量,存在數(shù)據(jù)冗余和計(jì)算量過(guò)大的問(wèn)題,因此對(duì)其進(jìn)行最大值池化的降維處理。降維采用的不同窗口進(jìn)行池化對(duì)分類精度的影像如表1所示。
表1 深度卷積特征不同窗口下的分類精度比較
由表1易知,VGG-16特征提取網(wǎng)絡(luò)的數(shù)據(jù)量隨著池化窗口的增大而逐漸下降,特征數(shù)據(jù)維度從幾十萬(wàn)可降至幾萬(wàn);分類精度隨著窗口大小變化而規(guī)律變化,于窗口大小11×11時(shí)取得最佳分類精度80.3%。
可以通過(guò)建立分類結(jié)果混淆矩陣的方法,觀察分類器對(duì)每一類的分類效果。如圖7~9所示,混淆矩陣中的第i行第j列的值,代表真實(shí)樣本為第i個(gè)類別時(shí),其為第j類的概率值。易知每一行的概率值和應(yīng)為1。
圖7 基于FV-SIFT特征的車輛圖像分類結(jié)果混淆矩陣
圖8 基于深度卷積特征的車輛圖像分類結(jié)果混淆矩陣
圖9 融合FV-SIFT特征和深度卷積特征的車輛圖像分類結(jié)果混淆矩陣
由圖7可知,基于FV-SIFT特征的車輛圖像細(xì)粒度分類算法對(duì)類別1、4、9的分類效果較好,對(duì)8類別8的分類效果不理想,因此FV-SIFT特征能用于部分車輛的特征表示。
由圖8可知,基于VGG-16深度卷積特征的車輛圖像細(xì)粒度分類算法對(duì)大部分類別均能較準(zhǔn)確的分類;相較傳統(tǒng)人工設(shè)計(jì)的FV-SIFT特征,特征表達(dá)能力有明顯提升,說(shuō)明深度卷積特征在車輛細(xì)粒度分類算法上具備有效性。
由圖9易知,融合FV-SIFT和深度卷積特征的車輛圖像細(xì)粒度分類算法對(duì)類別7、9可達(dá)100%的準(zhǔn)確分類能力,展示了該改進(jìn)方法的有效性。與圖7的結(jié)果對(duì)比,可知該方法對(duì)所有類別的分類精度都較圖7的方法有明顯提升,由此展示了該方法的融合特征較傳統(tǒng)人工設(shè)計(jì)的FV-SIFT更具良好的特征表達(dá)能力;與圖8的結(jié)果對(duì)比,可知該方法在類別1、4、7、8、9、10上的分類精度較圖8所用方法有所提升,說(shuō)明該融合特征比單獨(dú)的深度卷積特征方法的特征表達(dá)能力更加突出,而對(duì)部分類別的分類精度不如圖8的原因,是因?yàn)镕V-SIFT特征在融合特征中所占權(quán)重較大,從而使得這些類別的特征表達(dá)結(jié)果趨向FV-SIFT特征。
本文不僅采用了FV-SIFT特征、VGG-16深度卷積特征與融合后的特征進(jìn)行對(duì)比實(shí)驗(yàn),還采用了文獻(xiàn)[13]、[14]中的算法與融合特征進(jìn)行對(duì)比,文獻(xiàn)[13]中的算法采用的是VGG-M卷積神經(jīng)網(wǎng)絡(luò)提取VGG-M深度卷積特征,文獻(xiàn)[14]中的算法采用的是兩個(gè)相同的VGG-M卷積神經(jīng)網(wǎng)絡(luò)提取雙VGG-M深度卷積特征。如表2所示為5種對(duì)比實(shí)驗(yàn)的比較結(jié)果。
表2 不同特征下的分類精度比較
由表2易知,在整體分類精度下,基于VGG-16深度卷積特征的車輛細(xì)粒度分類算法比基于FV-SIFT特征的分類算法的精度高約13%,說(shuō)明逐層級(jí)深入提取圖像語(yǔ)義特征的深度卷積特征學(xué)習(xí)到了車輛圖像的語(yǔ)義特征,從而提高了分類準(zhǔn)確率。本文提出的融合特征方法相較基于FV-SIFT特征的分類方法在整體分類精度上提升15.4%,較基于VGG-16深度卷積特征的分類方法精度提高了2%左右,較基于VGG-M深度卷積特征的分類方法精度提高了8.5%,較基于雙VGG-M深度卷積特征的分類方法精度提高了1.9%,說(shuō)明本文方法的有效性。
針對(duì)現(xiàn)有的SIFT特征在車輛細(xì)粒度分類中存在的特征表達(dá)能力弱和分類精度低的問(wèn)題,本文提出了一種融合FV-SIFT特征和深度卷積特征的車輛圖像分類算法,該算法采用FV-SIFT特征和深度卷積特征相融合的方式對(duì)車輛圖像進(jìn)行分類。實(shí)驗(yàn)結(jié)果表明該方法在分類準(zhǔn)確率上較基于FV-SIFT特征的車輛圖像分類算法有明顯提高,較基于VGG-16深度卷積特征的車輛圖像分類算法也有略微提高。盡管本文最終的對(duì)比實(shí)驗(yàn)結(jié)果比較理想,但是本文工作也存在著一些不足之處:1)實(shí)驗(yàn)所用車輛圖像數(shù)據(jù)集存在樣本量少、種類少、拍攝車輛角度不充分等問(wèn)題,這使得深層網(wǎng)絡(luò)模型的學(xué)習(xí)能力不能最大化;2)對(duì)于深度卷積神經(jīng)網(wǎng)絡(luò)的選取可以做進(jìn)一步的研究,使融合后的特征能夠更加具有表達(dá)能力。因此,接下來(lái)可以圍繞上述的兩個(gè)方面展開(kāi)進(jìn)一步的研究。