楊飛帆 李軍
(重慶交通大學(xué),重慶 400047)
目標檢測是計算機視覺領(lǐng)域的重要任務(wù)之一,主要處理和檢測視覺上特定類(如人、動物或標志等)在數(shù)字圖像上的類別和位置分布情況[1]。目標檢測通過建立有效的計算機應(yīng)用模型提供計算機視覺所需要的最基本信息,即何目標在何處。其通常分為目標識別與目標定位,目標識別即特征提取與分類,目標定位則進行邊界框回歸。作為圖像分割、圖像識別、目標跟蹤等計算機視覺任務(wù)的基礎(chǔ),目標檢測算法的進步對計算機視覺發(fā)展有著重要的意義。
近年來,隨著深度學(xué)習的不斷發(fā)展,基于卷積神經(jīng)網(wǎng)絡(luò)的兩階段(Two-Stage)和一階段(One-Stage)算法研究取得了較大進展。兩階段算法在數(shù)據(jù)特征提取后先生成區(qū)域提?。≧egion Proposal)網(wǎng)絡(luò),再進行樣本的分類與定位回歸,代表性算法有區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Region based Convolutional Neural Network,R-CNN)[2]、快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Fast Region based Convolutional Neural Network,F(xiàn)ast R-CNN)[3]、更快的區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Faster Region based Convolutional Neural Network,F(xiàn)aster RCNN)[4];一階段算法則直接在網(wǎng)絡(luò)中提取特征進行分類與回歸,大幅提升了目標檢測的效率,更容易滿足實時檢測的要求[5],代表性算法包括單步多框目標檢測(Single Shot MultiBox Detector,SSD)[6]和YOLO(You Only Look Once)系列算法。
作為一階段算法的開山之作,YOLOv1[7]創(chuàng)造性地將檢測問題直接作為統(tǒng)一的端到端回歸問題,使其相較于同時期的R-CNN算法有更快的檢測速度,此后,YOLOv2~YOLOv8 算法不斷進行優(yōu)化,為一階段算法的實際應(yīng)用提供了重要理論支撐,同時為各領(lǐng)域的深入研究提供了性能卓越的檢測方法。
Zou 等[1]從里程碑式檢測器、數(shù)據(jù)集、度量標準和主要技術(shù)進展4個方面綜述了目標檢測領(lǐng)域近20年(1990~2019 年)的發(fā)展成果,并深入分析了目標檢測算法的應(yīng)用前景;Jiang 等[8]梳理了YOLO 系列算法(YOLOv1~YOLOv5)的發(fā)展歷程,總結(jié)了一些目標識別與特征選擇方式。本文圍繞YOLO 系列算法(YOLOv1~YOLOv8)的研究進程、各研究階段的主要成果及應(yīng)用于自動駕駛領(lǐng)域的改進YOLO 檢測算法進行綜述,同時對用于自動駕駛領(lǐng)域目標檢測的算法性能提升方式進行總結(jié),并展望其發(fā)展趨勢。
YOLO 算法只需要瀏覽一次便可以識別出圖中物體的準確位置和類別。短短數(shù)年間,YOLO 系列算法已誕生了多個版本,2022年問世的YOLOv7[9]在5~160 幀/s 范圍內(nèi),檢測速度和精度遠超目前已知的其他檢測器,2023 年,具備更好兼容性能、可擴展的YOLOv8 算法的源代碼發(fā)布。YOLO 系列主流算法的發(fā)展進程如圖1所示。
圖1 YOLO系列算法發(fā)展時間線
YOLOv1 主干網(wǎng)絡(luò)類似于GoogleNet[10],采用卷積層(Conv.Layer)提取特征,最大池化層(Maxpool Layer)進行空間降采樣,并由連接層(Coon.Layer)輸出預(yù)測值,算法將輸入圖片劃分為7×7 個柵格,每個柵格形成2 個預(yù)測框,同時預(yù)測20 個類別(class)概率,每個預(yù)測框包含5 個特征的預(yù)測結(jié)果(x,y,w,h,c),其中(x,y)為預(yù)測框相對于柵格的位置,(w,h)為預(yù)測框相對于圖片的寬和高比例,c為置信度,表示預(yù)測框內(nèi)存在被檢物體的概率及預(yù)測框的位置準確度。將預(yù)測到的類別概率與預(yù)測框的置信度相乘,即可獲得每個預(yù)測框中各類別的概率,以概率最高的結(jié)果作為預(yù)測結(jié)果輸出,通過非極大值抑制(Non-Maximum Suppression,NMS)得到預(yù)測結(jié)果。網(wǎng)格參數(shù)信息如圖2 所示。
圖2 YOLOv1網(wǎng)絡(luò)結(jié)構(gòu)[7]
監(jiān)督學(xué)習訓(xùn)練通過梯度下降和反向傳播迭代進行神經(jīng)元權(quán)重微調(diào)使損失函數(shù)最小化,算法的目的是使預(yù)測結(jié)果盡可能與人工標注的標準框(Ground Truth)擬合,最小化損失函數(shù)。YOLOv1 的損失函數(shù)考慮了預(yù)測框坐標預(yù)測損失、預(yù)測框置信度預(yù)測損失以及類別預(yù)測損失。
預(yù)測框坐標損失(Bounding Box Coordinate Loss)為:
目標置信度損失(Object Confidence Loss)為:
類別預(yù)測損失(Class Prediction Loss)為:
式中,為第i個柵格的第j個預(yù)測框,若負責預(yù)測目標則取1,否則取0;為第i個柵格中的第j個預(yù)測框,若不負責預(yù)測目標則取1,否則取0;
為第i個柵格,若包含目標則取1,否則取0;S為柵格數(shù)量;B為預(yù)測框數(shù)量;xi、yi、wi、hi、Ci分別為預(yù)測框位置、寬高比例以及置信度的預(yù)測值;分別為預(yù)測框位置、寬高比例以及置信度的標簽值分別為第i個柵格類別的預(yù)測值與標簽值;λcoord、λnoobj為權(quán)重;class 表示類別。
YOLOv1 推翻了兩階段算法一直采用的區(qū)域提取思路,直接將整張圖片輸入神經(jīng)網(wǎng)絡(luò),經(jīng)過卷積、池化、全連接層得到一個輸出張量,將目標檢測問題轉(zhuǎn)變?yōu)楹唵位貧w問題。YOLO 在PASCAL VOC 2007(Pattern Analysis, Statistical Modeling, and Computational Learning Visual Object Classes 2007)數(shù)據(jù)集上測試得到其平均精度均值(Mean Average Precision,mAP)達63.4%[7],擁有極快的檢測速度和較好的通用特征提取能力,但同時存在只支持固定尺寸的輸入,對較近、較小或群體目標檢測效果較差和定位并不精確等問題。
YOLOv2[11]在YOLOv1 基礎(chǔ)上,結(jié)合視覺幾何組(Visual Geometry Group,VGG)網(wǎng)絡(luò)構(gòu)建出新的DarkNet-19 網(wǎng)絡(luò),新網(wǎng)絡(luò)采用1×1 的卷積進行通道降維、3×3 的卷積進行特征提取、5 層最大池化層進行5 次下采樣。DarkNet-19 網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。
表1 DarkNet-19網(wǎng)絡(luò)結(jié)構(gòu)[11]
YOLOv2 引入Faster R-CNN 中先驗框(Anchor Box)思想,通過先驗框同時預(yù)測類別和位置,一個柵格內(nèi)的5 個先驗框可以分別預(yù)測5 種類別,預(yù)測邊界框的數(shù)量也由7×7×2 提高到13×13×5,提高了不同尺寸、不同長寬比物體預(yù)測的準確率。
除以上改進外,YOLOv2 通過采用批歸一化(Batch Normalization,BN)、高分辨率圖像分類器(High Resolution Classifier)、多尺度訓(xùn)練(Multi-Scale Training)等方式對YOLO 算法進行了全方位改進,支持少樣本對象檢測的同時有效提高了召回率和定位準確率。不足之處在于,沒有進行多尺度特征的結(jié)合預(yù)測,傳遞模塊(Pass-Through Module)的使用在提升細粒度特征的同時也對特征的空間分布產(chǎn)生了一定影響,以及對小目標的檢測能力沒有明顯提升。
YOLOv3[12]的主干網(wǎng)絡(luò)DarkNet-53 包含卷積層(Convolutional Layer)、殘差層(Residual Layer)、特征融合層(Feature Fusion Layer),網(wǎng)絡(luò)層數(shù)的加深提高了檢測精度,大量殘差網(wǎng)絡(luò)模塊的引入減少了由網(wǎng)絡(luò)層數(shù)加深引起的梯度下降問題,金字塔池化模塊的引入可以實現(xiàn)多尺寸的輸入和統(tǒng)一尺寸的輸出。卷積層與殘差層結(jié)構(gòu)對比如圖3所示。
圖3 卷積層與殘差層對比
借鑒SSD 的思想,YOLOv3 引入了多尺度特征預(yù)測,采用32 倍下采樣(13×13 大小特征圖)、16 倍下采樣(26×26 大小特征圖)、8 倍下采樣(52×52 大小特征圖)3 個不同尺寸分別進行大、中、小目標檢測,構(gòu)造出9個先驗框,有效提高了尺度特征差異較大情況下的目標檢測準確性,尤其是在對小目標的檢測能力上產(chǎn)生了質(zhì)的飛躍。在標簽分配策略方面,YOLOv3 采用多標簽多分類的邏輯(Logistic)層實現(xiàn)復(fù)雜環(huán)境下多類別物體重疊時良好的識別效果,多個二分類任務(wù)的劃分使其支持一個物體的多個標簽輸出。
相較于YOLOv1,YOLOv3 的損失函數(shù)在置信度損失和類別損失方面進行了優(yōu)化,采用交叉熵計算縮短收斂時間,其損失函數(shù)為:
YOLOv3 的主要改進體現(xiàn)在主干網(wǎng)絡(luò)、多尺度特征融合以及標簽分配策略方面,雖然模型的召回率相對較低,但是極大提升了整體檢測精度,可以在不提高輸入圖片分辨率的情況下實現(xiàn)對小目標的精確檢測,使YOLOv3 成為一階段算法中的里程碑式算法,在工業(yè)領(lǐng)域得到廣泛應(yīng)用。
YOLOv4[13]的主干網(wǎng)絡(luò)是在DarkNet-53 基礎(chǔ)上借鑒Wang 等[14]提出的跨階段局部網(wǎng)絡(luò)(Cross Stage Partial Network,CSPNet)升級得到的CSP-DarkNet-53,可以有效增強CNN 的學(xué)習能力、降低模型計算的參數(shù)量和內(nèi)存成本,激活函數(shù)采用Mish[15]替換修正線性單元(Rectified Linear Unit,ReLU),在保證準確度的同時平滑梯度,采用DropBlock[16]正則化方式提高網(wǎng)絡(luò)的泛化性能和抗過擬合能力。在輸入端借鑒Sang 等[17]提出的CutMix 數(shù)據(jù)增強方式,提出Mosaic數(shù)據(jù)增強方法將多張圖片隨機縮放拼接為一張圖片,擴充數(shù)據(jù)的多樣性。
在特征提取方面,YOLOv4采用空間金字塔池化網(wǎng)絡(luò)(Spatial Pyramid Pooling Net,SPP Net)增大感受野,且在不降低運算速度的同時顯著分離上下文特征信息,由路徑聚合網(wǎng)絡(luò)(Path Aggregation Network,PANet)代替特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,F(xiàn)PN)進行參數(shù)聚合,使用張量連接代替捷徑拼接。YOLOv4中PANet的結(jié)構(gòu)如圖4所示。
圖4 YOLOv4中的PANet結(jié)構(gòu)
YOLOv4 的損失函數(shù)在預(yù)測坐標損失中采用了考慮邊框重合度、中心距和寬高比的完全交并比損失(Complete Intersection over Union Loss,CIoU Loss)函數(shù)全面體現(xiàn)預(yù)測框與真實框的位置關(guān)系,有利于預(yù)測框的收斂。
YOLOv4算法在YOLO算法的框架上,廣泛整合目標檢測領(lǐng)域的優(yōu)化策略進行全方位優(yōu)化,獲得了高效、快速、精確的檢測特性,在Tesla V100 圖形處理器(Graphics Processing Unit,GPU)上以65 幀/s 的圖像處理速度獲得COCO 數(shù)據(jù)集上43.5%的平均精度(Average Precision,AP)[10],但是由于融合了大量的優(yōu)化策略導(dǎo)致其模型復(fù)雜度較高。
由YOLOv5的源碼可知,其主干網(wǎng)絡(luò)在YOLOv4基礎(chǔ)上進行了簡單改進:將網(wǎng)絡(luò)的第1層Focus模塊替換為6×6 的卷積層,在GPU 設(shè)備上運行更加高效;引入CSPNet 優(yōu)化了主干網(wǎng)絡(luò)中的梯度重復(fù),在減少參數(shù)量的同時壓縮了模型體積;將SPP 模塊替換為更高效的快速空間金字塔池化(Spatial Pyramid Pooling-Fast,SPPF),大幅提升了運算速度;采用了更多的數(shù)據(jù)增強方式,如Mosaic、Copy Paste、Random Affine、MixUp,有效提升了模型的泛化能力與魯棒性[18]。
YOLOv5 采用多尺度訓(xùn)練(Multi-Scale Training),可以包含更多尺寸的圖片輸入;采用K-均值(K-Means)聚類算法對數(shù)據(jù)集中的邊界框進行聚類分析,進而得到合適的先驗框;采用預(yù)熱和余弦LR 調(diào)度程序(Warmup and Cosine LR Scheduler)進行學(xué)習率的調(diào)整。
YOLOv5基本沿用了YOLOv4的結(jié)構(gòu),同時根據(jù)通道的尺度縮放提供YOLOv5S、YOLOv5M、YOLOv5L、YOLOv5X 4 種不同網(wǎng)絡(luò)結(jié)構(gòu),支持在檢測精度與速度間進行一定權(quán)衡,其中YOLOv5S通常部署于嵌入式設(shè)備中構(gòu)建輕量級網(wǎng)絡(luò),相較于YOLOv4,YOLOv5 在犧牲部分檢測性能的情況下提升了模型的靈活性、檢測速度、部署方便性。
YOLOX[19]基于YOLOv3 的網(wǎng)絡(luò)結(jié)構(gòu)新增2 個3×3 卷積將分類和回歸任務(wù)解耦,達到提升精度和收斂速度的效果,對于FPN 特征采用1×1 卷積層減小特征通道,然后添加并行分支分別用于分類和回歸任務(wù)。YOLOv3~YOLOv5 耦合頭與YOLOX 解耦頭結(jié)構(gòu)對比如圖5所示。
圖5 YOLOv3~YOLOv5耦合頭與YOLOX解耦頭結(jié)構(gòu)對比[19]
YOLOX 采用無先驗框(Anchor-Free)方法預(yù)先定義預(yù)測目標的中心作為原點,基于原點確定網(wǎng)格左上角的預(yù)測框高度和寬度2個偏移量作為預(yù)測過程取代了YOLOv1~YOLOv5慣用的預(yù)測的平移邊框過程,避免了聚類引起的時間浪費和檢測區(qū)域限制,減少了預(yù)測框的生成;采用正負樣本匹配策略(Advanced Label Assigning Strategy,SimOTA)[20]為不同目標設(shè)定不同的正樣本數(shù)量,避免了額外的參數(shù)優(yōu)化,提升了檢測速度;提供一種通過添加2 層卷積、一對一標簽分配模塊在稍微降低性能的條件下實現(xiàn)NMS Free(Non-Maximum Suppression Free)的端到端檢測。
YOLOX 是在YOLOv3 的基礎(chǔ)上融合目標檢測領(lǐng)域的無先驗框檢測器、高級標簽分配、端到端檢測器得到的檢測模型算法,YOLOX-L 在Tesla V100上以68.9 幀/s的圖像處理速度在COCO 數(shù)據(jù)集上實現(xiàn)了50.0%平均精度,同時支持開放神經(jīng)網(wǎng)絡(luò)交換(Open Neural Network Exchange,ONNX)、Tensor RT、NCNN(Nihao Convolutional Neural Network)、開放視覺推理及神經(jīng)網(wǎng)絡(luò)優(yōu)化(Open Visual Inference and Neural network Optimization,Open VINO)多個部署版本[19]。
YOLOv6[21]的主干網(wǎng)絡(luò)Efficient Rep 是引入重參數(shù)化視覺幾何組(Re-parameterization Visual Geometry Group,Rep VGG)[22]結(jié)構(gòu)設(shè)計出的高效可重參數(shù)化網(wǎng)絡(luò),可以實現(xiàn)速度與精度的平衡,同時優(yōu)化SPPF 得到更高效的SimSPP(Simplified SPPF)模塊,并采取混合通道策略得到更高效的解耦頭結(jié)構(gòu),在分類和回歸過程中均進行了自我提升。
YOLOv6 采取了與YOLOX 相同的無先驗框檢測方式和SimOTA 樣本分配策略,采用標準交并比邊界回歸損失(Standard Intersection over Union Loss,SIoU Loss)函數(shù)進行監(jiān)督網(wǎng)絡(luò)學(xué)習,提升回歸精度,同時引入額外的通用實踐性技巧(訓(xùn)練更多輪次、自蒸餾策略),提高了工業(yè)領(lǐng)域的應(yīng)用性能。
YOLOv6 在網(wǎng)絡(luò)設(shè)計、標簽分配、損失函數(shù)、工業(yè)便利化方面進行了改進,YOLOv6-nano 在COCO數(shù)據(jù)集上的精度達35.0% AP,在推理專用GPU T4上推理速度達1 242 幀/s,YOLOv6-s 在COCO 數(shù)據(jù)集上的精度為43.1% AP,在T4 上推理速度為520 幀/s。YOLOv6 支持CPU(Open VINO)、ARM(MNN(Mobile Neural Network)、NCNN)等不同平臺[21],為不同工業(yè)場景提供了不同規(guī)模、各有側(cè)重的目標檢測框架網(wǎng)絡(luò),但是YOLOv6 的優(yōu)化策略大多針對小型網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計,當網(wǎng)絡(luò)深度和寬度增加后,檢測效果可能下降。
YOLOv7[9]提出了高效層聚合網(wǎng)絡(luò)(Efficient Layer Aggregation Networks,ELAN)的擴展版本,即擴展高效層聚合網(wǎng)絡(luò)(Extended ELAN,E-ELAN),通過拓展(Expand)、重組(Shuffle)結(jié)構(gòu)實現(xiàn)不改變原有梯度路徑的多次模塊堆疊,使網(wǎng)絡(luò)更好地進行學(xué)習和收斂。YOLOv7 借鑒YOLOv4、YOLOv5 的方式,通過對網(wǎng)絡(luò)深度和寬度的縮放來擴展效率層網(wǎng)絡(luò),利用梯度傳播路徑的概念分析了重參數(shù)化模塊的網(wǎng)絡(luò)搭配,最終提出無恒等映射的重參數(shù)化卷積模塊。
YOLOv7 提供了全新的標簽分配策略:使用引導(dǎo)頭的預(yù)測結(jié)果引導(dǎo)生成由粗到細的層次標簽用作引導(dǎo)頭和輔助頭的學(xué)習,使引導(dǎo)頭具備更強的殘余信息學(xué)習能力,為不同的分支輸出動態(tài)目標。
YOLOv7 設(shè)計出幾種可以訓(xùn)練的免費包,使檢測器在不提升成本的情況下大幅提高檢測精度,為實時探測器提出擴展、縮放策略從而對參數(shù)進行高效利用,為重參數(shù)化模塊代替原有模塊、動態(tài)標簽處理輸出層的分配提出了處理方法,并優(yōu)化了網(wǎng)絡(luò)架構(gòu)和訓(xùn)練過程。在COCO 數(shù)據(jù)集上,YOLOv7-E6E 的精確度為56.8% AP,相較于YOLOv6-s(43.1%AP)取得了較大提升[9]。
YOLOv8 和YOLOv5 均由Ultralytics 團隊發(fā)布,提供了一個全新的SOTA(State Of The Art)模型并基于縮放系數(shù)提供N、S、M、L、X 尺度的不同大小模型以滿足不同場景需求,在YOLOv5 的基礎(chǔ)上使用基于YOLOv7中E-ELAN模塊的C2f模塊代替YOLOv5中的C3 模塊,增加了更多的梯度流信息,并參考YOLOX,采用了解耦頭結(jié)構(gòu)將分類和回歸解耦。
YOLOv8 采用無先驗框檢測方式及任務(wù)對齊學(xué)習(Task Alignment Learning,TAL)動態(tài)匹配的方式,從任務(wù)對齊的角度出發(fā),依據(jù)所設(shè)計的指標動態(tài)選擇高質(zhì)量的先驗框作為正樣本融入損失函數(shù)的設(shè)計,使用DFL(Distribution Focal Loss)和CIoU Loss作為回歸損失[23]。
YOLOv8 是在YOLOv5 的基礎(chǔ)上參考了YOLOX、YOLOv6、YOLOv7 算法而提出的包括圖像分類、無先驗框物體檢測和實例分割的高效算法,同時具備可擴展性,與YOLO 算法框架兼容,可以切換、比較不同版本的性能。
YOLO 系列目標檢測算法專注于平衡檢測速度與精度,旨在不犧牲檢測精度的同時提升檢測的實時性,YOLO 的每個版本都在維持甚至提升框架實時性的同時提升精確性,YOLOv4 之后的模型實現(xiàn)了速度與精度的進一步權(quán)衡,提供不同比例的模型以適應(yīng)特定應(yīng)用環(huán)境,更適合使用者進行權(quán)衡選擇。YOLO系列主要改進方向如表2所示,其未來的發(fā)展將致力于獲得更快、更高效的網(wǎng)絡(luò)架構(gòu),更有效的特征積分方法,更準確的檢測方式,魯棒性更強的損失函數(shù),更有效的標簽分配方法,更有效的訓(xùn)練方式以及更優(yōu)良的兼容性能。
YOLO 系列算法以其準確、高效的檢測效果被應(yīng)用到各檢測領(lǐng)域,包括醫(yī)療口罩檢測[24]、工程安全帽檢測[25]、農(nóng)業(yè)作物檢測[26]等,在自動駕駛領(lǐng)域,YOLO 算法也憑借其實時性和較高的準確性在車輛、車道線、行人和交通標志等檢測任務(wù)中得到了廣泛應(yīng)用,并在相關(guān)學(xué)者的不斷改進下取得了良好的效果。
隨著城市交通的不斷發(fā)展,機動車、非機動車等車輛檢測的壓力不斷增加,良好的車輛檢測系統(tǒng)可以有效緩解交通壓力。
霍愛清等[27]對YOLOv3 算法的殘差結(jié)構(gòu)單元和特征提取網(wǎng)絡(luò)進行改進,采用深度可分離卷積代替了傳統(tǒng)卷積,改用Swish 激活函數(shù)減小網(wǎng)絡(luò)模型的計算量,引入CIoU 作為損失函數(shù),緩解了目標回歸框的發(fā)散,改進后算法的mAP提升了3.68%,參數(shù)量下降了67%,擁有較高的準確性、適用性、魯棒性。Wu 等[28]通過調(diào)整YOLOv5s 的網(wǎng)絡(luò)層結(jié)構(gòu)使其更適合嵌入式設(shè)備,應(yīng)用于車輛和距離檢測,在mAP 略微降低(3%)的情況下檢測速度提升了19 幀/s。章程軍等[29]在YOLOv5s網(wǎng)絡(luò)基礎(chǔ)上通過引入一次性聚合模塊優(yōu)化網(wǎng)絡(luò)加強特征提取,引入非局部注意力機制增強特征,采用加權(quán)非極大值抑制的方法進行預(yù)測框篩選,在自制的車輛數(shù)據(jù)集上mAP 提升了3%,可以在車輛密集和各類光照條件下完成檢測。趙帥豪等[30]通過改進YOLOX 網(wǎng)絡(luò)結(jié)構(gòu),采用深度可分離卷積代替?zhèn)鹘y(tǒng)卷積,引入卷積塊注意力模塊(Convolutional Block Attention Module,CBAM)融合特征,采用CIoU 優(yōu)化損失函數(shù),提升定位精度,得到的模型在自建數(shù)據(jù)集上測試時mAP 提升了2.01%。Zhang 等[31]提出使用翻轉(zhuǎn)拼接算法加強YOLOv5 網(wǎng)絡(luò)對小目標的感知,在自建的數(shù)據(jù)集上的測試結(jié)果表明,該數(shù)據(jù)增強方式可以有效提高車輛的檢測準確率。
在車輛檢測任務(wù)中,通過改善損失函數(shù)可以提升定位精度,采用翻轉(zhuǎn)拼接算法可以提升網(wǎng)絡(luò)對小目標特征的提取能力,采用可分離卷積或調(diào)整網(wǎng)絡(luò)深度可以在犧牲部分精度的條件下?lián)碛懈斓臋z測速度以適用于嵌入式設(shè)備,采用聚合模塊可以有效提高特征提取能力,適用于車輛密集場合。
隨著城市交通的發(fā)展與智能駕駛的普及,車道線信息的采集可以為車輛的導(dǎo)航提供參考、保證車輛的安全,是輔助駕駛的重要組成部分。
崔文靚等[32]在YOLOv3 基礎(chǔ)上采用K-Means++代替K-Means 進行聚類分析,通過改進網(wǎng)絡(luò)架構(gòu)得到共101 層新網(wǎng)絡(luò)架構(gòu),該網(wǎng)絡(luò)結(jié)構(gòu)可以有效降低小目標檢測場景下卷積層過深導(dǎo)致的特征消失情況,在美國加利福尼亞理工大學(xué)車道線數(shù)據(jù)集上的測試結(jié)果表明,算法的mAP 提高了11%。Dong 等[33]在YOLOv4 的基礎(chǔ)上提出YOLOP,構(gòu)建了高效的多任務(wù)網(wǎng)絡(luò),采用1 個特征提取編碼器和3 個解碼器同時處理物體檢測、車道線檢測和可行駛區(qū)域分割3 個任務(wù)。丁玉玲等[34]提出采用K-Means++聚類對YOLOv4 算法進行參數(shù)優(yōu)化,使其更便于檢測車道線,同時根據(jù)車道線特征增加了縱軸的檢測密度,取得了更好的檢測效果。Ji 等[35]通過分析車道線特征,在YOLOv3的基礎(chǔ)上調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)的卷積層數(shù)、劃分車道線圖網(wǎng)格、調(diào)整檢測尺寸使之適合車道線小目標檢測,同時改進簇中心距以及損失函數(shù)參數(shù),獲得了92.03%的mAP。
在車道線檢測任務(wù)中,車道線檢測數(shù)據(jù)集通常為彩色圖像,算法在信息復(fù)雜、圖像信息不多的情況下訓(xùn)練效果有待提高。通過K-Means++聚類分析對算法進行參數(shù)優(yōu)化可以使算法適用于車道線檢測,通過改變特定網(wǎng)絡(luò)結(jié)構(gòu)可以提升網(wǎng)絡(luò)針對車道線目標的特征提取能力,通過增加解碼器也可以將車道線檢測并入其他檢測任務(wù)。關(guān)于車道線的檢測,還需要更多的數(shù)據(jù)集支持。
交通領(lǐng)域的行人作為最廣泛的特殊參與群體,是安全檢測中最主要的檢測對象之一,檢測行人的體態(tài)語言并預(yù)測其行為動作對自動駕駛領(lǐng)域有著重要意義。
Liu 等[36]在YOLOv3 網(wǎng)絡(luò)中引入壓縮與激勵網(wǎng)絡(luò)(Squeeze and Excitation Network,SENet)和距離-交并比損失函數(shù)(Distance-Intersection over Union Loss,DIoU Loss),考慮真實框與預(yù)測框的中心點距離,提升了對小尺寸的非機動車、行人的檢測精度。李翔等[37]在YOLOv3 基礎(chǔ)上通過上采樣提升金字塔分辨率并引入淺層特征增強相鄰特征層的差異,生成可以區(qū)分高重疊度的深層特征,同時引入優(yōu)化預(yù)測框方差均值降低假陽率的聚類損失算法,有效提升遮擋情況下行人的檢測準確率。Yan 等[38]基于YOLOv5 提出通過融合多尺度感受野捕捉圖像的信息,引入注意力分支增強特征的表達能力,解決了行人等小目標特征容易消失的問題。李克文等[39]通過引入一種邊界增強算子,從邊界的極限點中自適應(yīng)地提取邊界特征來增強已有點特征,增加目標檢測尺度,基于目標檢測中目標實例特性及改進網(wǎng)絡(luò)模型引入完全交并比函數(shù)對YOLOv3損失函數(shù)進行改進,可以有效提高擁擠環(huán)境下目標檢測的準確性。Liu 等[40]利用MobileNetv3 優(yōu)化特征提取網(wǎng)絡(luò),在YOLOv4 的基礎(chǔ)上加入CBAM 提高檢測效率,采用可分離卷積替換3×3 卷積減小參數(shù)量,有效提升了行人檢測的精度與速度,在PASCAL VOC 2007+2012 數(shù)據(jù)集上進行測試,與YOLOv4 的測試結(jié)果相比,mAP 提升了5.00%。方康等[41]通過在YOLOX 網(wǎng)絡(luò)中融入多尺度特征增強模塊豐富特征圖中的語義信息,將多模態(tài)特征提取解耦為特性與共性特征提取,在KAIST 多光譜行人檢測基準數(shù)據(jù)集(KAIST Multispectral Pedestrian Detection Benchmark Dataset)和FLIR 熱 成 像 數(shù) 據(jù) 集(FLIR Thermal Dataset)上的驗證結(jié)果表明,該方法可以有效提高多光譜行人的識別。
在行人檢測任務(wù)中,引入SENet 模塊根據(jù)損失函數(shù)學(xué)習特征權(quán)重可以使有效特征圖所占權(quán)重大,無效或效果小的特征圖所占權(quán)重小,使訓(xùn)練模型達到更好的效果;通過提升特征提取與融合能力可以在進行小目標的特征提取時融合目標圖像的各種特征信息,實現(xiàn)精度與速度平衡。在進行行人等易遮擋的小目標檢測時,引入上下文信息、注意力模塊,以及加強特征提取與融合往往會提高模型的復(fù)雜程度,增加運算成本,故融合更多輕量化網(wǎng)絡(luò)模型設(shè)計至關(guān)重要。
交通標志的檢測作為智能駕駛的關(guān)鍵任務(wù),直接關(guān)系到駕駛的安全性,有效且可靠的交通標志檢測算法可以在很大程度上減少安全事故的發(fā)生。
Dewi等[42]通過生成式對抗網(wǎng)絡(luò)生成交通標志進行增強數(shù)據(jù)集的訓(xùn)練,在YOLOv3、YOLOv4 模型上的mAP 分別為84.9%、89.33%。Gao 等[43]在道路交通信號圖像上進行了檢測試驗,證明了YOLOv4 擁有較高的交通標志識別性能。潘惠萍等[44]在YOLOv4的基礎(chǔ)上結(jié)合SPP 模塊消除網(wǎng)絡(luò)的尺寸限制,修改原特征圖尺寸的分辨率增大感受野,利用行車記錄儀采集的交通標志進行檢測,平均檢測時間為0.449 s,mAP 達到99.0%。錢伍等[45]在YOLOv5 算法基礎(chǔ)上使用復(fù)合數(shù)據(jù)增強對模型輸入進行增強處理,設(shè)計多尺度代替固定尺度訓(xùn)練,構(gòu)建多尺度特征融合網(wǎng)絡(luò),直接提升了模型對交通信號的檢測能力,在自采集數(shù)據(jù)集上檢測時間可以達到9.5 ms,mAP為99.8%。
在交通標志檢測任務(wù)中,通過生成式對抗性網(wǎng)絡(luò)可以生成更多的交通標志圖像,結(jié)合真實圖像以增強數(shù)據(jù)集,通過該策略擴充訓(xùn)練數(shù)據(jù)集規(guī)模,可以增強檢測模型的魯棒性;通過修改特征圖尺寸的分辨率增大感受野、構(gòu)建多尺度特征融合網(wǎng)絡(luò)可以有效提升交通標志檢測算法的性能。
車輛領(lǐng)域的YOLO 系列目標檢測優(yōu)化方式如表3 所示,此外,YOLO 系列算法應(yīng)用于汽車牌照檢測[46]、汽車零部件檢測[47]和車輛徽標檢測[48]等領(lǐng)域,在極大解放人力、緩解交通壓力的同時取得了良好的檢測效果,為安全行車提供了便利。
表3 車輛目標檢測常見的優(yōu)化方式
YOLO 系列算法歷經(jīng)一代代的發(fā)展,不斷融合目標檢測領(lǐng)域的研究成果,提升檢測性能,但距離實現(xiàn)自動駕駛領(lǐng)域的廣泛應(yīng)用還面臨一些挑戰(zhàn),仍需在以下幾個方面開展進一步研究:
a.YOLO 系列在進行復(fù)雜場景下的小目標檢測時,細節(jié)特征的捕捉難以達到較高的檢測精度,國內(nèi)外學(xué)者通常通過整合上下文語意信息、聯(lián)系局部與整體信息提升檢測精度,但會增加模型的復(fù)雜程度與計算量,因此需要一種更好的特征融合提取結(jié)構(gòu)來提升算法性能。
b.YOLO 算法當前主要面向計算機端,在邊緣計算需求增加的背景下,面向嵌入式AI設(shè)備的應(yīng)用要求YOLO 算法在保證檢測效果的前提下更輕、更快。
c.YOLO 算法在極端環(huán)境條件下的檢測效果還有待提高,面對風霜雨雪等條件干擾時如何保證其實際的檢測效果仍需不斷地研究與突破。
深度學(xué)習的發(fā)展推動著目標檢測算法的進步,從YOLOv1 到Y(jié)OLOv8,檢測精度與速度、框架的兼容性能逐步提高,YOLOv8 所具備的可擴展性使得YOLOv1~YOLOv7 可以實現(xiàn)切換進行性能比較。同時,YOLO 系列算法的發(fā)展應(yīng)用于智能駕駛領(lǐng)域也取得了一定進展,在進行車輛、車道線、行人、交通標志等不同檢測任務(wù)時通常對檢測模型采取不同的優(yōu)化方式:引入上下文信息、增強特征表示可以在大多數(shù)場景下提升檢測效果;在進行行人、車輛等密集且背景復(fù)雜的目標檢測任務(wù)時可以通過改善損失函數(shù)提升訓(xùn)練效果,進而提升模型魯棒性;在交通燈、車道線檢測時通常通過聚類進行精度提升。隨著YOLO 系列算法的不斷發(fā)展,更多適用于自動駕駛領(lǐng)域的YOLO 系列改進算法將推動該領(lǐng)域的扎實進步。