朱云飛,者甜甜,劉慶華
(江蘇科技大學電子信息學院,江蘇鎮(zhèn)江 212003)
隨著車輛數(shù)量的增加,交通違章現(xiàn)象頻出,例如渣土車違規(guī)上道、工程車輛違規(guī)進入城市主干道、車輛停放在消防通道等,這一系列的交通違規(guī)行為給城市安全埋下了巨大隱患。對于交通管理者而言,加強對特定車輛的識別和分類管理尤為重要。然而,在實際監(jiān)控識別車輛時,相當一部分車輛圖像存在圖像不全或者遮擋問題,極大降低了監(jiān)控識別準確率。如何準確識別車輛,是當前車輛檢測的重點。
近年來,深度學習技術(shù)不斷發(fā)展,已成功應用于各行各業(yè)。深度學習與傳統(tǒng)方法相比,能更加深入地獲取到圖像的各種信息,因而其在圖像識別、分類等方面效果顯著。文獻[1]提出LeNet 網(wǎng)絡(luò)并將其應用于手寫數(shù)字識別,雖然該網(wǎng)絡(luò)因時代條件所限而不能應用于更加復雜的場景,但依然具有突破性的進步。在此之后,受益于時代條件的轉(zhuǎn)變與人文科學的進步,各種面向復雜場景的改進型網(wǎng)絡(luò)也相繼問世,如AlexNet[2]、ZFNet[3]、VGGNet[4]、GoogleNet[5]、ResNet[6]等,極大提高了網(wǎng)絡(luò)應用水平。
文獻[7]基于卷積神經(jīng)網(wǎng)絡(luò)提出R-CNN 目標檢測模型,此模型的提取特征由卷積神經(jīng)網(wǎng)絡(luò)完成,分類工作則由支持向量機制完成,這樣的結(jié)構(gòu)大幅提升了mAP 值,但也出現(xiàn)了選擇候選區(qū)域耗費大量時長的問題。為了解決該問題,學者們提出許多目標檢測算法,例如Fast-RCNN[8]、Faster-R-CNN[9]、YOLO[10]、SSD[11]等。其中,YO?LO 和SSD 都是一步法,即two-stage 算法,他們的候選區(qū)域產(chǎn)生與分類等工作都集成在一個網(wǎng)絡(luò)之內(nèi),使得整體運算時間大為減少,但同時也帶來了精度較低的負面影響。RCNN 相關(guān)算法屬于兩步法,即two-stage 算法,候選區(qū)域生成與識別分類兩個模塊分開工作,與一步法相反,其精度表現(xiàn)良好但耗時較長。因此,因地制宜選擇網(wǎng)絡(luò)模型才能更好地解決實際問題。
近年來,越來越多的學者將卷積神經(jīng)網(wǎng)絡(luò)應用于車輛檢測并取得不錯效果。文獻[12]提出的算法提高了圖像上采樣效率,并結(jié)合聚類算法,在公開數(shù)據(jù)集檢測上取得良好效果;文獻[13]將HashNet 中的AlexNet 部分替換為雙線性模塊,賦予網(wǎng)絡(luò)對精細粒度特征的提取能力,根據(jù)特征生成哈希碼,并通過匹配哈希碼實現(xiàn)車型識別;文獻[14]提出新的改進Inception 模塊,并將其替代SSD 網(wǎng)絡(luò)中的Conv8、Conv9 和Conv10 層,并設(shè)計了多尺度特征融合均衡化網(wǎng)絡(luò),提高了對小目標車輛的識別率。
但上述研究針對的只是車輛整體類型識別,并不能達到實際交通管理要求。根據(jù)實際情況,本文將車輛分為家用小轎車、大客車、消防車、重型卡車、吉普車、面包車、出租車、小卡車和運動型汽車(SUV)等9 類,改進Faster-RCNN 算法模型,對車輛進行識別與分類工作。
本文目標檢測算法由Fast R-CNN 改進而來。在候選區(qū)域生成階段,他使用選擇區(qū)域建議網(wǎng)絡(luò)(Region Proposal Network,RPN)代替?zhèn)鹘y(tǒng)算法中的Selective Search[15],該算法的特征抽取、候選區(qū)域生成、邊界框回歸與分類工作都整合在一個網(wǎng)絡(luò)中,從而提升了綜合檢測性能,同時相較于前代算法,F(xiàn)aster R-CNN 的檢測速度也有了較大提升。
圖像在輸入后,經(jīng)過卷積層生成特征圖,RPN 模塊處理特征圖生成候選區(qū)域,該結(jié)果與特征圖共同輸入到RoiPooling 層并進行后續(xù)分類與回歸。
在實際操作使用中發(fā)現(xiàn),由于Faster R-CNN 對多尺度信息的提取效果較差,其對于一些特殊車輛,例如公安用車、救護車輛等識別率相對較低,同時在有所遮擋的視野條件下會出現(xiàn)較多漏檢誤檢情況。因此,本文選擇提高感受野和對多尺度信息的重采樣改進算法,同時引入Rea?soning-RCNN,給予Faster R-CNN 全局推理能力,以解決實際檢測中出現(xiàn)的準確率不理想問題。
文獻[16]基于卷積神經(jīng)網(wǎng)絡(luò)提出Reasoning-RCNN,該方法引入了全局語義池和知識圖譜,以達到特征增強效果。該網(wǎng)絡(luò)首先利用基本檢測網(wǎng)絡(luò)產(chǎn)生每個類別的基礎(chǔ)分類權(quán)重,并利用其生成一個全局語義池;然后,通過包含語義知識的知識圖譜后,經(jīng)由自適應全局推理模塊產(chǎn)生強化后的特征,將此特征與先前生成的基礎(chǔ)特征相結(jié)合后生成新的分類和定位。該方法足夠靈活,可以疊加在大部分現(xiàn)有網(wǎng)絡(luò)上,借此可以有效改善遮擋或模糊情況下的物體識別。本文將其融合到Faster R-CNN 中以改善原網(wǎng)絡(luò)檢測效果。
VGGNet 網(wǎng)絡(luò)結(jié)構(gòu)簡潔、泛化性能良好。VGG-16 網(wǎng)絡(luò)是2014 年推出的深度網(wǎng)絡(luò)模型,該網(wǎng)絡(luò)共有帶參的網(wǎng)絡(luò)層16 個,包含有卷積層13 個、池化層5 個、全連接層3 個。在圖像處理方面性能卓越。因此,本文將改進VGG-16 網(wǎng)絡(luò)作為骨干網(wǎng)絡(luò)使用。
在神經(jīng)網(wǎng)絡(luò)中,為了減少參數(shù)數(shù)量并增加感受野,特征圖在生成后需要經(jīng)過池化層下采樣以減小特征圖尺寸。而后續(xù)的上采樣還原特征圖尺寸的過程會丟失很大一部分特征信息,即該過程會丟失細節(jié)信息導致圖像處理效果不佳。針對該問題,文獻[17]提出空洞卷積(Atrous Convo?lutions),該方法在增加感受野的同時沒有減小圖像大小。因此,每個卷積輸出都包含了較為完整的信息??斩淳矸e示意圖如圖1所示。
Fig.1 Atrous convolutions圖1 空洞卷積
在利用Faster-RCNN 進行車輛類型識別過程中,部分車輛存在相似度較高的情況,例如警用車輛、出租車和私家車輛、消防車和貨車等,這些車型的主要區(qū)別在于車身涂裝和標志燈上。在實際應用中,往往會因為行人或非機動車遮擋部分車輛畫面導致識別效果不佳。改進模型利用空洞卷積增加感受野,結(jié)合空洞空間金字塔池化(Atrous Spatial Pyramid Polling,ASPP)提高對多尺度信息的提取效果,引入Reasoning-RCNN 賦予模型自適應推理能力,以增強算法識別能力。
本文創(chuàng)建了一個COCO 數(shù)據(jù)集,用于訓練Faster-RCNN。根據(jù)數(shù)據(jù)特點,選擇VGG-16 作為骨干網(wǎng)絡(luò),引入空洞卷積、空洞空間金字塔池化和Reasoning-RCNN 提高算法準確率。修改后的結(jié)構(gòu)模型如圖2所示。
圖像首先經(jīng)過融合空洞卷積的VGG-16 網(wǎng)絡(luò)得到特征圖。特征圖分別在RPN 模塊生成候選區(qū)域,在ASPP 模塊提取多尺度特征信息。兩項結(jié)果一方面共同輸入到ROI Align 層中進行候選區(qū)域特征圖的生成,再進行后續(xù)工作得到各項的初始權(quán)重以生成全局語義池M;另一方面由特征圖生成注意力系數(shù)α,通過包含特定知識的知識圖譜,在M 中傳播所有的語義表示以進行全局推理。最后,將得到的結(jié)果,即增強后的特征圖再次進行分類和候選區(qū)域回歸以得到新的分類權(quán)重。
Fig.2 Schematic diagram of improved algorithm structure圖2 改進算法結(jié)構(gòu)示意圖
本方法的損失函數(shù)分為RPN 損失與Faster R-CNN 損失兩部分。同時,這兩部分損失中都包含分類損失和回歸損失。其計算方法為:
其中,σ在RPN訓練時為3,在Faster R-CNN 訓 練時為1。
本方案用rate 值為2、3、5 的空洞卷積在VGG 的第4、5個卷積模塊中分別進行3 次卷積操作??斩淳矸erate 值的變化后,為了不改變生成特征圖的尺寸,pad 值也需作出改變。在rate=1,即用3*3 的卷積核對7*7 的特征圖進行卷積操作時,需要在特征圖外圍補充寬度為1 的像素點以確保能夠生成7*7 大小的特征圖。當使用5*5 的卷積核進行卷積時,即rate 值為2,則需要填充的像素點寬度為2。同理,在rate 為3 時,相當于使用7*7 的卷積核進行卷積,此時應在特征圖周邊填充寬度為3 的像素點。在rate=5 時應填充寬度為5 的像素點。因此,也需要修改網(wǎng)絡(luò)中相應的pad參數(shù)。修改后的VGG16 網(wǎng)絡(luò)與原網(wǎng)絡(luò)卷積層比較如表1所示。
使用空洞卷積能有效提高感受野,同時還可以改善局部特征信息丟失情況,以增加相似車型之間的差異特征。
空洞空間金字塔池化(ASPP)是基于SPP(Spatital Pyr?amid Pooling)而提出,該方法對所給定的輸入以不同采樣率的空洞卷積并行采樣,相當于以多個比例捕捉圖像上下文。ASPP 能增加對多尺度信息的提取效果,以此提升算法準確性。
Table 1 Comparison between VGG-16 network structure with atrous convolution and original network表1 空洞卷積的VGG-16網(wǎng)絡(luò)結(jié)構(gòu)與原網(wǎng)絡(luò)比較
本文在Faster R-CNN 中加入ASPP,從Conv-5 層輸出的特征圖輸入ASPP 結(jié)構(gòu)中,使用多個尺度的空洞卷積進行重采樣,并編碼多尺度信息,增加對多尺度信息的提取效果。rate 值的設(shè)定要適當,既能保證較大的感受野,又不至于降低空洞卷積效果,這樣才能夠保證對多尺度信息的處理效果。
本文檢測對象中,消防車、出租車等與普通車輛的區(qū)分標志圖案屬于小目標,因而在檢測中應使用多個小尺度的卷積進行重采樣工作,這樣才能保證盡可能多地獲取到相關(guān)的局部特征信息。經(jīng)實驗后發(fā)現(xiàn)提取多尺度信息的最佳方案為:ASPP 模塊第一個分支先進行平均池化操作,然后使用1*1 的卷積變換通道數(shù),其他4 個分支分別使用rate 值為1、3、5、7 的3*3 卷積核對特征圖進行再采樣。ASPP 結(jié)構(gòu)如圖3所示。
Fig.3 Structure of atrous spatial pyramid pooling(ASPP)in void space圖3 空洞空間金字塔池化(ASPP)結(jié)構(gòu)
該方法通過引入外部知識建立自適應全局推理模塊。首先,通過收集上一層的分類層權(quán)重生成全局語義池,即集成每個類別的高級語義表示;然后,在訓練和測試中定義一個類到類的無向圖G=
Fig.4 Global reasoning module圖4 全局推理模塊
深度學習方法需要樣本數(shù)據(jù)進行訓練,以學習數(shù)據(jù)中的特征,本方法也不例外。在數(shù)據(jù)選擇上,需要選擇更有代表性的圖像才能獲得較好的檢測效果。本文使用從網(wǎng)絡(luò)上采集而來的數(shù)據(jù)樣本,包括9 個類別,即家用小轎車、大客車、消防車、重型卡車、吉普車、面包車、出租車、小卡車、運動型汽車(SUV)。數(shù)據(jù)圖像皆為車輛的正面或側(cè)面視角,符合大部分實際應用的常見狀況。數(shù)據(jù)集包含2 035 張圖片,通過人工標注制成。數(shù)據(jù)集的部分圖像如圖5所示。
Fig.5 Image display of data set圖5 數(shù)據(jù)集部分圖像展示
為了檢測本文網(wǎng)絡(luò)性能,采用綜合汽車數(shù)據(jù)集Com?prehensive Cars(CompCars)[17]驗證網(wǎng)絡(luò)準確性。該數(shù)據(jù)集由香港中文大學多媒體實驗室(MMLAB)發(fā)布,包含214 345 張汽車圖像,涵蓋兩種場景(網(wǎng)絡(luò)環(huán)境、監(jiān)視環(huán)境)和1 687 種汽車型號。本次實驗取其中300 張圖片進行測試,改進后的網(wǎng)絡(luò)準確率達90%(原VGG-16 網(wǎng)絡(luò)檢測準確率約為84%)。
本文使用模型的基礎(chǔ)框架為Faster R-CNN,分別將骨干網(wǎng)絡(luò)改為原VGG-16、ResNet-50、ZF 網(wǎng)絡(luò)以及改進后的網(wǎng)絡(luò),得到如表2 所示的實驗結(jié)果。觀察結(jié)果可知,就原網(wǎng)絡(luò)而言,相比于其他網(wǎng)絡(luò),VGG-16 網(wǎng)絡(luò)的效果更勝一籌。在引入ASPP 后,網(wǎng)絡(luò)的mAP 值有所提高。加入空洞卷積后,網(wǎng)絡(luò)感受野提高,mAP 也相應提高。在引入基于Faster R-CNN 框架的Reasoning-RCNN 后,網(wǎng)絡(luò)的mAP 值達93.86%,整體提升1.59%。由此可見,該方法能有效提升算法識別準確率。
本文方法下檢測不同類別車輛的mAP 值比較如表3所示。比較結(jié)果發(fā)現(xiàn),改進后的算法在各類別上的mAP 值均有所提升,其中,在重型卡車、消防車、出租車、家用轎車這些易混淆類別上mAP 值的提升較大。
Table 2 Comparison of different backbone networks表2 不同骨干網(wǎng)絡(luò)比較
Table 3 Comparison of mAP values of different types of vehicle表3 各類別車輛mAP值對比
本文將改進的算法與SSD、YOLOv2 以及YOLOv3 算法進行比較,在控制相同實驗參數(shù)的情況下比較mAP 值,結(jié)果如表4 所示??梢园l(fā)現(xiàn),本文方法的mAP 值高于其他算法。同為one-stage 算法,YOLO 系列算法相對于SSD 效果更好,但該算法對于小尺度目標信息的檢測效果不好,在檢測相似類型車輛時效果較差,同時對于部分遮擋的車輛無法準確檢測。改進后的Faster R-CNN 增加了對多尺度信息的提取效果,同時增加感受野,在此基礎(chǔ)上還擁有全局推理能力,這都增加了改進后的算法檢測效果。
Table 4 Comparison of the effects of different detection methods表4 不同檢測方法效果比較
本次使用400 張圖片驗證模型實用性,其中小轎車、出租車、消防車、重型卡車各50 張,吉普車、大客車、面包車、小卡車、SUV 各40 張,如表5 所示??梢钥闯觯黝悇e車輛的檢測率均在90%及以上,表明該方法具有一定實用性。
Table 5 Picture test results表5 圖片測試結(jié)果
本文提出了一種基于Faster R-CNN 的車輛識別與分類算法,該算法針對特征相似車輛檢測,通過引入空洞卷積提高感受野,引入ASPP 結(jié)構(gòu)以增強對多尺度信息的提取效果,引入Reasoning-RCNN 賦予算法推理能力,并對網(wǎng)絡(luò)進行整體優(yōu)化。該方法在測試集上mAP 可達93.86%,可見其檢測性能良好并具有一定實用性。但同時,作為一款two-stage 的算法,該算法在運行速度上尚有一定提升空間。