張子穎, 王 敏
(河海大學 計算機與信息學院, 南京 210098)
隨著科學技術的發展, 智能交通系統應運而生.智能車輛作為智能交通系統的重要組成部分, 成為了研究人員研究的熱點問題.智能車輛包括車輛自動駕駛技術和車輛目標檢測技術, 其中車輛目標檢測技術是智能車輛領域和智能交通系統的重要應用, 它在提高車輛自動駕駛技術安全性方面起著關鍵的作用.國內外研究人員對車輛目標檢測提出許多不同的算法, 這些算法主要分為機器學習和深度學習兩類.張全發等使用梯度方向直方圖(HOG)結合支持向量機(SVM)分類器進行訓練, 實現了工程車輛圖像檢測.但是該方法對于車輛邊緣的定位不太理想[1].Zhang YZ 等改進了多維Haar 特征和Adaboost 算法, 實現了級聯分類器訓練, 從而實現了可靠的車輛檢測.與傳統的算法相比,它可以有效提高車輛檢測的準確率和檢測效率[2].Qiu QJ 等利用Adaboost 分類器對車輛類別進行分類[3].上述機器學習算法, 大多都是基于人工設計的特征, 這些特征都有自己應用的局限性, 算法泛化能力和魯棒性不太理想[4], 為改善這些算法的弊端, 基于深度學習的卷積神經網絡應運而生.如今, 卷積神經網絡已廣泛應用于目標檢測.其中, 基于區域的卷積神經網絡發展非常迅速, 包括R-CNN、Fast R-CNN、Faster R-CNN、MS-CNN.R-CNN 采用Selective Search 方法得到物體候選框, 然后送入卷積神經網絡提取特征, 最后通過SVM 分類器獲得最終的檢測結果, 該方法效率低, 計算復雜.Fast R-CNN[5]采用興趣區域(ROI)池化層得到候選框, 大大提升了檢測效率.但提取候選框需要大量時間, 因此降低了整體的檢測效率.Faster R-CNN[6]設計了一個區域建議網絡(RPN)來生成區域建議框, 采用共享卷積層特性來提高速度和性能, 但它對小目標的檢測效果不太理想[7].MS-CNN[8]由提議子網和檢測子網組成, 該算法精度明顯提高, 大大節省了內存和計算量, 但它需要高設備性能的支持.
目前, 國內外研究人員對車輛目標檢測已有不錯的研究成果.曹詩雨等使用Fast R-CNN 算法對公交車和小汽車兩類圖像進行訓練和測試, 證明了測試樣本場景與視覺任務的相關度, 以及車輛形變的程度決定了車輛檢測的最終效果[9].桑軍等使用Faster R-CNN目標檢測模型與ZF、VGG16、ResNet101 3 種卷積神經網絡分別結合的策略, 驗證了該方案在BIT-Vehicle和CompCars 兩個數據集上的泛化能力[10].陳超時等提出一種新的車臉定位的方法, 該方法通過修改卷積神經網絡結構來解決車臉識別在無車牌情況下無法定位的問題, 取得良好的檢測精度和較快的實時處理效率[11].Zhang YJ 等提出使用多線程技術通過并行計算來檢測和跟蹤車輛[12].徐樂先等結合過融合數據分層法和Timsort 算法實現對停車場停車位的檢測[13].
本文主要提出一種基于增量學習的車輛目標檢測方法, 結合國內外目前的研究近況和現有的設備支持,選用Faster R-CNN 算法與VGG16[14]、ResNet101 兩種卷積神經網絡分別結合的策略, 多次測試數據集, 最后對比測試結果.實驗結果表明, 與未使用增量學習方法的車輛目標檢測方法相比, 識別精度得到了顯著提高.
對交通道路上的車輛目標分類檢測的困難在于圖像中總會存在不完整的待檢目標.監控視頻和人為拍攝圖像中的車輛在大小、姿態上都會有很多的變化.本文使用Faster R-CNN 網絡對車輛進行提取特征并檢測目標.
基于Faster R-CNN 的車輛目標檢測網絡結構主要由3 部分構成: 卷積層、RPN 層和坐標回歸層.其中卷積層用來提取圖像特征, 特征提取部分與普通CNN 網絡特征提取結構相似, 用一串卷積層和pooling 從原圖像中提取feature map.本文使用VGG16 和ResNet101分別實現車輛目標的特征提取.RPN 層是Faster R-CNN提出的全新結構, 作用是通過網絡訓練的方式從feature map 中獲取目標的大致位置, 在下一小節中, 將對RPN結構做詳細地介紹.全連接層將接受特征提取所產生的特征向量, 所有特征向量將輸入全連接層最終將結果共享, 產生兩個支路, 進入兩個不同的層中.一個層負責利用Softmax 回歸計算圖像中目標類別的概率估算值, 另一個層負責輸出用來表征每個圖像上目標類別檢測框坐標的4 個值(檢測框左上角坐標(x, y)和右下角坐標(w, h)).該網絡結構圖如圖1 所示.
區域建議網絡RPN 與傳統的Selective Search 方法的作用相似, 都是輸出一批矩形候選框, 但RPN 網絡更高效[15].RPN 的主要功能是根據特征圖和輸入圖像生成候選窗口.整個過程分為兩個步驟: (1)將特征圖上的每個特征點映射到輸入圖像的相應位置, 以輸入圖像中的位置為中心繪制一個區域建議框.(2)通過計算候選區域和原標記框之間的IoU 來獲得候選窗口的樣本, 將候選窗口的樣本和特征點用于監督訓練.回歸層用于確定候選窗口的位置和大小, 分類層用于確定候選窗口的前景和背景置信得分.具體過程如圖2 所示.

圖1 基于Faster R-CNN 的車輛目標檢測網絡結構圖

圖2 RoI 的生成過程
感興趣區域(RoI)生成過程中, 輸入的是圖像, 輸出是候選區域.如果IoU>0.7, 候選區域被視為正樣本,IoU<0.3, 候選區域被視為負樣本, 當0.3<IoU<0.7 時,候選區域視為放棄.
監督訓練過程輸入是圖像和標簽, 輸出是候選區域的置信度得分和坐標.回歸層用于微調候選區域的位置.候選區域可以通過分類層獲得置信得分, 通過回歸層和分類層獲取對象和對象的位置, 通過候選區域的置信得分和坐標來獲得候選窗口.具體過程如圖3所示.

圖3 監督訓練過程
隨著人工智能和機器學習的發展, 出現了很多機器學習算法, 這些算法大都是批量學習模式, 即假設在訓練前可一次性獲取所有訓練樣本, 學習已知樣本后,學習過程即終止.對已學習到的模型, 存在各種缺陷,若只使用同一樣本反復訓練, 機器學習到的特征有限,會限制模型的有效性.增量學習算法可以漸進地更新知識, 對機器學習增加新的樣本知識, 可修正和加強以前的知識, 使更新后的模型更完善.
在本文中, 對VOC2007 數據集中車輛目標的檢測存在兩個問題: (1)車輛目標形變較大, 小目標車輛較多, 使用VOC2007 數據集訓練所得的模型對小目標車輛的檢測效果不太理想; (2) VOC2007 數據集中圖像背景比較復雜, 機器學習不能更為準確地提取單一車輛目標的特征, 導致待檢圖像中一些截斷式車輛目標被漏檢.為解決這兩個問題, 選用了MIO-TCD 數據集作為增量數據集對原模型進行重新訓練測試, 選擇理由主要有兩個: (1)該數據集中小目標車輛較多, 可以很好地學習小目標車輛的形態特征; (2)該數據集的圖像背景較為單一, 可以更加精準地學習車輛目標的特征,減少了很多區域框內的背景干擾因素.
對道路上車輛目標的檢測存在很多問題影響檢測效果, 本文以VOC2007 數據集的檢測結果為例, 直觀分析在VOC2007 數據集上進行的車輛目標檢測效果,可以發現: (1)圖像中遠處小目標出現錯檢漏檢的情況;(2)對圖像邊緣截斷式待檢目標出現漏檢; (3)對待檢目標重疊遮蓋區域部分出現錯檢漏檢.為解決這些問題, 本文提出一種基于增量學習的車輛檢測方法, 該方法分為兩個階段, 即訓練階段和測試階段.在訓練階段,重新訓練在ImageNet 上預訓練后的初始參數的卷積神經網絡, 以獲得車輛檢測模型; 在測試階段, 將測試樣品輸入檢測模型以獲得測試結果.
為證明本文方法的有效性, 在訓練階段首先使用VOC2007 數據集訓練網絡得到車輛檢測模型A, 并使用VOC2007 數據集測試模型A, 得出測試結果; 其次,選用MIO-TCD 數據集作為增量學習的數據集, 將MIO-TCD 數據集加入到VOC2007 數據集中重新訓練網絡, 得到車輛檢測模型B, 使用原測試集加MIOTCD 數據集中分配出的測試集測試模型B; 最后, 對比模型A 和模型B 的測試結果.整個方法流程如圖4 所示.
實驗選取了Faster R-CNN+VGG16、Faster RCNN+ResNet101 對使用增量學習數據集和原數據集進行對比, 實驗環境: 操作系統為Ubuntu18.04, 訓練GPU 為2 塊1080Ti, 內存為448 GB.
實驗所用數據集包括原數據集與增量學習數據集,原數據集使用的是來自VOC2007 數據集中bus、bicycle、car、motorbike 等4 類車輛圖像, 共計3599 張帶標簽圖像; 增量學習數據集為MIO-TCD 數據集中隨機挑選出1000 張包含bus、bicycle、car、motorbike 等4 類車輛圖像, 4 類圖像平均分布, 使用labelImg 標注工具, 將1000 張車輛圖像按照VOC2007格式進行標注.
實驗首先對原數據集按照訓練集與測試集8:2 的比例隨機分配, 將訓練集輸入到網絡中通過訓練迭代得到車輛目標分類模型, 再將測試集輸入到訓練好的模型進行測試, 測試結果如圖5 所示.

圖4 基于增量學習的車輛目標檢測方法流程圖

圖5 使用模型A 測試結果示例圖
由圖5 可以看出, 使用Faster R-CNN 網絡訓練出的車輛分類檢測模型去檢測車輛目標, 檢測能力方面體現出非常優秀的效果.對背景清晰單一并且重疊遮蓋較少的待檢目標, 檢測區域置信度高達0.98 以上, 但是, 在復雜的背景下, 如背景干擾目標較多、待檢目標互相遮擋重疊、待檢目標車體大部分超出圖片區域等,此時容易出現漏檢錯檢或檢測框置信度較低的情況.
為解決這些問題, 我們將增量學習數據集按照訓練集與測試集8:2 的比例隨機分配, 再將增量學習數據集與原數據集合并, 將新的訓練集輸入到卷積神經網絡中重新訓練車輛目標分類模型, 最后將測試集輸入到新的模型進行測試.為直觀的區別使用增量學習數據集為車輛目標分類任務帶來的改進, 我們在原測試結果與新的測試結果中分別挑選出4 組相同的圖像進行對比, 對比圖如圖6.
由圖6 可以看出, 圖6(a)雖檢測到汽車遮擋截斷的左前方車輛, 但區域建議置信度只有0.946, 且對右前方截斷式的car 目標完全漏檢, 而使用增量學習數據集重新訓練并測試后, 圖6(e)不僅對左前方遮擋截斷式的car 目標提高了置信度到0.990, 并且也檢測到了右前方car 目標.同樣, 圖6(b)中, 對遠處小目標有良好的檢測效果, 但對圖片左右邊緣處的截斷式car 目標漏檢, 而圖6(f)對圖6(b)中漏檢的目標做了很好的修正.對重疊嚴重的bicycle 目標圖6(c), 區域建議框標注并不十分準確, 置信度相對較低, 且對遠處模糊的目標出現漏檢錯檢情況, 在圖6(g)中, bicycle 目標檢測框明顯變得更為準確, 置信度比原圖像的置信度要高, 對遠處目標檢測也給出了修正結果.更為明顯的圖6(d)與圖6(h)對比, 可以明顯看出使用增量學習數據集方法對重疊的待檢目標有良好的檢測效果.

圖6 對截斷式和重疊區待檢目標測試結果對比圖
在主觀評價后, 表1 中使用具體數據對實驗結果進行了客觀展示.由于召回率準確率存在單點值局限性的問題, 所以本文采用AP 值來反映檢測結果.AP 值為平均準確率, 是一個能夠反應全局性能的指標, 準確率召回率曲線下的面積即為AP 值.mAP 值為所有不同類AP 值的平均值, mAP 值越大, 檢測效果越好.

表1 實驗結果
本文提出一種增量學習和Faster R-CNN 的車輛分類識別的方法.該方法有效地利用了Faster R-CNN 算法端到端的網絡結構, 能夠快速、魯棒地檢測車輛目標.實驗結果表明, 使用Faster R-CNN 卷積神經網絡結構結合增量學習數據集創新性地訓練圖像, 能夠從圖像中提取更加全面豐富的目標特征, 使用所得車輛目標分類檢測模型測試數據集, 從主觀和客觀兩個角度來分析, 能夠明顯看出本文方法存在的優勢.然而, 我們從結果中也發現很多不足的地方, 包括: (1)對遠處的小目標仍會出現漏檢錯檢情況; (2)在昏暗背景下對目標的檢測, 給出的區域建議框置信度較低; (3)在更為復雜的背景下, 如鬧市背景目標重疊度太大、背景干擾目標較多等, 檢測效果仍需改進.因此, 在接下來的研究中, 解決上述問題是未來研究的關鍵.