王聰 張瓏
摘? 要:Mask R-CNN在目標檢測中具有很大的優勢,算法使用深度神經網絡對目標進行提取特征,具有較高的檢測準確度。但是如果直接使用Mask R-CNN檢測車輛會存在遠場景小目標車輛檢測漏檢的問題。針對這個問題文章在特征提取時使用ResNeXt-101-FPN網絡代替Resnet殘差特征金字塔網絡,提高準確率的同時減少計算量。
關鍵詞:Mask R-CNN;目標檢測;車輛檢測;特征提取
Abstract: Mask R-CNN has great advantages in target detection. The algorithm uses deep neural networks to extract features from targets, and has higher detection accuracy. However, if Mask R-CNN is used to detect vehicles directly, there will be a problem of missed detection of small target vehicles in far scenes. In order to solve this problem, this paper uses ResNeXt-101-FPN network instead of Resnet residual feature pyramid network in feature extraction, to improve accuracy and reduce calculation amount.
引言
車輛檢測是智能車輛輔助系統[1]的核心算法,車輛檢測的準確性和實時性直接影響到智能車輛輔助系統,直接涉及到車輛的安全,錯誤的車輛檢測會影響輔助系統的判斷,造成安全隱患。對于要在道路上使用的車輛檢測和跟蹤系統,實時性是必需的,Mask R-CNN具有檢測精度高、速度快、實例分割效果好的優點。但如果直接把它應用在車輛檢測上,存在小目標的車輛檢測效果不好以及漏檢的問題。本文針對這一問題對算法進行了優化,改進了算法中的特征提取網絡,提高了準確率的同時運算量也相應地減少。
1 車輛實例分割算法流程
實例分割比目標檢測更為復雜,目標檢測通常僅預測對象邊界框,而實例分割技術使得模型可預測像素級度量深度的結果。
Mask R-CNN是實例分割任務的首選網絡,同時學習語義和幾何表示,確定每個對象中每個像素的類別和空間關系,不僅對同一類別的物體區域進行分割,還對不同類的物體區域進行分割。例如:在像素級別描述物體的輪廓并標出物體的位置。Mask R-CNN除了進行分類和邊界框預測之外,還預測每個候選區域的分割掩碼。
Mask R-CNN工作的原理是采用雙線性插值法的區域候選網絡,保留小數位的像素值的計算結果,能夠讓在特征圖上計算出來的回歸框不會因為一系列操作而導致像素的移動,避免了特征圖與原始圖像出現不對應、不對齊的情況發生,能夠有效地提升檢測精度。經過區域候選網絡處理過后的特征圖就可以立即進入到全連接網絡中進行分類與回歸。Mask R-CNN作為一個在像素級別進行分割的網絡,在進行分類和回歸的時候,加入了一個并行掩膜分支,分支經過一個全連接的網絡之后,會把目標之內的像素進行相應分類,從而輸出一個覆蓋目標的可視化掩膜范圍。
Mask R-CNN在多目標下的目標檢測、目標分類以及像素級別的目標物體分割取得了良好的效果,所以本文使用Mask R-CNN進行車輛的實例分割檢測。
Mask R-CNN車輛的實例分割檢測可分為兩個部分:訓練部分和檢測部分,如圖1所示。首先車輛實例分割算法進行樣本采集、選出候選區域并在ImageNet分類中預先訓練網絡權重,Mask R-CNN[2]的神經網絡通過學習參數進行調整,直到訓練收斂到局部最優。然后對檢測模塊輸入的圖像進行車輛實例分割,輸出最后的車輛檢測結果。
2 特征提取網絡結構設計
傳統的算法[3-4]通常使用加深網絡的方法提高準確率,但此方法會使參數增加,從而增加了計算量,而且網絡也不好設計,因此本文不采用傳統的改進方法,而是在Mask R-CNN的特征提取時使用ResNeXt-101-FPN網絡代替Resnet殘差特征金字塔網絡。一個101層的ResNeXt網絡,和一個200層的ResNet網絡所得到的準確率差不多,但是計算量卻是少了一半,所以本文替換特征提取網絡。如表1所示,ResNet-101-FPN和ResNeXt-101-FPN在Mask R-CNN上進行對比可以發現使用ResNeXt-101-FPN效果更好,而且需要的參數也少,能夠在提高準確率的同時減少計算量。
由表1可知,雖然ResNeXt總的通道數量比ResNet多,但是兩者的參數數量是相似的,車輛檢測的車型不是很多,對于網絡層數要求就不是很高,所以本文沒有增加網絡層數。
3 實驗結果與算法比較
為了驗證本文提出的算法,本節對實例分割車輛檢測算法進行實驗。首先給出了實驗參數和其他相關設置,其次考慮到訓練Mask R-CNN必須有目標分割[5]的標注,最終選用Cityscapes公共數據集進行實驗。
3.1 測試
(1)實驗參數和相關設置
本文在ubuntu 16.04(x64)、python3.5、Cuda-9.0、cudnn-7.0、TensorFlow 1.10.0上進行實驗。并使用深度學習的環境下的pycharm軟件進行實驗測試。
(2)實驗數據集
數據集使用最近發布的城市道路的Cityscapes數據集,該數據集是在晴朗天氣下從多個城市收集的,它包含5000張圖像,圖像標記20類的實例和語義分割。整個圖像中的2975張用于訓練,500張用于驗證和1525張用于測試。
(3)實驗模型
采用基于ResNeXt網絡的Mask R-CNN算法進行車輛實例分割檢測實驗,通過替換一個網絡結構減少參數計算并提高了準確率。
3.2 算法比較
Mask R-CNN雖然在小目標的識別檢測方面優于常規的深度學習算法,但是在小目標的識別檢測上仍然會存在漏檢的情況,本文算法對Mask R-CNN進行了改進,使用Cityscapes的驗證集進行測試。選取一部分的圖像進行結果分析,對圖像中檢測到的車輛進行標記,并對成功檢測到的車輛分別進行統計,算法執行在GPU上達到了37 fps的速度。
表2對小目標車輛檢測結果進行了統計,第一列表示車輛的數量屬性,第二列是使用原始算法對小目標車輛的檢測,第三列是改進的算法對小目標車輛的檢測,可看出改進的算法在小目標的檢測中準確率比原始的算法提高了很多。相比于原始算法本文算法準確率從79%提高到了86%,提高了7%。
4 結束語
本文對基于Mask R-CNN的車輛實例分割模塊進行了改進,通過設計一個特征提取區域候選獲取分割算法的權重和參數及檢測目標驗證完成了車輛的實例分割檢測,然后對本文提出的車輛檢測方法進行了實驗驗證。從實驗結果的統計結果來看,與原始算法相比,本文提出的改進算法能更準確地檢測車輛,以及具有更好的小目標車輛檢測能力,在提高準確率的同時減少了計算量。
參考文獻:
[1]聶堯.車輛安全輔助駕駛技術淺析[J].交通與運輸,2008(2):146-148.
[2]K.He,G.Gkioxari,P.Dollar,R.Girshick.Maskr-cnn[J].arXiv:1703.06870,2017
[3]李婷婷.基于視覺的前方車輛識別技術研究[D].華南理工大學,2016.
[4]馬永杰,馬云婷.結合CNN多層特征和SVM的車輛識別[J].激光與光電子學進展,2019,56(14):47-53.
[5]江宛諭.基于深度學習的物體檢測分割[J].電子世界,2018(15):19-20+23.