(聊城大學計算機學院,山東聊城 252000)
目標檢測技術是計算機視覺領域的核心問題之一,該技術在追蹤車輛,以及輔助駕駛等領域起著重要作用。那么如何快速高效準確的實現對車輛的目標檢測成為目前的主要問題。
目標檢測算法主要包括傳統方法和深度學習方法,其中傳統方法由不同尺度和寬度的區域選擇,特征提取和目標分類3部分組成。文獻[1]采用HOG算法進行特征提取,將卷積神經網絡多層的特征與HOG特征進行融合,對卷積核采用相關系數法優化,使得檢測時間縮短并且檢測精確率也有將大的提高;文獻[2]設計了一種基于級聯DPM模型的圖像視覺目標識別改進算法,不僅有效優化了目標檢測實時能力,也進一步改進了目標識別的準確性。傳統目標檢測方法存在的最大問題就是時間復雜度高、魯棒性低、準確度和實時性差等缺點。而深度學習的目標檢測算法則不同,深度學習的目標檢測算法主要分2類,雙階段目標檢測和單階段目標檢測。其中,雙階段目標檢測算法主要分為2個階段,提取候選區域和對候選區域中的目標進行檢測。該類算法的典型代表是Faster R-CNN。而單階段目標檢測算法由于不需要提取候選區域,輸入圖像就能得到檢測結果。因此,該類算法相比雙階段目標檢測算法速度上有明顯提升,但是精度有所下降。該類算法主要代表有SSD、YOLOv3等。已有學者對上述算法進行了改進并應用在了各個領域,如:文獻[3]利用改進的Faster R-CNN提高了遠距離小目標的低層信息的特征提取和表達能力,不僅保留了原本該算法對大目標和中等目標的檢測優勢還克服了本身對小目標物體檢測不精確的缺點;文獻[4]采用改進的SSD算法,利用對圖像第Conv4-3層特征映射圖進行超分辨率重建,使得該算法檢測重疊目標物體以及小物體時檢測精度大大提高;文獻[5]采用改良的YOLOv3算法通過改進其骨干Darknet-53網絡,不僅小幅提高了檢測精度還大大增快了檢測速度。與傳統方法相比,深度學習主要是數據驅動進行特征提取,根據大量樣本的學習能夠得到深層的、數據集特定的特征表示,其對數據集的表達更高效和準確,所提取的抽象特征魯棒性更強,泛化能力更好。但在該過程中可能會出現顯著特征不突出,從而造成泛而不優的情況。
本文為測試不同深度學習目標檢測算法在車輛目標檢測中的性能,選取Faster R-CCN、SSD和YOLOv3 3種算法進行車輛目標檢測實驗,在公開的車輛數據集上進行測試,并對實驗結果進行對比分析。
Faster R-CNN是一類基于分類的目標檢測算法。它采用VGG16為基礎特征提取網絡,并添加了卷積層、池化層等結構,再經過RPN網絡生成更加準確的候選區域,最后采用ROI池化,將特征圖和RPN網絡的輸出結果進行判決。該算法是基于區域建議的目標檢測算法,準確率較高,但速度不快。
SSD是一種單階段目標檢測算法,它的主網絡結構是VGG16,用卷積層替換最后2個全連接層,然后添加4個卷積層來構建網絡結構,采用了YOLO算法中的回歸思想,利用多尺度特征圖進行分類和位置回歸。
2016年YOLO算法由Redmon等提出,該算法是基于回歸的目標檢測算法;2017年改進后的YOLOv2誕生;緊接著在2018年提出了由YOLOv2改進后的YOLOv3。YOLOv3相較于YOLOv2有著較大的性能提升,它使用Darknet-53作為基礎網絡,并使用了多尺度預測方法,提高了檢測的精確度。
本文所用數據集為車輛檢測數據集,數據集中的圖片有2000張,主要包括轎車,卡車和公交車等。
實驗在Intel Xeon(R) CPU E5-2699、64G內存、Windows10系統下搭建的Pytorch環境下進行,顯卡為Geforce GTX1080TI。
在本次實驗中,我們使用mAP(Mean average precision)值和FPS(Frames per second)值來評估算法的性能。其中mAP值是所有類別的AP平均值,該值在目標檢測算法中主要用來衡量算法精確度;FPS值即是每秒的幀率,該值用來評估目標檢測的速度。分別利用Faster R-CNN、SSD和YOLOv3 3種算法在本文車輛數據集上進行實驗,實驗結果如表1所示。

表1 不同算法性能對比
從表1可以看出:3種算法中SSD的FPS值最大,為28;其次為YOLOv3,為22;Faster R-CNN最小,為13。對于mAP值的比較:Faster R-CNN的mAP值最大,為0.853;SSD其次,為0.831;YOLOv3最小,為0.531。因此可以得出結論:在檢測速度方面,SSD算法最快,其次是YOLOv3算法,而Faster R-CNN的速度在三者中是最慢的。在檢測精度方面Faster R-CNN的精度值最高,SSD算法排在第二,YOLOv3的精度最低。在表中不難看出SSD算法的綜合性能都要優于其他兩種算法,Faster R-CNN算法雖然在速度方面不占優勢,但是在檢測進度方面要優于其余兩種算法。在日常應用中,應根據不同的情況不同的要求選擇合適的算法。
目標檢測是計算機視覺中的一個重要領域,本文為了測試不同深度學習算法在車輛目標檢測中的應用效果,選取了3種目前應用較多的目標檢測算法,主要有Faster R-CNN、SSD和YOLOv3,在本文車輛數據集上進行了實驗,并對結果進行了分析,其中,精度最高的是Faster R-CNN,mAP為0.853,但是由于其是雙階段檢測算法,需要先選取候選區域,因此速度較慢,FPS為13;YOLOv3精度最低,但是速度有所提升;而SSD算法的精度與Faster R-CNN相當,mAP值為0.831,而且它擁有最快的速度,FPS達到了28。由于本文實驗數據集較小,實驗結果可能還存在一定的誤差,后續還應繼續擴充數據集,為車輛目標檢測提供更好的數據基礎。