鄒伙宗 鄧守城
摘 要:近年來(lái),隨著人工智能技術(shù)的迅猛發(fā)展,許多車企和互聯(lián)網(wǎng)企業(yè)都共同致力于研發(fā)智能化的自動(dòng)駕駛系統(tǒng)。在自動(dòng)駕駛技術(shù)中,車輛目標(biāo)檢測(cè)技術(shù)是至關(guān)重要的核心技術(shù)之一。目前,傳統(tǒng)的目標(biāo)檢測(cè)算法無(wú)法滿足實(shí)時(shí)檢測(cè)的要求,因此在自動(dòng)駕駛等實(shí)際應(yīng)用場(chǎng)景中很難進(jìn)行大規(guī)模應(yīng)用。相比之下,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法更適合此類場(chǎng)景,已經(jīng)成為該領(lǐng)域的主流算法。本文首先回顧了傳統(tǒng)目標(biāo)檢測(cè)算法,然后介紹了當(dāng)前幾種主流的兩階段車輛目標(biāo)檢測(cè)算法和單階段車輛目標(biāo)檢測(cè)算法,分析了這幾種算法的結(jié)構(gòu)和優(yōu)缺點(diǎn),最后對(duì)未來(lái)車輛目標(biāo)檢測(cè)算法的研究方向進(jìn)行了展望。
關(guān)鍵詞:深度學(xué)習(xí) 車輛目標(biāo)檢測(cè) 卷積神經(jīng)網(wǎng)絡(luò) 計(jì)算機(jī)視覺
1 引言
隨著人工智能技術(shù)的不斷發(fā)展,深度學(xué)習(xí)技術(shù)在計(jì)算機(jī)視覺領(lǐng)域中得到了廣泛的應(yīng)用。車輛目標(biāo)檢測(cè)一直是計(jì)算機(jī)視覺領(lǐng)域中一個(gè)極具挑戰(zhàn)性的問題,具有廣泛的應(yīng)用前景。傳統(tǒng)的方法往往需要手工提取特征并構(gòu)建分類器來(lái)實(shí)現(xiàn)車輛目標(biāo)檢測(cè),這種方法容易受到環(huán)境變化的影響,并需要大量的調(diào)整和優(yōu)化。近年來(lái),隨著深度學(xué)習(xí)技術(shù)的不斷發(fā)展,基于深度學(xué)習(xí)的車輛目標(biāo)檢測(cè)算法在準(zhǔn)確率和處理速度方面都取得了很大的提升,逐漸成為研究的熱點(diǎn)。圖1展示了目標(biāo)檢測(cè)算法的發(fā)展歷程。
本文旨在對(duì)基于深度學(xué)習(xí)的車輛目標(biāo)檢測(cè)算法進(jìn)行綜述,回顧了傳統(tǒng)目標(biāo)檢測(cè)算法,然后介紹了當(dāng)前幾種主流的兩階段車輛目標(biāo)檢測(cè)算法和單階段車輛目標(biāo)檢測(cè)算法,并分析了這幾種算法的結(jié)構(gòu)和優(yōu)缺點(diǎn),以期為相關(guān)研究提供參考和啟示。同時(shí),本文也將對(duì)未來(lái)的研究方向進(jìn)行展望。
2 傳統(tǒng)目標(biāo)檢測(cè)算法
傳統(tǒng)目標(biāo)檢測(cè)算法一般包含3個(gè)步驟:區(qū)域選擇,特征提取和特征分類。區(qū)域選擇是指在輸入圖像中尋找可能包含待檢測(cè)物體的區(qū)域。一種常見的區(qū)域選擇方法是使用滑動(dòng)窗口技術(shù),以不同大小和比例的窗口在圖像上滑動(dòng),對(duì)每個(gè)窗口進(jìn)行分類器評(píng)估,得到可能包含物體的區(qū)域。特征提取是指從選擇的區(qū)域中使用人工設(shè)計(jì)的特征提取方法來(lái)提取圖像中的特征。常見的人工設(shè)計(jì)特征包括SIFT[1]、HOG[2]等。這些特征提取方法可以有效地捕捉圖像中的局部紋理和形狀信息,并對(duì)目標(biāo)分類起到關(guān)鍵作用。然而,這種手動(dòng)設(shè)計(jì)特征的方式需要耗費(fèi)大量的時(shí)間和精力,限制了算法的擴(kuò)展性和泛化能力。特征分類是指對(duì)提取的特征進(jìn)行分類,判斷該區(qū)域是否包含待檢測(cè)物體,并對(duì)其進(jìn)行識(shí)別。常用的分類算法有支持向量機(jī)(SVM)[3]和AdaBoost[4]。然而,近年來(lái)深度學(xué)習(xí)技術(shù)的發(fā)展已經(jīng)開始改變這種情況,特別是卷積神經(jīng)網(wǎng)絡(luò)(CNN)的廣泛應(yīng)用使得端到端訓(xùn)練成為了可能,可以直接從原始圖像中學(xué)習(xí)特征表示,避免了手動(dòng)設(shè)計(jì)特征的過(guò)程。
3 基于深度學(xué)習(xí)的車輛目標(biāo)檢測(cè)算法
基于深度學(xué)習(xí)的車輛目標(biāo)檢測(cè)算法是指利用深度神經(jīng)網(wǎng)絡(luò)模型對(duì)道路場(chǎng)景中的汽車進(jìn)行自動(dòng)化識(shí)別和定位。該算法通過(guò)學(xué)習(xí)大量的車輛圖像數(shù)據(jù),能夠在完成目標(biāo)檢測(cè)任務(wù)的同時(shí),還具備一定的魯棒性,即能夠擁有對(duì)光照、天氣等因素變化的適應(yīng)能力。
常見的基于深度學(xué)習(xí)的車輛目標(biāo)檢測(cè)算法包括以R-CNN系列網(wǎng)絡(luò)為代表的兩階段檢測(cè)算法和以SSD和YOLO系列為代表的單階段檢測(cè)算法。這些算法都采用了卷積神經(jīng)網(wǎng)絡(luò)作為特征提取器,通過(guò)不同的網(wǎng)絡(luò)結(jié)構(gòu)和技巧來(lái)實(shí)現(xiàn)目標(biāo)檢測(cè)。與傳統(tǒng)的基于手工特征的方法相比,基于深度學(xué)習(xí)的算法具有更高的準(zhǔn)確率和更快的運(yùn)行速度,已經(jīng)被廣泛應(yīng)用于自動(dòng)駕駛、交通監(jiān)控等領(lǐng)域。
3.1 兩階段車輛目標(biāo)檢測(cè)算法
兩階段車輛目標(biāo)檢測(cè)算法是先生成候選框,再對(duì)候選框進(jìn)行分類和回歸,從而實(shí)現(xiàn)對(duì)圖像中目標(biāo)物體的檢測(cè)與定位。接下來(lái)主要介紹R-CNN、Fast R-CNN和Faster R-CNN。
3.1.1 R-CNN
R-CNN[5]是由Ross Girshick等人于2014 年提出。它是一個(gè)基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法,能夠在圖片中識(shí)別出不同類別的物體,并標(biāo)注它們的位置。
R-CNN算法主要分為三個(gè)步驟:首先,算法通過(guò)選擇性搜索(Selective Search,SS) 方法來(lái)生成一些可能包含物體的候選框。該方法基于圖像的顏色、紋理、大小和形狀等特征進(jìn)行分割,從而得到一些可能包含物體的區(qū)域。然后,針對(duì)每個(gè)候選框,算法使用卷積神經(jīng)網(wǎng)絡(luò)來(lái)提取特征。最后,采用支持向量機(jī)分類器來(lái)對(duì)每個(gè)候選框進(jìn)行分類,確定該區(qū)域內(nèi)是否存在目標(biāo)物體。同時(shí),還會(huì)使用回歸器來(lái)微調(diào)邊界框的坐標(biāo),從而更精確地定位物體。
總的來(lái)說(shuō),R-CNN是將物體檢測(cè)任務(wù)分解為候選框生成、特征提取和分類定位三個(gè)子任務(wù)。但是,它的速度較慢,因?yàn)樾枰獙?duì)每個(gè)候選框都進(jìn)行CNN計(jì)算和SVM分類,這使得其難以應(yīng)用于實(shí)時(shí)物體檢測(cè)場(chǎng)景。后續(xù)的改進(jìn)模型如Fast R-CNN、Faster R-CNN 等在 R-CNN 的基礎(chǔ)上做了一些改進(jìn), 提高了檢測(cè)速度和 準(zhǔn)確率。
3.1.2 Fast R-CNN
Ross Girshick等人對(duì)R-CNN進(jìn)行改進(jìn),提出了Fast R-CNN[6]。該算法首先是在圖像上使用選擇性搜索算法生成約兩千個(gè)候選區(qū)域,然后將整張圖像通過(guò)卷積神經(jīng)網(wǎng)絡(luò)提取特征,將SS算法生成的候選區(qū)域投影到特征圖上獲得相應(yīng)的特征矩陣,然后使用RoI Pooling對(duì)每個(gè)特征矩陣提取固定大小的特征向量,最后使用全連接層進(jìn)行分類和回歸預(yù)測(cè)。Fast R-CNN仍然需要使用選擇性搜索算法來(lái)生成候選區(qū)域,這個(gè)過(guò)程比較耗時(shí),限制了算法的速度。
3.1.3 Faster R-CNN
針對(duì) R-CNN和Fast R-CNN的不足,2015年Shaoqing Ren等人再次做出改進(jìn),提出了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)絡(luò)結(jié)構(gòu),可以在圖像上提取出具有潛在檢測(cè)目標(biāo)的候選區(qū)域。這種結(jié)構(gòu)可以與分類器共享卷積層特征,從而避免了重復(fù)計(jì)算。
Faster R-CNN 的網(wǎng)絡(luò)結(jié)構(gòu)主要由三個(gè)部分組成:卷積神經(jīng)網(wǎng)絡(luò)(CNN)、RPN網(wǎng)絡(luò)和 Fast R-CNN檢測(cè)網(wǎng)絡(luò)。首先,在卷積神經(jīng)網(wǎng)絡(luò)中對(duì)輸入圖像進(jìn)行特征提取。然后,特征圖被送入RPN網(wǎng)絡(luò),以生成包含潛在目標(biāo)的候選區(qū)域。這些候選區(qū)域會(huì)被進(jìn)一步處理,以去除不相關(guān)的區(qū)域,并將剩余的區(qū)域送入Fast R-CNN檢測(cè)網(wǎng)絡(luò)中進(jìn)行目標(biāo)分類和邊界框回歸。
總的來(lái)說(shuō),兩階段檢測(cè)算法通常檢測(cè)精度較高,但檢測(cè)速度慢。
3.2 單階段車輛目標(biāo)檢測(cè)算法
單階段車輛目標(biāo)檢測(cè)算法是將兩階段檢測(cè)算法的兩個(gè)階段合并成一個(gè)階段,在一個(gè)階段里直接完成目標(biāo)物體的定位和類別預(yù)測(cè)。接下來(lái)主要介紹SSD和YOLO系列算法。
3.2.1 SSD
單階段的SSD(Single Shot MultiBox Detector)目標(biāo)檢測(cè)網(wǎng)絡(luò)是一種基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法[8],它可以在一個(gè)前向傳遞中直接預(yù)測(cè)出圖像中所有物體的位置和類別。
SSD網(wǎng)絡(luò)由一個(gè)卷積神經(jīng)網(wǎng)絡(luò)和一個(gè)預(yù)測(cè)層組成,其中CNN負(fù)責(zé)從輸入圖像中提取特征,而預(yù)測(cè)層則負(fù)責(zé)根據(jù)這些特征預(yù)測(cè)物體的位置和類別。具體來(lái)說(shuō),SSD網(wǎng)絡(luò)首先使用一個(gè)基礎(chǔ)的卷積神經(jīng)網(wǎng)絡(luò)(如VGG-16或ResNet)來(lái)從原始圖像中提取特征。然后, 每個(gè)特征圖位置都會(huì)生成一組默認(rèn)框(default box),這些默認(rèn)框具有多種大小和長(zhǎng)寬比,可以適應(yīng)不同大小和形狀的目標(biāo)。最后,網(wǎng)絡(luò)會(huì)對(duì)每個(gè)默認(rèn)框進(jìn)行分類和回歸,以確定目標(biāo)的類別和位置。
通過(guò)這種方式,SSD網(wǎng)絡(luò)可以在一個(gè)前向傳遞中同時(shí)完成對(duì)圖像中多個(gè)物體的檢測(cè)和分類。由于它是單階段的目標(biāo)檢測(cè)算法,因此速度比兩階段的算法(如Faster R-CNN)更快。
3.2.2 YOLOv1
YOLOv1是一種基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法[9],其主要思想是將目標(biāo)檢測(cè)任務(wù)轉(zhuǎn)化為一個(gè)回歸問題,與傳統(tǒng)的目標(biāo)檢測(cè)算法不同,YOLOv1是一個(gè)端到端的模型,可以直接從原始圖像中輸出檢測(cè)結(jié)果。具體來(lái)說(shuō),YOLOv1將輸入圖像分成7×7個(gè)網(wǎng)格(grid cell),每個(gè)網(wǎng)格預(yù)測(cè)2個(gè)邊界框,并且會(huì)選擇與真實(shí)框具有最大IoU值的邊界框來(lái)負(fù)責(zé)預(yù)測(cè)該物體。此外,每個(gè)網(wǎng)格只能檢測(cè)一個(gè)物體。因此該算法的缺點(diǎn)也很明顯,那就是對(duì)小目標(biāo)檢測(cè)效果較差。
3.2.3 YOLOv2
YOLOv2算法是在YOLOv1算法的基礎(chǔ)上進(jìn)行改進(jìn)[10],YOLOv2采用了先進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)DarkNet-19,相對(duì)于第一代YOLOv1算法,在精度和速度上都有 所提升。其核心思想是將輸入圖像分成13×13的網(wǎng)格,每個(gè)網(wǎng)格預(yù)測(cè)5個(gè)邊界框,與YOLOv1不同的是,YOLOv2引入了錨框(anchor)機(jī)制,錨框的尺寸大小是使用K-means對(duì)數(shù)據(jù)標(biāo)簽進(jìn)行聚類得到的。此外,YOLOv2還使用了多尺度訓(xùn)練策略和Batch Normalization等技術(shù),進(jìn)一步提高了檢測(cè)精度。
3.2.4 YOLOv3
YOLOv3是一種端到端的目標(biāo)檢測(cè)算法[11],主要由骨干特征提取網(wǎng)絡(luò) DarkNet-53和多尺度特征融合的預(yù)測(cè)網(wǎng)絡(luò)組成。YOLOv3通過(guò)不斷堆疊殘差塊(Residual Block)來(lái)組成骨干網(wǎng)絡(luò) DarkNet-53,進(jìn)行特征提取。整體的網(wǎng)絡(luò)結(jié)構(gòu)是以FPN[12]式的特征金字塔結(jié)構(gòu)來(lái)構(gòu)建,實(shí)現(xiàn)對(duì)三種尺度特征的融合檢測(cè)。每種尺度的特征圖對(duì)應(yīng)分配三種不同大小的錨框,在三種尺度的特征圖上共設(shè)置9種不同大小的錨框來(lái)進(jìn)行檢測(cè)。YOLOv3相比較于它的前身YOLOv2,在準(zhǔn)確率和速度方面都有很大的提升。
3.2.5 YOLOv4和YOLOv5
2020年基于YOLOv3的改進(jìn)版本 YOLOv4[13]和 YOLOv5[14]先后被提出,它 們都是當(dāng)前非常流行的目標(biāo)檢測(cè)算法。
YOLOv4 相較于YOLOv3,在DarkNet-53 中引入了 CSP 模塊(來(lái)自CSPNet[15])組成其骨干特征提取網(wǎng)絡(luò)CSPDarkNet-53。在預(yù)測(cè)網(wǎng)絡(luò)部分,一方面使用SPP結(jié)構(gòu)提取多尺度特征,增強(qiáng)模型對(duì)不同大小目標(biāo)的檢測(cè)能力,另一方面利用FPN和PAN(來(lái)自PANet[16])的結(jié)合,實(shí)現(xiàn)不同分辨率特征的融合,提高目標(biāo)檢測(cè)精度。
YOLOv5的骨干網(wǎng)絡(luò)采用的是New CSP-DarkNet53。在預(yù)測(cè)網(wǎng)絡(luò)部分,一方面SPP換成了SPPF,兩者的作用是一樣的,但后者效率更高,另一方面在PAN結(jié)構(gòu)中加入了CSP模塊。需要注意的是YOLOv4中的PAN結(jié)構(gòu)沒有引入CSP模塊,YOLOv5在v6.0版本后把網(wǎng)絡(luò)第一層的Focus模塊換成了一個(gè)6×6大小的卷積層。除此之外,YOLOv4和YOLOv5都使用到了Mosaic數(shù)據(jù)增強(qiáng)來(lái)增加訓(xùn)練樣本的多樣性。
總的來(lái)說(shuō),YOLOv4和YOLOv5都是對(duì)YOLOv3的改進(jìn)和優(yōu)化,并且在速度和精度上都有所提高。目前YOLO系列算法仍處在更新改進(jìn)階段。
4 結(jié)語(yǔ)
本文主要是對(duì)車輛目標(biāo)檢測(cè)算法進(jìn)行闡述,先回顧了傳統(tǒng)目標(biāo)檢測(cè)算法,然后介紹了具有代表性的基于深度學(xué)習(xí)的兩階段和單階段車輛目標(biāo)檢測(cè)算法。在復(fù)雜的道路場(chǎng)景下對(duì)車輛目標(biāo)進(jìn)行檢測(cè),就需要發(fā)展更加高效的深度學(xué)習(xí)算法,進(jìn)一步提高車輛目標(biāo)檢測(cè)的精度和實(shí)時(shí)性。未來(lái)可以探索將智能化算法與硬件結(jié)合,進(jìn)而實(shí)現(xiàn)更加智能、更加高效的車輛目標(biāo)檢測(cè)系統(tǒng),也可以將各個(gè)領(lǐng)域的技術(shù)不斷融合,例如將攝像頭和激光雷達(dá)等多種傳感器數(shù)據(jù)進(jìn)行融合,進(jìn)一步提升車輛目標(biāo)檢測(cè)的精度和可靠性。
參考文獻(xiàn):
[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.