李致金,張 亮,武 鵬,丁春健
(南京信息工程大學 電子與信息工程學院,江蘇 南京 210044)
目前,國內外的一些研究人員在針對車型精細識別問題上已經研究了可靠的分類器以及具有描述性的特征描述符。文獻[1,2]提出基于特征匹配的車型識別方法,如SIFT、Gabor特征,這類方法通常需要人工提取特征,且在視角改變以及識別要求太詳細時表現不佳。文獻[3]提出構建3D模型用以識別車型,這類方法計算成本高,同時建模難度大,因此難以在實際應用中實施。文獻[4]構建了一個名為CompCars的車輛圖像數據庫,并且在傳統的AlexNet、Overfeat、GoogLeNet網絡模型上進行了車型識別實驗,但并沒有針對車型精細識別問題對現有網絡模型進行優化。文獻[5]提出一種基于由粗到細卷積神經網絡結構的細粒度車輛模型識別方法,這類方法構建的網絡模型在訓練和測試時速度很慢,同時參數規模大,過擬合風險高。文獻[6]提出基于多尺度躍層卷積神經網絡的車型精細識別方法,該方法中所用數據過少無法同網絡模型的深度達成一致性,同樣容易導致過擬合。
如上所述,現有的車型精細識別方法仍然存在諸多局限性。其一,傳統的基于特征匹配的車型識別方法,這類方法過多依賴人工提取特征,且需要大量的計算以及無法達到精細識別要求。其二,基于改進傳統卷積神經網絡的車型識別方法,這類方法相較于人工提取特征識別方法雖然能夠達到更好的識別效果[7,8],但是仍然存在著諸多缺點,例如:①提取到的車輛特征不具有代表性,未能綜合考慮低層的局部特征和高層的全局特征;②網絡模型參數規模大,容易導致過擬合。為了克服現有車型精細識別技術存在的局限性,本文針對交通卡口監控下多類型車型精細識別問題,構建了一種基于特征融合卷積神經網絡模型(FF-CNN)。該模型設計有兩個獨立網絡(UpNet、DownNet)分別用于提取車輛正面圖像上部和下部的局部以及全局特征,以及設計有融合網絡(FusionNet)用于將兩個獨立網絡提取到的特征進行上下組合,從而提高識別精度;同時采用小尺寸卷積核以及全局平均池化用于優化網絡,以壓縮模型參數規模,從而降低過擬合風險。
目前,在交通卡口監控系統下捕獲到的車輛正面圖像可沿著中心線劃分為兩個區域,分別為:上部和下部。上部又稱車輛非面部具體包括發動機引擎蓋一部分、擋風玻璃以及車頂一部分;下部又稱車輛表面部具體包括車牌、車標、前大燈以及霧燈。這兩部分表現出的特征存在明顯的差異,例如:①車輛表面部本身存在獨特、豐富的紋理以及前大燈、霧燈等部件形狀明顯,與之對比的車輛非面部僅有很少與輪廓、形狀相關的特征,而這些特征與車輛表面部特征形成互補;②車輛表面部和非表面部不同位置的部件由于所用材料不同因而呈現亮度特征有所差異。
基于車輛正面圖像的特征分布,構建了一種基于特征融合卷積神經網絡模型(FF-CNN),該模型用于解決交通卡口監控下車型精細識別問題。此特征融合卷積神經網絡模型(FF-CNN)如圖1所示。從圖1可以看出該模型在組成結構上主要包括3個部分分別為:上部網絡(UpNet)、下部網絡(DownNet)以及融合網絡(FusionNet)。上部網絡(UpNet)、下部網絡(DownNet)分別用于提取車輛非面部和車輛表面部的局部以及全局特征,融合網絡(FusionNet)用來將上部網絡(UpNet)以及下部網絡(DownNet)提取到的特征圖進行上下組合以提取到完整的車輛正面特征圖,之后通過全局平均池化層(GAP)進行輸出,最終把得到的特征圖輸入到SVM分類器進行識別。

圖1 FF-CNN網絡模型
從圖1中可以看出上部網絡(UpNet)被設計成淺層網絡,主要用于提取車輛非面部的局部以及全局特征。上部網絡(UpNet)主要設計有1個輸入層、1個TraConv1_0層、2個特殊結構單元MlpConv1_1、MlpConv1_2。為保留更多的輪廓信息,在TraConv1_0層中使用5*5大尺寸卷積核用于提取車輛非面部粗糙輪廓特征,同時使用1*1小尺寸卷積核用于進一步細粒度特征提取以及使用最大池化層進行降維操作。兩個特殊結構單元MlpConv1_1、MlpConv1_2具有相同的結構,不同之處在于MlpConv1_1層中的第一個卷積層的步長以及填充分別設為2和0,而在MlpConv1_2中第一個卷積層的步長以及填充分別被設計為1和1。具體網絡參數見表1。為便于理解,下文將以MlpConv1_1作為闡述對象用來分析這種特殊結構單元的組成和作用。
MlpConv1_1結構單元由4個部分組成,其中第一個卷積層(conv1_1)的卷積核為3*3,步長和填充分別為2和0,另外兩個分別為conv1_1_1、conv1_1_2的小卷積層,其卷積核均為1*1,步長和填充分別為1和0,使用3*3、1*1小尺寸卷積核有助于細粒度特征提取,同時能夠有效壓縮模型參數規模。此外,在每個卷積層后都設計有用于非線性特征映射的ReLU層,以及在3個卷積層后設計有用于特征維度減少的最大池化層[9]。結構單元如圖2所示。

表1 上部網絡(UpNet)的網絡參數

圖2 MlpConv1_1結構單元
借鑒文獻[10]提出的NIN網絡模型,使用形如MlpConv1_1這種結構單元能夠有效增加網絡的非線性特征表達能力。傳統卷積神經網絡在ReLU激活函數作用下,特征圖的計算公式為

(1)
在式(1)中,(i,j) 表示圖片像素點的位置索引,xi,j表示卷積窗口的特征塊,k表示要提取特征圖的索引。而在以MlpConv1_1結構單元構成的特征融合卷積神經網絡模型中,在ReLU激勵函數的作用下,特征圖的計算公式為

(2)
其中,n代表多層感知器(MLP)中層的編號,根據式(2)可以看出,在該上部網絡(UpNet)中,特征圖fn的計算與前者fn-1存在依賴關系,從而實現多個特征圖的線性組合,以達到跨通達信息整合目的。
此外,在圖1中下部網絡(DownNet)被設計成深層網絡用于提取車輛面部特征。下部網絡(DownNet)相較于上部網絡(UpNet)多增加一個特殊結構單元MlpConv2_3??紤]到下部網絡(DownNet)提取的是車輛面部特征,而車輛面部本身存在獨特、豐富的紋理特征以及明顯的部件形狀差異,因此,多增加一個特殊結構單元能夠進一步抽象和提取車輛面部特征,并提高網絡的表達能力。具體網絡參數見表2。

表2 下部網絡(DownNet)的網絡參數
在上部網絡(UpNet)和下部網絡(DownNet)中,都使用了形如MlpConv1_1這種結構單元進行堆疊,并且在各自網絡中都兼顧了靠近輸入層(低層)對車輛局部特征的學習以及輸出層(高層)對車輛全局特征的學習。同時,由于在每個特殊結構單元中使用形如1*1卷積核[11],能夠有效降低網絡模型的參數規模,從而降低過擬合風險。
在該特征融合卷積神經網絡模型(FF-CNN)中另一個關鍵是特征融合。如圖1所示,融合網絡(FusionNet)用于將兩種子網絡(UpNet、DownNet)提取到的特征進行上下組合以形成兩個完整的車輛正面特征圖,在該組合過程中采取了低水平(靠近輸入層)特征和高水平(靠近輸出層)特征相互融合的策略[12]。具體表現為:其一,融合網絡(FusionNet)將從上部網絡(UpNet)的第一個特殊結構單元(MlpConv1_1)與下部網絡(DownNet)的第二個特殊結構單元(MlpConv2_2)提取到的特征進行上下組合成第一個完整的車輛正面特征圖(大小為6*6*96);其二,將上部網絡(UpNet)與下部網絡(DownNet)兩者最后一個特殊結構單元(MlpConv1_2、MlpConv2_3)提取到的特征進行上下組合成第二個完整的車輛正面特征圖(大小為3*3*128)。在得到兩個完整的車輛正面特征圖后,首先將第二個完整的車輛正面特征圖與經過形如MlpConv1_1這種結構單元處理后的第一個完整的車輛正面特征圖(處理后大小為3*3*128)進行組合(組合后尺寸大小為3*3*256),之后再將組合后的特征圖經過1*1卷積核進行進一步的特征提取,進而將得到的特征圖輸入到全局平均池化層(GAP),最終通過SVM分類器獲得網絡輸出。
為驗證本文提出的特征融合卷積神經網絡模型(FF-CNN) 在車型精細識別方面的有效性,因此將此模型在基準數據集CompCars下進行實驗。CompCars數據集包含來自互聯網和交通卡口實時監控下的281個車輛精細型號的44 481張車輛正臉圖片。在本文實驗中,將CompCars數據集分為測試數據與訓練數據兩個部分,且兩者比例為3∶7。實驗平臺CPU型號為Intel Core i7-6700K,內存容量為32 GB,并且使用內存為12GB的NVIDIA GEFORCE GTX TITAN X顯卡用于加快訓練過程,實驗所用模型均在開源caffe框架下實現。
由于融合網絡(FusionNet)最終要將兩個子網絡(UpNet、DownNet)提取到的特征進行上下組合,因此兩個子網絡生成的特征映射圖的大小必須匹配。因而,將此特征融合卷積神經網絡模型(FF-CNN)的輸入圖片大小設為256*256,同時,兩個子網絡所用圖片大小均設為224*224。實驗中使用的優化策略是帶有沖量的隨機梯度下降法,初始沖量設置為0.9,批量大小設為128,初始學習率設置為0.001,每經過100 000迭代后,學習率降低10倍,迭代總數為300 000次。
實驗結果主要從模型識別準確率以及模型參數兩個方面進行闡述,同時與現有幾種車型識別模型進行對比分析,以驗證本文提出的特征融合卷積神經網絡模型(FF-CNN)在車型精細識別方面的高效性。
2.3.1 模型識別準確率
表3給出了在基準數據集CompCars下,本文提出的特征融合卷積神經網絡模型(FF-CNN)與其它幾種模型的識別準確率。由于在CompCars數據集中每個類別的圖片數量不盡相同,其表現為類別最少的圖片數量僅為14張,而類別最多的圖片數量卻高達565張。因此,為降低這種不平衡類別圖片數目對識別結果的影響,我們使用以下兩種方法來評估實驗結果的準確性,兩種方法具體公式為
(3)
(4)
其中,ti表示每個類中正確預測的樣本數,ni表示每個類中的樣本數,N表示類的數量。從表3給出的識別結果可以看出,第1行是文獻[13]提出的經典GoogLeNet模型的識別效果,其Acc1和Acc2分別為98.32%,97.81%;第2行是文獻[14]提出的使用來自后視圖像汽車標志的幾何形狀的車輛模型識別方法,其識別效果較其它兩種方法有所下降;第3行是文獻[15]提出的MS-CNN模型在基準數據集CompCars下對281種車輛類型進行細粒度分類得到較高的準確率,其中,Acc1與Acc2分別達到了98.83%,98.43%。

表3 FF-CNN與其它幾種模型的識別準確率
2.3.2 模型參數
表4給出了在caffe框架下幾種識別模型生成的參數大小。從表4可以看出,NIN網絡模型生成的參數量最大,則導致過擬合的可能性最大。相較于其它兩種網絡模型,本文提出的特征融合卷積神經網絡模型(FF-CNN)參數量僅為4.9 MB,遠遠低于其它兩種網絡模型的參數量。因此,使用FF-CNN網絡模型能夠有效壓縮模型參數規模,從而降低過擬合風險。

表4 FF-CNN與其它幾種識別模型生成的模型參數
本文基于車輛正面圖像的特征分布,構建了一種特征融合卷積神經網絡模型(FF-CNN),該模型主要用于解決交通卡口監控下車型精細識別問題。在FF-CNN模型中,設計有兩個子網絡模型(UpNet、DownNet)分別用于提取車輛正面圖像的非表面部以及表面部特征,同時設計有融合網絡(FusionNet)用以實現兩個子網絡模型(UpNet、DownNet)提取到的特征融合,從而進一步抽象以及提取最終的車輛特征?;贑ompCars基準數據集的實驗結果表明,FF-CNN模型通過使用更少的參數量能夠更加有效提取車輛正面圖像的細粒度特征,具體識別準確率高達98.94%。