鄒伙宗 鄧守城
摘 要:近年來,隨著人工智能技術(shù)的迅猛發(fā)展,許多車企和互聯(lián)網(wǎng)企業(yè)都共同致力于研發(fā)智能化的自動駕駛系統(tǒng)。在自動駕駛技術(shù)中,車輛目標檢測技術(shù)是至關重要的核心技術(shù)之一。目前,傳統(tǒng)的目標檢測算法無法滿足實時檢測的要求,因此在自動駕駛等實際應用場景中很難進行大規(guī)模應用。相比之下,基于深度學習的目標檢測算法更適合此類場景,已經(jīng)成為該領域的主流算法。本文首先回顧了傳統(tǒng)目標檢測算法,然后介紹了當前幾種主流的兩階段車輛目標檢測算法和單階段車輛目標檢測算法,分析了這幾種算法的結(jié)構(gòu)和優(yōu)缺點,最后對未來車輛目標檢測算法的研究方向進行了展望。
關鍵詞:深度學習 車輛目標檢測 卷積神經(jīng)網(wǎng)絡 計算機視覺
1 引言
隨著人工智能技術(shù)的不斷發(fā)展,深度學習技術(shù)在計算機視覺領域中得到了廣泛的應用。車輛目標檢測一直是計算機視覺領域中一個極具挑戰(zhàn)性的問題,具有廣泛的應用前景。傳統(tǒng)的方法往往需要手工提取特征并構(gòu)建分類器來實現(xiàn)車輛目標檢測,這種方法容易受到環(huán)境變化的影響,并需要大量的調(diào)整和優(yōu)化。近年來,隨著深度學習技術(shù)的不斷發(fā)展,基于深度學習的車輛目標檢測算法在準確率和處理速度方面都取得了很大的提升,逐漸成為研究的熱點。圖1展示了目標檢測算法的發(fā)展歷程。
本文旨在對基于深度學習的車輛目標檢測算法進行綜述,回顧了傳統(tǒng)目標檢測算法,然后介紹了當前幾種主流的兩階段車輛目標檢測算法和單階段車輛目標檢測算法,并分析了這幾種算法的結(jié)構(gòu)和優(yōu)缺點,以期為相關研究提供參考和啟示。同時,本文也將對未來的研究方向進行展望。
2 傳統(tǒng)目標檢測算法
傳統(tǒng)目標檢測算法一般包含3個步驟:區(qū)域選擇,特征提取和特征分類。區(qū)域選擇是指在輸入圖像中尋找可能包含待檢測物體的區(qū)域。一種常見的區(qū)域選擇方法是使用滑動窗口技術(shù),以不同大小和比例的窗口在圖像上滑動,對每個窗口進行分類器評估,得到可能包含物體的區(qū)域。特征提取是指從選擇的區(qū)域中使用人工設計的特征提取方法來提取圖像中的特征。常見的人工設計特征包括SIFT[1]、HOG[2]等。這些特征提取方法可以有效地捕捉圖像中的局部紋理和形狀信息,并對目標分類起到關鍵作用。然而,這種手動設計特征的方式需要耗費大量的時間和精力,限制了算法的擴展性和泛化能力。特征分類是指對提取的特征進行分類,判斷該區(qū)域是否包含待檢測物體,并對其進行識別。常用的分類算法有支持向量機(SVM)[3]和AdaBoost[4]。然而,近年來深度學習技術(shù)的發(fā)展已經(jīng)開始改變這種情況,特別是卷積神經(jīng)網(wǎng)絡(CNN)的廣泛應用使得端到端訓練成為了可能,可以直接從原始圖像中學習特征表示,避免了手動設計特征的過程。
3 基于深度學習的車輛目標檢測算法
基于深度學習的車輛目標檢測算法是指利用深度神經(jīng)網(wǎng)絡模型對道路場景中的汽車進行自動化識別和定位。該算法通過學習大量的車輛圖像數(shù)據(jù),能夠在完成目標檢測任務的同時,還具備一定的魯棒性,即能夠擁有對光照、天氣等因素變化的適應能力。
常見的基于深度學習的車輛目標檢測算法包括以R-CNN系列網(wǎng)絡為代表的兩階段檢測算法和以SSD和YOLO系列為代表的單階段檢測算法。這些算法都采用了卷積神經(jīng)網(wǎng)絡作為特征提取器,通過不同的網(wǎng)絡結(jié)構(gòu)和技巧來實現(xiàn)目標檢測。與傳統(tǒng)的基于手工特征的方法相比,基于深度學習的算法具有更高的準確率和更快的運行速度,已經(jīng)被廣泛應用于自動駕駛、交通監(jiān)控等領域。
3.1 兩階段車輛目標檢測算法
兩階段車輛目標檢測算法是先生成候選框,再對候選框進行分類和回歸,從而實現(xiàn)對圖像中目標物體的檢測與定位。接下來主要介紹R-CNN、Fast R-CNN和Faster R-CNN。
3.1.1 R-CNN
R-CNN[5]是由Ross Girshick等人于2014 年提出。它是一個基于深度學習的目標檢測算法,能夠在圖片中識別出不同類別的物體,并標注它們的位置。
R-CNN算法主要分為三個步驟:首先,算法通過選擇性搜索(Selective Search,SS) 方法來生成一些可能包含物體的候選框。該方法基于圖像的顏色、紋理、大小和形狀等特征進行分割,從而得到一些可能包含物體的區(qū)域。然后,針對每個候選框,算法使用卷積神經(jīng)網(wǎng)絡來提取特征。最后,采用支持向量機分類器來對每個候選框進行分類,確定該區(qū)域內(nèi)是否存在目標物體。同時,還會使用回歸器來微調(diào)邊界框的坐標,從而更精確地定位物體。
總的來說,R-CNN是將物體檢測任務分解為候選框生成、特征提取和分類定位三個子任務。但是,它的速度較慢,因為需要對每個候選框都進行CNN計算和SVM分類,這使得其難以應用于實時物體檢測場景。后續(xù)的改進模型如Fast R-CNN、Faster R-CNN 等在 R-CNN 的基礎上做了一些改進, 提高了檢測速度和 準確率。
3.1.2 Fast R-CNN
Ross Girshick等人對R-CNN進行改進,提出了Fast R-CNN[6]。該算法首先是在圖像上使用選擇性搜索算法生成約兩千個候選區(qū)域,然后將整張圖像通過卷積神經(jīng)網(wǎng)絡提取特征,將SS算法生成的候選區(qū)域投影到特征圖上獲得相應的特征矩陣,然后使用RoI Pooling對每個特征矩陣提取固定大小的特征向量,最后使用全連接層進行分類和回歸預測。Fast R-CNN仍然需要使用選擇性搜索算法來生成候選區(qū)域,這個過程比較耗時,限制了算法的速度。
3.1.3 Faster R-CNN
針對 R-CNN和Fast R-CNN的不足,2015年Shaoqing Ren等人再次做出改進,提出了Faster R-CNN 算法[7]。它是R-CNN系列算法中速度最快的一種。與R-CNN、Fast R-CNN相比,F(xiàn)aster R-CNN引入了一種名為Region Proposal Network(RPN)的新型神經(jīng)網(wǎng)絡結(jié)構(gòu),可以在圖像上提取出具有潛在檢測目標的候選區(qū)域。這種結(jié)構(gòu)可以與分類器共享卷積層特征,從而避免了重復計算。
Faster R-CNN 的網(wǎng)絡結(jié)構(gòu)主要由三個部分組成:卷積神經(jīng)網(wǎng)絡(CNN)、RPN網(wǎng)絡和 Fast R-CNN檢測網(wǎng)絡。首先,在卷積神經(jīng)網(wǎng)絡中對輸入圖像進行特征提取。然后,特征圖被送入RPN網(wǎng)絡,以生成包含潛在目標的候選區(qū)域。這些候選區(qū)域會被進一步處理,以去除不相關的區(qū)域,并將剩余的區(qū)域送入Fast R-CNN檢測網(wǎng)絡中進行目標分類和邊界框回歸。
總的來說,兩階段檢測算法通常檢測精度較高,但檢測速度慢。
3.2 單階段車輛目標檢測算法
單階段車輛目標檢測算法是將兩階段檢測算法的兩個階段合并成一個階段,在一個階段里直接完成目標物體的定位和類別預測。接下來主要介紹SSD和YOLO系列算法。
3.2.1 SSD
單階段的SSD(Single Shot MultiBox Detector)目標檢測網(wǎng)絡是一種基于深度學習的目標檢測算法[8],它可以在一個前向傳遞中直接預測出圖像中所有物體的位置和類別。
SSD網(wǎng)絡由一個卷積神經(jīng)網(wǎng)絡和一個預測層組成,其中CNN負責從輸入圖像中提取特征,而預測層則負責根據(jù)這些特征預測物體的位置和類別。具體來說,SSD網(wǎng)絡首先使用一個基礎的卷積神經(jīng)網(wǎng)絡(如VGG-16或ResNet)來從原始圖像中提取特征。然后, 每個特征圖位置都會生成一組默認框(default box),這些默認框具有多種大小和長寬比,可以適應不同大小和形狀的目標。最后,網(wǎng)絡會對每個默認框進行分類和回歸,以確定目標的類別和位置。
通過這種方式,SSD網(wǎng)絡可以在一個前向傳遞中同時完成對圖像中多個物體的檢測和分類。由于它是單階段的目標檢測算法,因此速度比兩階段的算法(如Faster R-CNN)更快。
3.2.2 YOLOv1
YOLOv1是一種基于卷積神經(jīng)網(wǎng)絡的目標檢測算法[9],其主要思想是將目標檢測任務轉(zhuǎn)化為一個回歸問題,與傳統(tǒng)的目標檢測算法不同,YOLOv1是一個端到端的模型,可以直接從原始圖像中輸出檢測結(jié)果。具體來說,YOLOv1將輸入圖像分成7×7個網(wǎng)格(grid cell),每個網(wǎng)格預測2個邊界框,并且會選擇與真實框具有最大IoU值的邊界框來負責預測該物體。此外,每個網(wǎng)格只能檢測一個物體。因此該算法的缺點也很明顯,那就是對小目標檢測效果較差。
3.2.3 YOLOv2
YOLOv2算法是在YOLOv1算法的基礎上進行改進[10],YOLOv2采用了先進的網(wǎng)絡結(jié)構(gòu)DarkNet-19,相對于第一代YOLOv1算法,在精度和速度上都有 所提升。其核心思想是將輸入圖像分成13×13的網(wǎng)格,每個網(wǎng)格預測5個邊界框,與YOLOv1不同的是,YOLOv2引入了錨框(anchor)機制,錨框的尺寸大小是使用K-means對數(shù)據(jù)標簽進行聚類得到的。此外,YOLOv2還使用了多尺度訓練策略和Batch Normalization等技術(shù),進一步提高了檢測精度。
3.2.4 YOLOv3
YOLOv3是一種端到端的目標檢測算法[11],主要由骨干特征提取網(wǎng)絡 DarkNet-53和多尺度特征融合的預測網(wǎng)絡組成。YOLOv3通過不斷堆疊殘差塊(Residual Block)來組成骨干網(wǎng)絡 DarkNet-53,進行特征提取。整體的網(wǎng)絡結(jié)構(gòu)是以FPN[12]式的特征金字塔結(jié)構(gòu)來構(gòu)建,實現(xiàn)對三種尺度特征的融合檢測。每種尺度的特征圖對應分配三種不同大小的錨框,在三種尺度的特征圖上共設置9種不同大小的錨框來進行檢測。YOLOv3相比較于它的前身YOLOv2,在準確率和速度方面都有很大的提升。
3.2.5 YOLOv4和YOLOv5
2020年基于YOLOv3的改進版本 YOLOv4[13]和 YOLOv5[14]先后被提出,它 們都是當前非常流行的目標檢測算法。
YOLOv4 相較于YOLOv3,在DarkNet-53 中引入了 CSP 模塊(來自CSPNet[15])組成其骨干特征提取網(wǎng)絡CSPDarkNet-53。在預測網(wǎng)絡部分,一方面使用SPP結(jié)構(gòu)提取多尺度特征,增強模型對不同大小目標的檢測能力,另一方面利用FPN和PAN(來自PANet[16])的結(jié)合,實現(xiàn)不同分辨率特征的融合,提高目標檢測精度。
YOLOv5的骨干網(wǎng)絡采用的是New CSP-DarkNet53。在預測網(wǎng)絡部分,一方面SPP換成了SPPF,兩者的作用是一樣的,但后者效率更高,另一方面在PAN結(jié)構(gòu)中加入了CSP模塊。需要注意的是YOLOv4中的PAN結(jié)構(gòu)沒有引入CSP模塊,YOLOv5在v6.0版本后把網(wǎng)絡第一層的Focus模塊換成了一個6×6大小的卷積層。除此之外,YOLOv4和YOLOv5都使用到了Mosaic數(shù)據(jù)增強來增加訓練樣本的多樣性。
總的來說,YOLOv4和YOLOv5都是對YOLOv3的改進和優(yōu)化,并且在速度和精度上都有所提高。目前YOLO系列算法仍處在更新改進階段。
4 結(jié)語
本文主要是對車輛目標檢測算法進行闡述,先回顧了傳統(tǒng)目標檢測算法,然后介紹了具有代表性的基于深度學習的兩階段和單階段車輛目標檢測算法。在復雜的道路場景下對車輛目標進行檢測,就需要發(fā)展更加高效的深度學習算法,進一步提高車輛目標檢測的精度和實時性。未來可以探索將智能化算法與硬件結(jié)合,進而實現(xiàn)更加智能、更加高效的車輛目標檢測系統(tǒng),也可以將各個領域的技術(shù)不斷融合,例如將攝像頭和激光雷達等多種傳感器數(shù)據(jù)進行融合,進一步提升車輛目標檢測的精度和可靠性。
參考文獻:
[1]Lowe D G.Object recognition from local scale-invariant features[C]//1999 the Proceedings of the Seventh IEEE International Conference on Computer Vision.IEEE,1999,2:1150-1157.
[2]Dalal N,Triggs B.Histograms of oriented gradients for human detection[C]//2005 IEEE Conference on Computer Vision and Pattern Recognition (CVPR),June 20-25,2005,San Diego,CA,USA.IEEE,2005,1:886-893.
[3]Cortes C,Vapnik V. Support-vector? ?networks[J].Machine? ?Learning,1995,20(3):273-297.
[4]Yoav Freund,Schapire R,Abe N.A short introduction to boosting[J].Joumal-Japaneses Society For Artificial Intelligence,1999,14(5):771-780.
[5]Girshick R,Donahue J,et al.Rich feature hierarchies for accurate object detection and semantic segmentation [C].Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.IEEE,2014:580-58
[6]Girshick R.Fast R-CNN[C]//2015 Proceedings of the International Conference on Computer Vision (ICCV),December 7-13,2015,Santiago,Chile.IEEE,2015:1440-1448.
[7]Ren S,He K,Girshick R,et al.Faster R-CNN:towards real-time object detection with region proposal networks[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(6):1137-1149.
[8]Liu W,Anguelov D,Erhan D,et al.SSD:single shot multibox detector[M]//Leibe B,Matas? J,Sebe? N,et? al. Computer Vision-ECCV? 2016. Lecture Notes? in Computer Science.Cham:Springer,2016,9905:21-37.
[9]Redmon J,Divvala S,Girshick R,et al.You only look once:unified,real-time object? detection[C]//2016? IEEE? Conference? on? Computer Vision? and? Pattern Recognition (CVPR),June 27-30,2016,Las Vegas,NV,USA.IEEE,2016:779-788.
[10]Redmon? J,F(xiàn)arhadi? A. YOLO9000:better,faster,stronger[C]//2017? IEEE Conference on Computer Vision and Pattern Recognition (CVPR),July 21-26,2017,Honolulu,HI,USA.IEEE,2017:6517-6525.
[11]Redmon J,F(xiàn)arhadi A.YOLOv3:an incremental improvement[J/OL].(2018-04-08)[ 2020-11-20].https://arxiv.org/abs/1804.02767.
[12]Lin? T Y,Dollár? P,Girshick? R,et? al. Feature? pyramid? networks? for? object detection[C].Proceedings of the IEEE conference on computer vision and pattern recognition,2017:2117-2125.
[13]Bochkovskiy A,Wang? C Y.YOLOv4:optimal? speed? and? accuracy? of object detection[J/OL].(2020-04-24)[2020-11-20].https://arxiv.org/abs/2004.10934.[14]? ? ? https://github.com/ultralytics/yolov5.
[15]Wang C Y,Liao H,Wu Y H,et al.CSPNet:a new backbone that can enhance learning capability of CNN[C]//2020 IEEE Conference on Computer Vision and Pattern Recognition (CVPR),June 16-18,2020,Virtual Site.IEEE,2020:6576-6584.
[16]Chen Y,Wang Y,Zhang Y,et al.PANet:a context based predicate association network for scene graph generation[C]//2019 IEEE International Conference on Multimedia and Expo (ICME).IEEE,July 8-12,2020,Shanghai.IEEE,2020:1535-1543.