余 燁 傅云翔 楊昌東 路 強
隨著車輛的普及、交通運輸技術(shù)以及智能交通系統(tǒng)的發(fā)展,車輛識別作為計算機視覺、圖像處理技術(shù)應(yīng)用方面的重要研究課題,具有較大的學(xué)術(shù)價值和應(yīng)用前景.無論是無人駕駛[1]、停車場自動收費還是公安部門對特定車輛的大范圍檢索[2],在不斷上升的需求以及相關(guān)硬件設(shè)備性能升級的刺激下,車輛識別在效率和精度上的要求也在不斷提高.套牌車、車牌污損、車標改裝和違規(guī)噴漆等情況的存在使得單獨的車牌、車標[3]等識別技術(shù)難以奏效,而車輛型號包含車輛品牌、車輛類型、所屬系列和年代款式等信息,其識別屬于精細識別的范疇,需要能識別出不同車輛之間的微小差異.因此,車輛型號精細識別將成為新一輪的研究聚焦點,為智能交通部門及交管執(zhí)法部門提供更好的解決方案.
目前,車輛型號精細識別尚面臨如下挑戰(zhàn):
1)車型種類繁多.目前國內(nèi)已登記的車輛型號種類多達上萬種,即使是在一個中等大小的城市,路面上常見的車輛型號也有上千種[4].
2)易受車輛姿態(tài)、拍攝環(huán)境的影響.真實環(huán)境中,車輛的姿態(tài)是不固定的,所在場景、環(huán)境光照也各不相同.車輛姿態(tài)和環(huán)境的變化給車型識別增加了難度.
3)車輛型號之間區(qū)分難度大.不同于ImageNet[5]圖像數(shù)據(jù)集中各分類對象種類間差異較大,車輛型號識別對象均為四輪汽車,即使目前數(shù)據(jù)集中的類別數(shù)量不足1 000,對應(yīng)分類任務(wù)的難度仍不低于ImageNet 分類任務(wù).此外,部分車輛型號相互之間差別很小,這種細微的差距不僅存在于同品牌不同型號之間,不同品牌之間也有區(qū)分度很小的車型存在.如:圖1(a)中的2018 款的奧迪A4L和奧迪A6L,它們的區(qū)別僅在于大燈和霧燈;圖1(b)中的奇瑞QQ3和雪佛蘭樂馳,它們的外形極其相似,區(qū)別僅在于散熱格柵和霧燈部分.
圖1 相似車型的例子Fig.1 Examples of similar vehicle models
傳統(tǒng)采用尺度不變特征變換(Scale-invariant feature transform,SIFT)[6]、方向梯度直方圖(Histogram of oriented gradients,HOG)[7]等手工特征描述子的方法來實現(xiàn)特征提取,將提取到的特征利用分類器進行訓(xùn)練,以實現(xiàn)分類識別.這類方法易受光照、車輛姿態(tài)、噪聲和背景等影響,魯棒性不強.此外,無論是利用車前臉、車后臉還是它們的部分來進行車型識別,用手工特征描述子均難以描述,這是因為識別對象需要綜合車燈、車柵格等諸多細節(jié)特征來進行判斷,而手工描述子很難統(tǒng)一提取這些細節(jié)部位的特征.深度學(xué)習(xí)能夠自動學(xué)習(xí)大量數(shù)據(jù)的特征[8],借助于大數(shù)據(jù),可以大大提升識別效率與精度,在人臉識別[9]、行人檢測[10]、目標分類與發(fā)現(xiàn)[11]、圖像精細分類[12]等領(lǐng)域已經(jīng)取得了很大的成功.研究成果表明,深度卷積神經(jīng)網(wǎng)絡(luò)在車輛型號識別領(lǐng)域的應(yīng)用可以獲得很好的識別效果.
雖然目前已有基于深度學(xué)習(xí)的商用車型識別系統(tǒng)投入實際使用,但其針對的識別對象為卡口監(jiān)控中獲取的車輛正臉圖像,姿態(tài)變化很小.實際智能交通應(yīng)用中,涉及的車輛圖像包含從多個角度拍攝的圖像,因此,如何基于多姿態(tài)車輛圖像進行車輛精細型號的識別,具有十分重要的研究價值和現(xiàn)實意義.
針對多姿態(tài)車輛型號的精細識別,本文提出一種基于殘差網(wǎng)絡(luò)特征重用的深度卷積神經(jīng)網(wǎng)絡(luò)模型FR-ResNet(Improved ResNet focusing on feature reuse),該網(wǎng)絡(luò)具有以下特點:
1)網(wǎng)絡(luò)采用殘差結(jié)構(gòu)作為基礎(chǔ),在加深網(wǎng)絡(luò)層數(shù)的同時,不必擔(dān)心梯度爆炸問題和隨著層數(shù)增加發(fā)生準確率下降的網(wǎng)絡(luò)退化問題.
2)添加多尺度信息輸入,加強圖像多尺度特征融合,防止網(wǎng)絡(luò)陷入局部最優(yōu).
3)對不同層網(wǎng)絡(luò)特征采取不同程度的特征重用,將上一層特征與當(dāng)前層特征進行融合,以促進特征流動,提高其利用率,有效縮減所需參數(shù)數(shù)量.
4)在底層網(wǎng)絡(luò)中采用特征圖權(quán)重學(xué)習(xí)策略,在圖像處理初期對特征通道的重要程度進行排序,使有效特征得到更大激勵并傳遞下去.
采用目前流行的大型車輛圖像數(shù)據(jù)集Comp-Cars和StanfordCars 為測試數(shù)據(jù),在此之上進行一系列實驗.實驗結(jié)果表明FR-ResNet 在車輛型號識別方面性能優(yōu)于其他一些經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)模型.例如在CompCars 數(shù)據(jù)集上,VGG16[13]獲得了92.4%的準確率,ResNet[14]獲得了93.7% 的準確率,而本文提出的FR-ResNet 的準確率達到了95.1%.
“車型識別”包含兩個含義,即“車輛類型識別”和“車輛型號識別”.早期“車型識別”主要指“車輛類型識別”,即識別車輛是小汽車、卡車還是公交車等.如:文獻[15] 中使用稀疏拉普拉斯濾波器來學(xué)習(xí)大量未標注數(shù)據(jù),使用半監(jiān)督的卷積神經(jīng)網(wǎng)絡(luò)自動為分類任務(wù)學(xué)習(xí)有利特征,在復(fù)雜場景中對巴士、小型巴士、小型貨車、乘用車、轎車和卡車共6 種車輛類型識別效果良好.車輛型號由于種類繁多、類間區(qū)分度小等原因,其識別工作難度遠遠大于車輛類型的識別,屬于精細分類問題.
目前車輛型號精細識別方面的研究工作還較少,研究方法主要可以分為三類:基于“傳統(tǒng)特征描述子+分類器”的方法、基于3D 模型的方法以及基于深度學(xué)習(xí)的方法.
基于“傳統(tǒng)特征描述子+分類器”的方法是較為傳統(tǒng)的圖像識別方法.一般使用人工描述子提取圖像特征,再用分類器訓(xùn)練以實現(xiàn)分類.Hsieh 等[16]通過對感興趣區(qū)域進行網(wǎng)格劃分,對每個網(wǎng)格使用HOG和對稱SURF (Speeded up robust feature)描述子提取特征,并在每個網(wǎng)格塊上使用支持向量機(Support vector machine,SVM)訓(xùn)練弱分類器,基于分類結(jié)果的組合進行最終車輛型號的識別.Liao 等[17]提出了一種基于車輛部件的分類方法,采用強監(jiān)督DPM (Deformable parts model)來引入語義層次結(jié)構(gòu)進行語義分割,基于部件的外觀和語義來識別車輛.Biglari 等[18]則通過捕捉不同種車輛整體外觀以及各部件間的特征差異,通過SVM 訓(xùn)練獲得相應(yīng)的車型特征模板.文獻[19] 提出一種基于部件矯正的光度特征提取算法,增強了不同光照強度下攝像頭拍攝照片識別的穩(wěn)定性.但是由于人工設(shè)計特征的局限性,研究處理的圖像多為車輛正面圖像,姿態(tài)單一.
為了能更地應(yīng)對圖像視角的變化,研究者們提出了基于3D 模型的方法,3D 模型能體現(xiàn)局部特征和模型整體之間的空間關(guān)系.文獻[20] 中提出一種3D 對象建模和精細分類任務(wù)相結(jié)合的方法,詳細的3D 表示相對2D 有更多的特征信息,改善了精細分類的性能.Krause 等[21]認為單純的平面圖形限制了視角,提出一種從2D 圖形提取3D 模型的方法,通過CAD 建模和特征貼片,最終形成3D 訓(xùn)練特征,實驗結(jié)果優(yōu)于此前的2D 方法.
自從Krizhevsky 等的論文[12]引起深度學(xué)習(xí)研究熱潮以來,神經(jīng)網(wǎng)絡(luò)影響巨大,推動了多個領(lǐng)域研究工作的長足發(fā)展.在車輛型號識別方面,深度學(xué)習(xí)也起到了重要的作用.不少研究者借助于卷積神經(jīng)網(wǎng)絡(luò)進行車輛型號分類的研究.
基于深度學(xué)習(xí)的識別方法主要通過建立端到端的卷積神經(jīng)網(wǎng)絡(luò)模型來完成識別分類任務(wù).目前典型的卷積神經(jīng)網(wǎng)絡(luò)模型AlexNet,VGGNet,GoogLeNet,ResNet 等均能用于車輛型號識別,但由于識別任務(wù)的特殊性,這些網(wǎng)絡(luò)在識別性能上并不十分出色.研究者們試圖在經(jīng)典網(wǎng)絡(luò)的基礎(chǔ)上進行改進,以使卷積神經(jīng)網(wǎng)絡(luò)模型更適用于解決車輛型號精細識別問題.Sochor 等[22]將多角度的車輛圖像通過3D bounding box 進行邊界限定,并基于3D邊界框?qū)?D 圖像進行3D 展開以及柵格化.把展開后的圖像作為深度學(xué)習(xí)的輸入,兩者結(jié)合效果提升明顯.文獻[23] 在文獻[24] 提出的TCNN(Tiled CNN)的基礎(chǔ)上改變了CNN 的權(quán)重共享方案,提出一種局部平鋪卷積神經(jīng)網(wǎng)絡(luò)模型LTCNN (Local CNN)用于車型識別,該網(wǎng)絡(luò)具有平移、旋轉(zhuǎn)和尺度不變性.文獻[25] 首先借助RCNN (Regions with CNN)從復(fù)雜背景圖像中識別出車輛,然后利用聯(lián)合貝葉斯網(wǎng)絡(luò)計算類間和類內(nèi)相似度,以獲得車輛最大概率所屬型號類別.文獻[26] 提出一種特征融合的卷積神經(jīng)網(wǎng)絡(luò)模型,把車正臉圖像分上下兩部分,并行提取特征并將其多維度融合后用來實現(xiàn)車型的精細分類.文獻[27] 嘗試使用定位、識別兩部分網(wǎng)絡(luò),并采用多任務(wù)機制,將車輛定位與顯著性檢測同時進行,能夠處理并識別背景雜亂無章的車輛圖像.文獻[28] 結(jié)合車輛部件檢測的方法,通過CNN 網(wǎng)絡(luò)獲得圖像整體和局部部件的特征,通過SVM 進行分類識別.
綜上所述,車輛型號精細識別研究目前的突破點和熱點在于深度學(xué)習(xí)的應(yīng)用.識別對象類間差距小、種類繁多是研究的難點.為有效提取車輛圖像特征并進行高效利用,提出了“特征重用”的思路,圍繞這一思路對ResNet 進行改進,提出了FRResNet 模型,并基于該模型,實現(xiàn)了車輛型號的精細分類.
在目標識別領(lǐng)域,卷積神經(jīng)網(wǎng)絡(luò)一直向著更深的模型結(jié)構(gòu)發(fā)展,識別效果得到不斷提升.更深更寬的網(wǎng)絡(luò)模型具有更多的網(wǎng)絡(luò)參數(shù),能夠更好地學(xué)習(xí)到圖像中的細節(jié)特征,然而深層網(wǎng)絡(luò)難以訓(xùn)練、更深網(wǎng)絡(luò)反而訓(xùn)練誤差加大、網(wǎng)絡(luò)反向傳播的參數(shù)相關(guān)性降低等問題日益明顯.為此,He 等[14]提出了殘差網(wǎng)絡(luò),即通過殘差表示和快速鏈接的方式來解決上述問題.
如圖2 所示,G(x)表示待擬合對象,x 為輸入數(shù)據(jù),則殘差函數(shù)R(x)可以表示為G(x)-x,最終擬合函數(shù)G(x)=R(x)+x.通過卷積神經(jīng)網(wǎng)絡(luò)的反向傳播機制,學(xué)習(xí)殘差函數(shù)R(x)的參數(shù)來擬合G(x)-x,以達到進一步擬合G(x)的效果.由于殘差結(jié)構(gòu)可以在增加網(wǎng)絡(luò)層數(shù)的同時有效阻止網(wǎng)絡(luò)退化,因此,FR-ResNet 采用殘差結(jié)構(gòu)作為網(wǎng)絡(luò)的主體結(jié)構(gòu),基于殘差結(jié)構(gòu)的串聯(lián)組合,結(jié)合特征重用、權(quán)重學(xué)習(xí)和多尺度輸入的策略,構(gòu)建適用于車輛型號精細分類的卷積神經(jīng)網(wǎng)絡(luò)模型.在FR-ResNet中,單個殘差結(jié)構(gòu)的組成如圖3 所示,由1×1 全通道卷積與3×3 分組卷積的卷積層組合來實現(xiàn).
圖2 殘差函數(shù)擬合關(guān)系Fig.2 Fitting relationship of residual function
圖3 FR-ResNet 中的殘差結(jié)構(gòu)Fig.3 Residual structure in FR-ResNet
車輛型號精細識別網(wǎng)絡(luò)FR-ResNet 的主要模型結(jié)構(gòu)如圖4 所示.該模型由3 個部分組成,按照網(wǎng)絡(luò)中生成特征圖的大小分為低層網(wǎng)絡(luò)、中層網(wǎng)絡(luò)和高層網(wǎng)絡(luò).低層網(wǎng)絡(luò)中的特征圖尺寸范圍為56×56像素到224×224 像素,中層網(wǎng)絡(luò)的特征圖尺寸范圍為14×14 像素到56×56 像素,高層網(wǎng)絡(luò)的特征圖尺寸為7×7 像素.每層網(wǎng)絡(luò)部分都包含一個殘差模塊,由多個第2.1 節(jié)所述的殘差結(jié)構(gòu)串聯(lián)組合而成.其中,低層網(wǎng)絡(luò)部分組成殘差模塊的殘差結(jié)構(gòu)為6 層,中層網(wǎng)絡(luò)部分的殘差結(jié)構(gòu)高達20 層,高層網(wǎng)絡(luò)部分的殘差結(jié)構(gòu)為3 層.
圖4 網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig.4 Diagram of network structure
FR-ResNet 模型的設(shè)計動機描述如下:為防止陷入局部最優(yōu)解并充分利用原圖像所含特征,采用多尺度輸入的方法來增加數(shù)據(jù)輸入;為提高更低層結(jié)構(gòu)中的特征利用效率,采用特征重用的方法來避免有效特征的流失;為合理分配不同特征圖的比重,采用特征圖權(quán)重學(xué)習(xí)的方法來加強網(wǎng)絡(luò)中有效特征的流動.
在目標檢測和識別中,圖像金字塔是經(jīng)常使用的結(jié)構(gòu),即把圖像表示為一系列分辨率逐漸降低的圖像集合,這是一種多尺度的表達方式,可用于數(shù)據(jù)的擴增.在深度學(xué)習(xí)中,多尺度信息的輸入可以防止設(shè)計的卷積神經(jīng)網(wǎng)絡(luò)陷入局部最優(yōu)解,促進網(wǎng)絡(luò)參數(shù)的更新.因此本文在網(wǎng)絡(luò)中增加了多尺度信息輸入的方法.
如圖4 中最下端數(shù)據(jù)輸入部分所示,多尺度輸入需要在網(wǎng)絡(luò)輸入端對圖像矩陣進行多尺度降采樣.為了與網(wǎng)絡(luò)中特征圖尺寸匹配,降采樣后的尺寸分別為112×112 像素、56×56 像素和28×28 像素,將結(jié)果分別送到生成同樣尺寸特征圖的中間層進行通道組合.多尺度特征信息的融合可以提高數(shù)據(jù)的特征利用率.在訓(xùn)練過程中,使用dropout[29]技術(shù)進行隨機丟棄,以產(chǎn)生網(wǎng)絡(luò)局部震蕩,促進部分網(wǎng)絡(luò)參數(shù)的更新以防止陷入局部最優(yōu)解,同時還可以避免網(wǎng)絡(luò)過擬合.多尺度輸入在網(wǎng)絡(luò)輸入前就準備好了多尺度信息,而不是在網(wǎng)絡(luò)內(nèi)部生成,因此在網(wǎng)絡(luò)訓(xùn)練中不需要額外增加參數(shù),維持了網(wǎng)絡(luò)的原有計算成本.
殘差結(jié)構(gòu)的存在允許設(shè)計出一個高深度的網(wǎng)絡(luò)而不用擔(dān)心其訓(xùn)練的退化問題,然而在訓(xùn)練過程中,由于大多數(shù)參數(shù)的作用范圍很小,且每層檢測到的特征直接作為下一層的輸入,在更深層的信息流動過程中該特征的影響極小,很多信息會在特征傳遞過程中丟失,而每一層只能從上一層獲得數(shù)據(jù),丟失的信息無法補充.
不同于普通分類任務(wù),車輛型號識別屬于精細分類問題,所需要的特征量更多也更細致.各種型號的車輛,其車輛輪廓、車窗、車燈、車柵格、車門、倒車鏡等部件的形狀、位置均存在不同.這些不同的特征中既包含宏觀的外觀信息,也包含細節(jié)的紋理信息,還包含空間位置信息.本文使用卷積神經(jīng)網(wǎng)絡(luò)模型來實現(xiàn)識別任務(wù),數(shù)據(jù)信息從網(wǎng)絡(luò)輸入端輸入后,每層網(wǎng)絡(luò)所提取到的特征各不相同.對每層所獲得的特征圖進行可視化,可以看出,隨著數(shù)據(jù)在網(wǎng)絡(luò)中的流動,所得到的特征信息愈來愈抽象.我們通過一個例子來直觀展現(xiàn)這一現(xiàn)象.圖5 為車輛圖像在深度卷積神經(jīng)網(wǎng)絡(luò)不同層次所得特征圖的部分可視化結(jié)果.輸入為三通道RGB 圖像,圖中顏色的深淺描述網(wǎng)絡(luò)中的神經(jīng)單元在不同區(qū)域的激活程度.從中可以看出,卷積網(wǎng)絡(luò)在淺層階段提取的信息更簡單,如邊緣信息,從圖中仍能看出這是一輛車.而在深層特征圖中提取到的不再是低層特征,開始包含紋理等多樣化的高層特征,且感受野范圍也更大.
圖5 特征圖可視化Fig.5 Visualization of feature maps
每層均基于上一層的輸出進行學(xué)習(xí),因此越深層的特征越抽象.但也因為如此,在層層傳遞的過程中,淺層的一些信息可能會連同無用的背景信息一起被過濾掉.
為防止在最終決策中錯過最初的有效信息,即避免特征信息的浪費,提出了一種特征重用的方法,對不同層次模塊的特征進行不同程度的重用,彌補上層特征的丟失,以達到使最終生成的特征更加全面的目標.
特征重用的主要結(jié)構(gòu)為
其中,xn為第n 層的輸出,Pn表示重用算法,Pn(xn-1)表示在第n 層輸出中選取第n-1 層前1/P 個通道的特征圖作為重用特征圖,Rn為主體網(wǎng)絡(luò)的殘差運算,Rn(xn-1)表示將第n-1 層輸入圖3 所示殘差結(jié)構(gòu)后輸出.Concat 操作將兩組特征圖在通道上進行合并.
如圖6 所示,假設(shè)特征圖的大小用N×C×H×W 表示,其中,N 為大小,C 為通道數(shù),H 為特征圖高度,W 為特征圖寬度.若當(dāng)前結(jié)構(gòu)的輸入特征圖尺寸為N ×C0×H0×W0,生成的特征圖大小為N×C1×H1×W1,重用部分的比例為P.特征重用應(yīng)用于網(wǎng)絡(luò)中所有的殘差結(jié)構(gòu)(如圖3 所示),即:上一個殘差結(jié)構(gòu)的輸出中的部分信息會作為特征重用信息,與當(dāng)前殘差結(jié)構(gòu)的輸出結(jié)合在一起,作為最終輸出的特征圖組.其中,特征重用參數(shù)
圖6 特征重用過程Fig.6 The process of feature reuse
P 的取值選擇問題將在第3.5 節(jié)中詳細描述.重用的特征圖根據(jù)生成特征圖的比例進行適當(dāng)調(diào)整,重用特征圖為N×(C0×P)×H1×W1.則最終輸出特征圖為N×(C0×P +C1)×H1×W1.
卷積神經(jīng)網(wǎng)絡(luò)的核心是卷積層,卷積核在一組特征圖上進行卷積操作生成新的特征圖,多個卷積核生成的特征圖共同構(gòu)成卷積層的輸出.針對生成的特征圖,一般深度學(xué)習(xí)網(wǎng)絡(luò)中在進行后續(xù)操作時,對每張?zhí)卣鲌D是同等對待的.然而,實際上每個特征圖中所包含的有價值信息不同,對車型識別任務(wù)的貢獻也各不相同.如圖5 所示,同一特征圖組中每張?zhí)卣鲌D所包含的有效信息各不相同,有的包含了很重要的有效信息,有的包含的有效信息內(nèi)容較少,因此盡可能多地保留這些有效信息,加強有效特征信息在網(wǎng)絡(luò)中的流動很有必要.
為實現(xiàn)增強有效特征信息、抑制噪聲的目的,本文采用一種特征圖權(quán)重學(xué)習(xí)的策略,通過網(wǎng)絡(luò)學(xué)習(xí)的方法,為同一層的每個特征圖分配新的權(quán)重.具體實現(xiàn)如圖7 所示,將尺寸為C ×H ×W 的特征圖組輸入一個雙通道的降維通道,降維通道的池化層選擇策略與對比實驗將在第3.6 節(jié)詳細說明.本文中的通道由局部最大值池化與全局平均池化層組成.其中局部最大值池化是將特征圖劃分為3×3 共9個局部區(qū)域,分別進行最大值池化.通道的輸出被壓縮后排列為一維數(shù)據(jù),在對其進行兩次全連接操作后,利用Sigmoid 函數(shù)生成一維權(quán)重參數(shù)C×1×1,參數(shù)深度等于特征圖的個數(shù).最后將權(quán)重與原特征圖矩陣相乘獲得新的特征圖組.由于高層網(wǎng)絡(luò)中特征圖用于最終分類,其尺寸小且數(shù)量多.圖7 所示的先降維再升維的權(quán)重學(xué)習(xí)方法無法在過小的尺寸上通過局部和全局池化獲得更多的有效信息,提升效果不顯著.反而會因為特征圖數(shù)量多,導(dǎo)致全連接參數(shù)大大增加,額外增加了計算時間,所以只將該方法應(yīng)用在低層和中層網(wǎng)絡(luò)中.
圖7 特征圖權(quán)重學(xué)習(xí)Fig.7 Weight learning based on feature maps
特征圖權(quán)重學(xué)習(xí)策略使用局部和全局池化來提取各特征圖矩陣信息,可以在節(jié)省參數(shù)個數(shù)的同時,有效提取特征圖各自的特征以及整個特征圖組的空間信息,然后通過學(xué)習(xí)獲得每個特征圖的權(quán)重,將權(quán)重傳入下一層的特征圖組中,以提高有效特征信息的比重,從而增強有效信息的流動.
車輛型號精細識別研究所使用的數(shù)據(jù)集分為兩類:監(jiān)控數(shù)據(jù)集和網(wǎng)絡(luò)數(shù)據(jù)集.監(jiān)控數(shù)據(jù)集中的圖像主要來源于卡口監(jiān)控系統(tǒng),網(wǎng)絡(luò)數(shù)據(jù)集中的圖像主要來源于網(wǎng)絡(luò).由于卡口監(jiān)控設(shè)備的固定性,卡口抓拍圖像中的車輛姿態(tài)固定,一定程度上降低了其分類的難度.網(wǎng)絡(luò)數(shù)據(jù)集中的圖像所在場景多變、姿態(tài)各異,且分辨率也不固定,因此,基于網(wǎng)絡(luò)數(shù)據(jù)集的車型識別更具有挑戰(zhàn)性.
采用網(wǎng)絡(luò)數(shù)據(jù)集中具有代表性的StanfordCars和CompCars 網(wǎng)絡(luò)數(shù)據(jù)集為實驗數(shù)據(jù)集,開展實驗研究(數(shù)據(jù)集中部分圖像如圖8 所示).Stanford-Cars 數(shù)據(jù)集共含車型196 類,總圖像數(shù)量為16 185幅.數(shù)據(jù)集標簽包括車型種類及車輛在圖像中的定位信息.CompCars 數(shù)據(jù)集包含監(jiān)控數(shù)據(jù)和網(wǎng)絡(luò)數(shù)據(jù)兩個部分,其網(wǎng)絡(luò)數(shù)據(jù)集共記錄了431 種車型、5種車輛拍攝姿態(tài),總圖像為52 083 幅,包含車輛位置標定以及車部件等細節(jié)信息.
圖8 數(shù)據(jù)集中的樣本Fig.8 Samples from datasets
實驗的硬件環(huán)境如下:CPU:Intel Core i7-7700K CPU @ 4.20 GHz × 8;內(nèi)存:16 GB;顯卡:Nvidia GTX1080Ti;顯存:12 GB.
實驗所有模型在Ubuntu16.04 環(huán)境下基于開源框架CAFFE[30]實現(xiàn),CUDA 版本為9.0.
在識別速度、所需硬件條件差別不大的情況下,識別準確率是衡量識別算法性能的重要指標,準確率的計算與對比也很簡潔明了.為易于本文實驗結(jié)果與其他算法結(jié)果的比較,使用常用的準確率計算公式,即
FR-ResNet 的實驗準確率基于實驗環(huán)境進行計算獲得,本文實驗部分的其他對比實驗,其準確率數(shù)據(jù)來源為:1)優(yōu)先采用對應(yīng)論文提供的實驗數(shù)據(jù);2)經(jīng)典網(wǎng)絡(luò)模型采用與FR-ResNet 相同的訓(xùn)練設(shè)置以及數(shù)據(jù)預(yù)處理方式,通過官方提供的代碼復(fù)現(xiàn).
網(wǎng)絡(luò)訓(xùn)練采用224×224 像素的數(shù)據(jù)輸入尺寸,以與其他網(wǎng)絡(luò)原有的輸入保持一致.每幅輸入圖像的預(yù)處理操作使用文獻[12] 中提到的方法,先將圖像大小歸一化到256×256 像素,裁剪4 個角外加中心部分獲得5 幅224×224 像素圖像,并各自進行鏡像操作,共生成10 幅訓(xùn)練圖像,再從中減去訓(xùn)練集圖像均值,即為訓(xùn)練輸入數(shù)據(jù).在測試時,對圖像進行減均值操作時使用訓(xùn)練集均值,對10 幅擴展出的圖像求平均預(yù)測值.網(wǎng)絡(luò)使用隨機梯度下降法(Stochastic gradient descent,SGD)更新模型權(quán)重,初始學(xué)習(xí)率為0.001,每10 萬次迭代降低10 倍學(xué)習(xí)率.整個訓(xùn)練過程共迭代35 萬次.
基于StanfordCars 數(shù)據(jù)集,使用其提供的所有圖像數(shù)據(jù)用于實驗.為了與其他研究成果進行更全面的比較,數(shù)據(jù)集輸入采用原圖,即無BBox(bounding box)和帶BBox 兩種方式.
實驗結(jié)果如表1 所示,在使用BBox 的情況下,BB-3D-G (3D BubbleBank which pooling bubble responses globally)為StanfordCars 數(shù)據(jù)集發(fā)布時作者實驗的結(jié)果,作為實驗對比的參照,識別準確率為67.6%.在深度學(xué)習(xí)還未廣泛應(yīng)用時,LLC(Locality-constrained linear coding)[31]在編碼方式上使用局部限制線性編碼方式,其準確率略有提高,為69.5%.ELLF (Ensemble of localized learned features)[32]通過重點學(xué)習(xí)車輛部件等細節(jié)特征,使識別率達到73.9%.VGGNet 在多個遷移學(xué)習(xí)任務(wù)表現(xiàn)優(yōu)秀,應(yīng)用在車輛型號識別領(lǐng)域也有著一定的效果,在不使用BBox 的情況下,識別準確率為75.6%.2015 年,ResNet 的出現(xiàn)加深了卷積神經(jīng)網(wǎng)絡(luò)的層數(shù),ResNet-101 就能達到85.8% 的準確率,體現(xiàn)了網(wǎng)絡(luò)深度在車型識別方面的優(yōu)勢.FCANs (Fully convolutional attention networks)[33]依靠在視覺提取以及部件注意機制方面的創(chuàng)新,將識別率提升到89.1%,如果使用BBox準確率還能再提高兩個百分點.文獻[34] 中提出具有集合約束的triplets,獲得了92.5% 的準確率,Krause 等在文獻[35] 中使用BBox,準確率能達到92.8%.我們的網(wǎng)絡(luò)在使用BBox 的情況下能達到93.1% 的準確率,即使不使用BBox,準確率也有90.6%,比ResNet 使用BBox 的識別效果還要好.
表1 在StanfordCars 數(shù)據(jù)集上的實驗結(jié)果比較(%)Table 1 Comparison of classification results on the StanfordCars dataset (%)
CompCars 數(shù)據(jù)集包括2 類,即卡口監(jiān)控數(shù)據(jù)集和網(wǎng)絡(luò)數(shù)據(jù)集.卡口監(jiān)控數(shù)據(jù)集中的車輛圖像共44 481 幅、281 類,其中訓(xùn)練樣本31 148 幅、測試樣本1 333 幅.在此數(shù)據(jù)集上進行實驗,多個經(jīng)典模型均能獲得97% 以上的Top-1 準確率,其中AlexNet,GoogLeNet和ResNet 的Top-1 準確率分別為97.8%,98.5%和98.8%,本文提出的FRResNet,其Top-1 準確率為99.2%.而上述模型的Top-5 準確率都能達到99.5% 以上.雖然卡口圖像分辨率低,但是圖像上的車輛姿態(tài)固定,因而降低了分類難度,各分類模型的識別準確率都很高.為有效體現(xiàn)本文方法的優(yōu)勢,采用CompCars 網(wǎng)絡(luò)數(shù)據(jù)集來進行實驗的詳細分析.
CompCars 網(wǎng)絡(luò)數(shù)據(jù)集提供的車輛圖像總數(shù)高達143 060 幅,標注部分為其中的36 456 幅.以標注的36 456 幅為訓(xùn)練樣本,提取15 627 幅為測試樣本,在此基礎(chǔ)上進行實驗.為體現(xiàn)FR-ResNet 網(wǎng)絡(luò)在該數(shù)據(jù)集上的良好表現(xiàn),使用近些年多個經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)模型以及其他研究者們的研究成果與本文的網(wǎng)絡(luò)進行比較,實驗結(jié)果如表2 所示.
表2 在CompCars 數(shù)據(jù)集上的實驗結(jié)果比較(%)Table 2 Comparison of classification results on the CompCars dataset (%)
CompCars 網(wǎng)絡(luò)數(shù)據(jù)集中的車輛具有各種不同的姿態(tài),該數(shù)據(jù)集的發(fā)布者針對其所有姿態(tài)進行實驗,獲得了Top-1 為76.7%,Top-5 為91.7% 的實驗結(jié)果.早年的AlexNet 由于自身網(wǎng)絡(luò)結(jié)構(gòu)的局限性,在精細識別任務(wù)上較為乏力,Top-1 與Top-5準確率僅為81.9%和90.4%.文獻[22] 通過建立3D 包圍盒獲取車輛額外3D 信息,取得Top-1為84.8%,Top-5 為95.4% 的準確率.GoogLeNet憑借其網(wǎng)絡(luò)深度和寬度,將Top-1 提高到91.2%,Top-5 提高到98.1%.ResNet 效果更好,Top-1 為92.3%,Top-5 為98.4%.文獻[27] 采用先定位后識別的方法,Top-1 準確率為94.3%,Top-5 準確率為98.9%.總體來看,Top-1 準確率的提升遠大于Top-5,可見準確率的提升更多依靠的是對類間差小的車型的正確識別.而本文提出的FR-ResNet 模型僅使用分類標簽,Top-1和Top-5 的準確率分別達到了95.3%和99.1%,平均每種類別的錯誤張數(shù)不足0.4 張.
對分類錯誤的圖像進行分析,并總結(jié)錯誤的原因,可能有:1)復(fù)雜背景和環(huán)境光照影響了車輛的正確識別(如圖9(a)所示);2)車輛本身發(fā)生變化,如圖9(b)所示,奧迪車車門敞開,使車身部分的有效特征發(fā)生了變化;3)車輛在原圖中占比過小,如圖9(c)所示;4)受拍攝角度的影響,如圖9(d)所示,車輛圖像是自頂向下拍攝的,而在訓(xùn)練集中缺少相同拍攝角度的樣本.
圖9 識別錯誤的樣本Fig.9 Samples of error recognition
為體現(xiàn)網(wǎng)絡(luò)在特征提取方面的優(yōu)勢,并驗證網(wǎng)絡(luò)的魯棒性,減少訓(xùn)練樣本的數(shù)量,以驗證在少量樣本情況下網(wǎng)絡(luò)仍具有很好的性能.按照數(shù)據(jù)集官方早期提供的標注信息,其中訓(xùn)練樣本數(shù)量不足目前標注訓(xùn)練樣本數(shù)量的一半,我們提取了數(shù)據(jù)集中舊版標注的16 016 幅為訓(xùn)練樣本,14 939 幅為測試樣本,生成少量樣本數(shù)據(jù)集A,在此基礎(chǔ)上繼續(xù)進行實驗.本文提出的FR-ResNet 在此數(shù)據(jù)集上的表現(xiàn),以及與表2 中效果較好的幾種經(jīng)典網(wǎng)絡(luò)結(jié)構(gòu)的對比結(jié)果如表3 所示.在沒有足量訓(xùn)練數(shù)據(jù)的情況下,各網(wǎng)絡(luò)的識別準確率均有所降低.GoogLeNet 的準確率Top-1 只有65.8%,Top-5 為87.9%.更深的ResNet 僅有78.3% 的Top-1 的識別準確率,Top-5準確率也只有93.5%,單純的殘差結(jié)構(gòu)效果并不好.DenseNet 通過加強信息傳遞Top-1 識別準確率可以上升到90.6%,Top-5 準確率也提高了接近5 個百分點,說明特征利用率的提升對車輛型號精細識別有效.本文中提出的FR-ResNet 更加專注特征信息的有效利用,其準確率得到了更進一步的提升,Top-1 識別率達到了92.5%,Top-5 識別率達到了98.4%.為了進一步檢驗網(wǎng)絡(luò)性能,我們還嘗試使用更小數(shù)量的訓(xùn)練樣本進行實驗.在16 016 幅訓(xùn)練樣本的基礎(chǔ)上每類再次減少1/3,形成少量樣本數(shù)據(jù)集B.在Top-1 識別率上,GooLeNet 僅為52.3%,ResNet,DenseNet 分別為69.7%和81.5%,而我們的FR-ResNet 達到85.2%,識別效果更好.再次減少訓(xùn)練樣本數(shù)量,取16 016 幅訓(xùn)練樣本的1/2 時,訓(xùn)練過程困難,實驗結(jié)果不佳,每個網(wǎng)絡(luò)的準確率均不超過60%.造成這種結(jié)果的原因是,原數(shù)據(jù)集每類樣本的數(shù)量不均勻,當(dāng)訓(xùn)練數(shù)據(jù)減半時,多數(shù)種類樣本不足20 幅,過少的訓(xùn)練樣本使得深度學(xué)習(xí)網(wǎng)絡(luò)無法完成很好的收斂.
表3 在CompCars 少量樣本數(shù)據(jù)集上的實驗結(jié)果比較(%)Table 3 Comparison of classification results on the small training samples from CompCars dataset (%)
FR-ResNet 在采用特征重用策略提升網(wǎng)絡(luò)性能的同時,也增大了網(wǎng)絡(luò)的規(guī)模,特征重用的比例P隨著網(wǎng)絡(luò)深度、特征圖數(shù)量的變化需要有所調(diào)整,以獲取最佳實驗效果.
本文使用Caffe 框架中的Slice 層來實現(xiàn)通道選擇的功能.Slice 層的作用是通過設(shè)置多個分割點來分割輸入的特征圖,其中參數(shù)axis可以設(shè)置特征圖分割的維度.由于特征圖中各通道在初始化階段等價,故選取需要設(shè)置參數(shù)最少的前1/P 個通道進行重用.本文中設(shè)置axis=1,將特征圖按通道分割,使用單個分割點,使得分割點左側(cè)的通道數(shù)與總通道數(shù)比值為1/P,以達到選取1/P個通道的目的.
根據(jù)深度及特征圖數(shù)量將網(wǎng)絡(luò)分成4 個不同的階段,依次進行P 值的調(diào)優(yōu)實驗,當(dāng)取值跨度較大時,可通過二分法確定選值.第1 階段為低層網(wǎng)絡(luò)部分,特征圖組中的特征圖數(shù)量為256,分別使用1/64,1/16,1/8 的P 值比例進行實驗,結(jié)果如表4所示,故選擇1/16 作為該階段P 值.第2 階段同為低層網(wǎng)絡(luò)部分,特征圖組中的特征圖數(shù)量為512,根據(jù)實驗結(jié)果選擇1/16 作為該階段P 值.第3 階段為中層網(wǎng)絡(luò)部分,特征圖組中的特征圖數(shù)量為1 024,使用1/64,1/16,1/8 的P 值比例進行實驗,實驗結(jié)果表明P 值為1/64 與1/16 時提升效果相近但重用特征圖數(shù)量相差較多,故使用二分法選擇更優(yōu)的P 值.最終確定該階段P 值為1/32.第4 階段特征圖組中的特征圖數(shù)量為2 048,實驗選取P 值為1/16.
表4 特征重用比例P 值對準確率的影響Table 4 Effect of feature reuse ratio P on recognition accuracy
FR-ResNet 采用特征圖權(quán)重學(xué)習(xí)來增強有效信息比重,如果直接用全連接層提取特征圖信息,以用于權(quán)重學(xué)習(xí),將導(dǎo)致參數(shù)量劇增,不利于深層網(wǎng)絡(luò)的訓(xùn)練.添加池化層是常用的降維方法,能在不額外增加參數(shù)的同時提取到有效特征.根據(jù)所提取特征的不同和池化方法的不同,可以采取全局平均、全局最大值、局部平均、局部最大值4 種單獨的池化方案,以及其兩兩組合的方案.
基于上述方案分別進行實驗,實驗結(jié)果如表5所示,從中可以看出單獨的池化策略中,全局平均池化的效果最好;而在池化的組合方案中,“全局最大值+局部最大值”的提升效果最弱,可能原因是局部最大值已經(jīng)包含了全局最大值;“全局平均池化+局部最大值池化”效果最好,因此本文選擇了這種組合的池化策略.
表5 權(quán)重學(xué)習(xí)中池化策略的對比(%)Table 5 Comparison results of pooling strategies in weight learning (%)
FR-ResNet 以特征的高效利用為目標,分別采用了三種改進策略來完善網(wǎng)絡(luò)模型,即:多尺度輸入、特征重用和特征圖權(quán)重學(xué)習(xí).為了證明這些方法的有效性,使用控制變量的研究方法在CompCars數(shù)據(jù)集上進行對比實驗.實驗結(jié)果如圖10 所示,從中不難看出,三種結(jié)構(gòu)均能提高網(wǎng)絡(luò)識別準確率.其中,特征重用的效果最為明顯,其識別率的提升最高,Top-1和Top-5 的識別率分別提升了2.7%和0.6%.由此可見,數(shù)據(jù)在網(wǎng)絡(luò)傳播中會丟失部分有效特征,且較低層特征在較高層網(wǎng)絡(luò)中對識別任務(wù)仍然具有貢獻.特征圖權(quán)重學(xué)習(xí)策略位居第二,其Top-1和Top-5 識別率分別提升了1.5%和0.3%,說明了增強有效信息流動的可行性.多尺度輸入策略對網(wǎng)絡(luò)影響較小,但識別率仍有一定的提升,說明該方法仍然存在有效性.提升的結(jié)果符合該方法預(yù)期的反饋效果,即其在數(shù)據(jù)擴增和避免局部最優(yōu)方面的作用.
圖10 各結(jié)構(gòu)性能比較Fig.10 Comparison of performances of all structures
本文針對車輛型號精細識別問題進行研究,提出了以殘差結(jié)構(gòu)為網(wǎng)絡(luò)主體結(jié)構(gòu),以特征重用為主要思想的方法,并基于此設(shè)計了深度卷積神經(jīng)網(wǎng)絡(luò)模型FR-ResNet.FR-ResNet 采用了多尺度數(shù)據(jù)輸入、低層特征在高層中重用和特征圖權(quán)重學(xué)習(xí)三大策略,有效阻止了網(wǎng)絡(luò)訓(xùn)練的退化以及陷入局部最優(yōu)解,提高了對網(wǎng)絡(luò)中有效特征的利用率,減輕了冗余信息的干擾.在CompCars和StanfordCars 兩大公開數(shù)據(jù)集上的測試結(jié)果表明FR-ResNet 在車輛型號精細識別上具有較高的識別精度,高于其他的一些網(wǎng)絡(luò)模型.此外,FR-ResNet 在車輛姿態(tài)變化、復(fù)雜背景干擾、訓(xùn)練樣本減少時,具有一定的魯棒性.
本文中提出的三大改進策略也可以應(yīng)用于其他精細識別任務(wù),針對類間差小、種類繁多的目標,設(shè)計出具有針對性的卷積神經(jīng)網(wǎng)絡(luò)模型.