張子穎, 王 敏
(河海大學(xué) 計算機與信息學(xué)院, 南京 210098)
隨著科學(xué)技術(shù)的發(fā)展, 智能交通系統(tǒng)應(yīng)運而生.智能車輛作為智能交通系統(tǒng)的重要組成部分, 成為了研究人員研究的熱點問題.智能車輛包括車輛自動駕駛技術(shù)和車輛目標檢測技術(shù), 其中車輛目標檢測技術(shù)是智能車輛領(lǐng)域和智能交通系統(tǒng)的重要應(yīng)用, 它在提高車輛自動駕駛技術(shù)安全性方面起著關(guān)鍵的作用.國內(nèi)外研究人員對車輛目標檢測提出許多不同的算法, 這些算法主要分為機器學(xué)習(xí)和深度學(xué)習(xí)兩類.張全發(fā)等使用梯度方向直方圖(HOG)結(jié)合支持向量機(SVM)分類器進行訓(xùn)練, 實現(xiàn)了工程車輛圖像檢測.但是該方法對于車輛邊緣的定位不太理想[1].Zhang YZ 等改進了多維Haar 特征和Adaboost 算法, 實現(xiàn)了級聯(lián)分類器訓(xùn)練, 從而實現(xiàn)了可靠的車輛檢測.與傳統(tǒng)的算法相比,它可以有效提高車輛檢測的準確率和檢測效率[2].Qiu QJ 等利用Adaboost 分類器對車輛類別進行分類[3].上述機器學(xué)習(xí)算法, 大多都是基于人工設(shè)計的特征, 這些特征都有自己應(yīng)用的局限性, 算法泛化能力和魯棒性不太理想[4], 為改善這些算法的弊端, 基于深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)應(yīng)運而生.如今, 卷積神經(jīng)網(wǎng)絡(luò)已廣泛應(yīng)用于目標檢測.其中, 基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)發(fā)展非常迅速, 包括R-CNN、Fast R-CNN、Faster R-CNN、MS-CNN.R-CNN 采用Selective Search 方法得到物體候選框, 然后送入卷積神經(jīng)網(wǎng)絡(luò)提取特征, 最后通過SVM 分類器獲得最終的檢測結(jié)果, 該方法效率低, 計算復(fù)雜.Fast R-CNN[5]采用興趣區(qū)域(ROI)池化層得到候選框, 大大提升了檢測效率.但提取候選框需要大量時間, 因此降低了整體的檢測效率.Faster R-CNN[6]設(shè)計了一個區(qū)域建議網(wǎng)絡(luò)(RPN)來生成區(qū)域建議框, 采用共享卷積層特性來提高速度和性能, 但它對小目標的檢測效果不太理想[7].MS-CNN[8]由提議子網(wǎng)和檢測子網(wǎng)組成, 該算法精度明顯提高, 大大節(jié)省了內(nèi)存和計算量, 但它需要高設(shè)備性能的支持.
目前, 國內(nèi)外研究人員對車輛目標檢測已有不錯的研究成果.曹詩雨等使用Fast R-CNN 算法對公交車和小汽車兩類圖像進行訓(xùn)練和測試, 證明了測試樣本場景與視覺任務(wù)的相關(guān)度, 以及車輛形變的程度決定了車輛檢測的最終效果[9].桑軍等使用Faster R-CNN目標檢測模型與ZF、VGG16、ResNet101 3 種卷積神經(jīng)網(wǎng)絡(luò)分別結(jié)合的策略, 驗證了該方案在BIT-Vehicle和CompCars 兩個數(shù)據(jù)集上的泛化能力[10].陳超時等提出一種新的車臉定位的方法, 該方法通過修改卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來解決車臉識別在無車牌情況下無法定位的問題, 取得良好的檢測精度和較快的實時處理效率[11].Zhang YJ 等提出使用多線程技術(shù)通過并行計算來檢測和跟蹤車輛[12].徐樂先等結(jié)合過融合數(shù)據(jù)分層法和Timsort 算法實現(xiàn)對停車場停車位的檢測[13].
本文主要提出一種基于增量學(xué)習(xí)的車輛目標檢測方法, 結(jié)合國內(nèi)外目前的研究近況和現(xiàn)有的設(shè)備支持,選用Faster R-CNN 算法與VGG16[14]、ResNet101 兩種卷積神經(jīng)網(wǎng)絡(luò)分別結(jié)合的策略, 多次測試數(shù)據(jù)集, 最后對比測試結(jié)果.實驗結(jié)果表明, 與未使用增量學(xué)習(xí)方法的車輛目標檢測方法相比, 識別精度得到了顯著提高.
對交通道路上的車輛目標分類檢測的困難在于圖像中總會存在不完整的待檢目標.監(jiān)控視頻和人為拍攝圖像中的車輛在大小、姿態(tài)上都會有很多的變化.本文使用Faster R-CNN 網(wǎng)絡(luò)對車輛進行提取特征并檢測目標.
基于Faster R-CNN 的車輛目標檢測網(wǎng)絡(luò)結(jié)構(gòu)主要由3 部分構(gòu)成: 卷積層、RPN 層和坐標回歸層.其中卷積層用來提取圖像特征, 特征提取部分與普通CNN 網(wǎng)絡(luò)特征提取結(jié)構(gòu)相似, 用一串卷積層和pooling 從原圖像中提取feature map.本文使用VGG16 和ResNet101分別實現(xiàn)車輛目標的特征提取.RPN 層是Faster R-CNN提出的全新結(jié)構(gòu), 作用是通過網(wǎng)絡(luò)訓(xùn)練的方式從feature map 中獲取目標的大致位置, 在下一小節(jié)中, 將對RPN結(jié)構(gòu)做詳細地介紹.全連接層將接受特征提取所產(chǎn)生的特征向量, 所有特征向量將輸入全連接層最終將結(jié)果共享, 產(chǎn)生兩個支路, 進入兩個不同的層中.一個層負責(zé)利用Softmax 回歸計算圖像中目標類別的概率估算值, 另一個層負責(zé)輸出用來表征每個圖像上目標類別檢測框坐標的4 個值(檢測框左上角坐標(x, y)和右下角坐標(w, h)).該網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1 所示.
區(qū)域建議網(wǎng)絡(luò)RPN 與傳統(tǒng)的Selective Search 方法的作用相似, 都是輸出一批矩形候選框, 但RPN 網(wǎng)絡(luò)更高效[15].RPN 的主要功能是根據(jù)特征圖和輸入圖像生成候選窗口.整個過程分為兩個步驟: (1)將特征圖上的每個特征點映射到輸入圖像的相應(yīng)位置, 以輸入圖像中的位置為中心繪制一個區(qū)域建議框.(2)通過計算候選區(qū)域和原標記框之間的IoU 來獲得候選窗口的樣本, 將候選窗口的樣本和特征點用于監(jiān)督訓(xùn)練.回歸層用于確定候選窗口的位置和大小, 分類層用于確定候選窗口的前景和背景置信得分.具體過程如圖2 所示.
圖1 基于Faster R-CNN 的車輛目標檢測網(wǎng)絡(luò)結(jié)構(gòu)圖
圖2 RoI 的生成過程
感興趣區(qū)域(RoI)生成過程中, 輸入的是圖像, 輸出是候選區(qū)域.如果IoU>0.7, 候選區(qū)域被視為正樣本,IoU<0.3, 候選區(qū)域被視為負樣本, 當0.3<IoU<0.7 時,候選區(qū)域視為放棄.
監(jiān)督訓(xùn)練過程輸入是圖像和標簽, 輸出是候選區(qū)域的置信度得分和坐標.回歸層用于微調(diào)候選區(qū)域的位置.候選區(qū)域可以通過分類層獲得置信得分, 通過回歸層和分類層獲取對象和對象的位置, 通過候選區(qū)域的置信得分和坐標來獲得候選窗口.具體過程如圖3所示.
圖3 監(jiān)督訓(xùn)練過程
隨著人工智能和機器學(xué)習(xí)的發(fā)展, 出現(xiàn)了很多機器學(xué)習(xí)算法, 這些算法大都是批量學(xué)習(xí)模式, 即假設(shè)在訓(xùn)練前可一次性獲取所有訓(xùn)練樣本, 學(xué)習(xí)已知樣本后,學(xué)習(xí)過程即終止.對已學(xué)習(xí)到的模型, 存在各種缺陷,若只使用同一樣本反復(fù)訓(xùn)練, 機器學(xué)習(xí)到的特征有限,會限制模型的有效性.增量學(xué)習(xí)算法可以漸進地更新知識, 對機器學(xué)習(xí)增加新的樣本知識, 可修正和加強以前的知識, 使更新后的模型更完善.
在本文中, 對VOC2007 數(shù)據(jù)集中車輛目標的檢測存在兩個問題: (1)車輛目標形變較大, 小目標車輛較多, 使用VOC2007 數(shù)據(jù)集訓(xùn)練所得的模型對小目標車輛的檢測效果不太理想; (2) VOC2007 數(shù)據(jù)集中圖像背景比較復(fù)雜, 機器學(xué)習(xí)不能更為準確地提取單一車輛目標的特征, 導(dǎo)致待檢圖像中一些截斷式車輛目標被漏檢.為解決這兩個問題, 選用了MIO-TCD 數(shù)據(jù)集作為增量數(shù)據(jù)集對原模型進行重新訓(xùn)練測試, 選擇理由主要有兩個: (1)該數(shù)據(jù)集中小目標車輛較多, 可以很好地學(xué)習(xí)小目標車輛的形態(tài)特征; (2)該數(shù)據(jù)集的圖像背景較為單一, 可以更加精準地學(xué)習(xí)車輛目標的特征,減少了很多區(qū)域框內(nèi)的背景干擾因素.
對道路上車輛目標的檢測存在很多問題影響檢測效果, 本文以VOC2007 數(shù)據(jù)集的檢測結(jié)果為例, 直觀分析在VOC2007 數(shù)據(jù)集上進行的車輛目標檢測效果,可以發(fā)現(xiàn): (1)圖像中遠處小目標出現(xiàn)錯檢漏檢的情況;(2)對圖像邊緣截斷式待檢目標出現(xiàn)漏檢; (3)對待檢目標重疊遮蓋區(qū)域部分出現(xiàn)錯檢漏檢.為解決這些問題, 本文提出一種基于增量學(xué)習(xí)的車輛檢測方法, 該方法分為兩個階段, 即訓(xùn)練階段和測試階段.在訓(xùn)練階段,重新訓(xùn)練在ImageNet 上預(yù)訓(xùn)練后的初始參數(shù)的卷積神經(jīng)網(wǎng)絡(luò), 以獲得車輛檢測模型; 在測試階段, 將測試樣品輸入檢測模型以獲得測試結(jié)果.
為證明本文方法的有效性, 在訓(xùn)練階段首先使用VOC2007 數(shù)據(jù)集訓(xùn)練網(wǎng)絡(luò)得到車輛檢測模型A, 并使用VOC2007 數(shù)據(jù)集測試模型A, 得出測試結(jié)果; 其次,選用MIO-TCD 數(shù)據(jù)集作為增量學(xué)習(xí)的數(shù)據(jù)集, 將MIO-TCD 數(shù)據(jù)集加入到VOC2007 數(shù)據(jù)集中重新訓(xùn)練網(wǎng)絡(luò), 得到車輛檢測模型B, 使用原測試集加MIOTCD 數(shù)據(jù)集中分配出的測試集測試模型B; 最后, 對比模型A 和模型B 的測試結(jié)果.整個方法流程如圖4 所示.
實驗選取了Faster R-CNN+VGG16、Faster RCNN+ResNet101 對使用增量學(xué)習(xí)數(shù)據(jù)集和原數(shù)據(jù)集進行對比, 實驗環(huán)境: 操作系統(tǒng)為Ubuntu18.04, 訓(xùn)練GPU 為2 塊1080Ti, 內(nèi)存為448 GB.
實驗所用數(shù)據(jù)集包括原數(shù)據(jù)集與增量學(xué)習(xí)數(shù)據(jù)集,原數(shù)據(jù)集使用的是來自VOC2007 數(shù)據(jù)集中bus、bicycle、car、motorbike 等4 類車輛圖像, 共計3599 張帶標簽圖像; 增量學(xué)習(xí)數(shù)據(jù)集為MIO-TCD 數(shù)據(jù)集中隨機挑選出1000 張包含bus、bicycle、car、motorbike 等4 類車輛圖像, 4 類圖像平均分布, 使用labelImg 標注工具, 將1000 張車輛圖像按照VOC2007格式進行標注.
實驗首先對原數(shù)據(jù)集按照訓(xùn)練集與測試集8:2 的比例隨機分配, 將訓(xùn)練集輸入到網(wǎng)絡(luò)中通過訓(xùn)練迭代得到車輛目標分類模型, 再將測試集輸入到訓(xùn)練好的模型進行測試, 測試結(jié)果如圖5 所示.
圖4 基于增量學(xué)習(xí)的車輛目標檢測方法流程圖
圖5 使用模型A 測試結(jié)果示例圖
由圖5 可以看出, 使用Faster R-CNN 網(wǎng)絡(luò)訓(xùn)練出的車輛分類檢測模型去檢測車輛目標, 檢測能力方面體現(xiàn)出非常優(yōu)秀的效果.對背景清晰單一并且重疊遮蓋較少的待檢目標, 檢測區(qū)域置信度高達0.98 以上, 但是, 在復(fù)雜的背景下, 如背景干擾目標較多、待檢目標互相遮擋重疊、待檢目標車體大部分超出圖片區(qū)域等,此時容易出現(xiàn)漏檢錯檢或檢測框置信度較低的情況.
為解決這些問題, 我們將增量學(xué)習(xí)數(shù)據(jù)集按照訓(xùn)練集與測試集8:2 的比例隨機分配, 再將增量學(xué)習(xí)數(shù)據(jù)集與原數(shù)據(jù)集合并, 將新的訓(xùn)練集輸入到卷積神經(jīng)網(wǎng)絡(luò)中重新訓(xùn)練車輛目標分類模型, 最后將測試集輸入到新的模型進行測試.為直觀的區(qū)別使用增量學(xué)習(xí)數(shù)據(jù)集為車輛目標分類任務(wù)帶來的改進, 我們在原測試結(jié)果與新的測試結(jié)果中分別挑選出4 組相同的圖像進行對比, 對比圖如圖6.
由圖6 可以看出, 圖6(a)雖檢測到汽車遮擋截斷的左前方車輛, 但區(qū)域建議置信度只有0.946, 且對右前方截斷式的car 目標完全漏檢, 而使用增量學(xué)習(xí)數(shù)據(jù)集重新訓(xùn)練并測試后, 圖6(e)不僅對左前方遮擋截斷式的car 目標提高了置信度到0.990, 并且也檢測到了右前方car 目標.同樣, 圖6(b)中, 對遠處小目標有良好的檢測效果, 但對圖片左右邊緣處的截斷式car 目標漏檢, 而圖6(f)對圖6(b)中漏檢的目標做了很好的修正.對重疊嚴重的bicycle 目標圖6(c), 區(qū)域建議框標注并不十分準確, 置信度相對較低, 且對遠處模糊的目標出現(xiàn)漏檢錯檢情況, 在圖6(g)中, bicycle 目標檢測框明顯變得更為準確, 置信度比原圖像的置信度要高, 對遠處目標檢測也給出了修正結(jié)果.更為明顯的圖6(d)與圖6(h)對比, 可以明顯看出使用增量學(xué)習(xí)數(shù)據(jù)集方法對重疊的待檢目標有良好的檢測效果.
圖6 對截斷式和重疊區(qū)待檢目標測試結(jié)果對比圖
在主觀評價后, 表1 中使用具體數(shù)據(jù)對實驗結(jié)果進行了客觀展示.由于召回率準確率存在單點值局限性的問題, 所以本文采用AP 值來反映檢測結(jié)果.AP 值為平均準確率, 是一個能夠反應(yīng)全局性能的指標, 準確率召回率曲線下的面積即為AP 值.mAP 值為所有不同類AP 值的平均值, mAP 值越大, 檢測效果越好.
表1 實驗結(jié)果
本文提出一種增量學(xué)習(xí)和Faster R-CNN 的車輛分類識別的方法.該方法有效地利用了Faster R-CNN 算法端到端的網(wǎng)絡(luò)結(jié)構(gòu), 能夠快速、魯棒地檢測車輛目標.實驗結(jié)果表明, 使用Faster R-CNN 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)結(jié)合增量學(xué)習(xí)數(shù)據(jù)集創(chuàng)新性地訓(xùn)練圖像, 能夠從圖像中提取更加全面豐富的目標特征, 使用所得車輛目標分類檢測模型測試數(shù)據(jù)集, 從主觀和客觀兩個角度來分析, 能夠明顯看出本文方法存在的優(yōu)勢.然而, 我們從結(jié)果中也發(fā)現(xiàn)很多不足的地方, 包括: (1)對遠處的小目標仍會出現(xiàn)漏檢錯檢情況; (2)在昏暗背景下對目標的檢測, 給出的區(qū)域建議框置信度較低; (3)在更為復(fù)雜的背景下, 如鬧市背景目標重疊度太大、背景干擾目標較多等, 檢測效果仍需改進.因此, 在接下來的研究中, 解決上述問題是未來研究的關(guān)鍵.