成都錦城學院自動駕駛實驗室 高 揚 陳旭淼 張皞宇
目標檢測是自動駕駛汽車與外界環(huán)境實現(xiàn)信息交互的重要環(huán)節(jié),為了能有效地對多個目標進行實時檢測,本文針對在道路目標檢測中小目標和被物體遮擋的目標易被漏檢或檢測框定位不準確等問題,提出一種基于YOLOv4的目標檢測模型。增加152x152的特征融合結(jié)構(gòu),減少每個YOLO層前的兩個卷積層,以優(yōu)化目標特征提取,模型訓練前用kmeans++聚類算法優(yōu)化錨框,以提升模型對自動駕駛多目標的檢測性能。實驗結(jié)果表明,本文改進YOLOv4算法比原始算法提升1.5個百分點,在檢測精度和檢測速度上均有一定提升,改進算法具有一定的實用價值。
自動駕駛汽車是未來汽車產(chǎn)業(yè)發(fā)展的必然趨勢,也是具有革命性影響的交通工具。自動駕駛技術(shù)涉及計算機科學、車輛工程、傳感器技術(shù)等交叉學科內(nèi)容,它對于社會經(jīng)濟發(fā)展、科學技術(shù)研究等方面都有重大影響。在自動駕駛技術(shù)的組成單元中,環(huán)境感知是至關(guān)重要的環(huán)節(jié)。其中多目標檢測是環(huán)境感知的重要分支,通過對行人、車輛、交通信號燈、交通標志等物體的檢測,結(jié)合激光雷達的探測、道路交通規(guī)則以及汽車行駛狀態(tài)等信息對自動駕駛汽車進行規(guī)劃與控制。
本文基于YOLOv4網(wǎng)絡,增加152x152的特征融合結(jié)構(gòu),用于提升小目標檢測性能,優(yōu)化特征檢測層的卷積層數(shù),平衡網(wǎng)絡參數(shù),提高模型檢測速度,用kmeans++聚類算法優(yōu)化適用于本實驗所用數(shù)據(jù)集的錨框,減少非必要誤差。
實際駕駛場景下部分目標對象存在因距離或物體遮擋、重合等因素被漏檢或識別框定位不準確等情況,多尺度特征融合層可以有效地解決此類問題。本文提出一種采用四種檢測尺度的特征融合結(jié)構(gòu)。改進后的YOLOv4網(wǎng)絡結(jié)構(gòu)簡化圖如圖1所示,輸入圖像尺寸為608x608時,在CSPDarkNet-53網(wǎng)絡的主體結(jié)構(gòu)中進行五次下采樣,同時使用四個上采樣層作為FPN結(jié)構(gòu),使用三個PAN結(jié)構(gòu)組成特征金字塔。FPN結(jié)構(gòu)自下而上提取豐富的語義信息,PAN結(jié)構(gòu)自上而下提取準確的位置信息,從而實現(xiàn)不同的主干層對不同的檢測層的特征融合。網(wǎng)絡檢測尺度增加到四個后得到的152x152、76x76、38x38和19x19的特征圖,能更有效地應不同大小的目標物體。
圖1 改進YOLOv4網(wǎng)絡結(jié)構(gòu)簡圖
為平衡網(wǎng)絡結(jié)構(gòu)參數(shù)量和避免模型學習效果因網(wǎng)絡結(jié)構(gòu)加深而退化的情況,在每個YOLO層前減少兩個卷積層,由之前的5層卷積轉(zhuǎn)為3層卷積,如圖2所示。在平衡和避免以上情況的同時一定程度上提高了模型檢測速度,優(yōu)化了模型性能。
圖2 三層卷積
為避免Anchor Box造成的聚類局部最優(yōu)的情況,本文采用K-means++聚類算法生成適用于本實驗所用數(shù)據(jù)集的錨框,算法基本流程如下:
每個樣本點成為下一個聚類中心的概率為P,其計算公式為:
本文使用KITTI數(shù)據(jù)集訓練YOLOv4系列模型。本文將KITTI數(shù)據(jù)集的Car、Van、Truck、Tram類合并為Car類,將Person_sitting、Pedestrain合并為Pedestrain類,Cyclist不變,共計三類。利用Python批處理方法將數(shù)據(jù)集處理為PASCAL VOC2007數(shù)據(jù)格式,訓練集(含驗證集)與測試集的比例為9:1,具體標記圖數(shù)與標記個數(shù)見表1所示。
表1 標記數(shù)
數(shù)據(jù)集制作完成后,使用Kmeans++聚類算法生成適用于該數(shù)據(jù)集的錨框,聚類散點分布如圖6所示,12個錨框參數(shù)值分別為(13,40),(25,55),(13,116),(45,63),(33,92),(29,220),(62,104),(77,155),(58,305),(116,190),(133,300),(192,354)。
圖3 Kmeans++聚類散點圖
本文實驗采用顯卡配置為Nvidia GeFo orce RTX 1080Ti的Windows操作系統(tǒng)和Darknet深度學習框架搭建實驗環(huán)境。
在訓練前需準備預訓練權(quán)重(即yolov4.conv.137文件),結(jié)合本文2.1節(jié)給出的參數(shù)優(yōu)化結(jié)果修改YOLOv4模型配置文件,以滿足本文所用數(shù)據(jù)集的訓練要求,部分參數(shù)的設置詳見表2。初始學習率為0.0013,本文設置當模型訓練至總迭代次數(shù)的80%(24000輪)和90%(27000輪)時學習率下降90%,以達到訓練初期模型快速收斂,訓練后期模型收斂至最優(yōu)解的目的。
表2 部分訓練參數(shù)
本文模型訓練的損失值和平均精度均值變化如圖7所示,在前18000輪迭代中模型的loss值和mAP值變化相對較快,在迭代24000輪后loss值穩(wěn)定在1.6左右,迭代25000輪后mAP值穩(wěn)定在92%左右。
用k-means++聚類算法優(yōu)化錨框后,改進的YOLOv4網(wǎng)絡在KITTI數(shù)據(jù)集上訓練的mAP結(jié)果為91.99%,和原始YOLOv4在該數(shù)據(jù)集上訓練的mAP結(jié)果相比,提升了1.5個百分點。為進一步驗證改進模型的效果,將本文改進模型與原YOLOv4模型、多尺度特征融合結(jié)構(gòu)改進模型(YOLOv4-A)、特征檢測層改進模型(YOLOv4-B)以及Faster-RCNN網(wǎng)絡進行對比實驗,實驗結(jié)果如表3、圖4所示。
圖4 loss與mAP訓練過程變化
表3 對比實驗的各項數(shù)據(jù)
由表3可看出,本文改進算法各類別準確率和mAP指標均高于其余三種算法,且FPS指標高于Faster-RCNN網(wǎng)絡。綜合mAP指標和FPS指標,本文算法優(yōu)于其他檢測算法,提升了自動駕駛多目標檢測性能。
本文提出了一種改進YOLOv4算法,旨在提升自動駕駛多目標檢測的檢測性能,為自動駕駛汽車的智能決策提供更有效的數(shù)據(jù)支撐。增加152x152特征融合結(jié)構(gòu),減少特征檢測層的兩層卷積層,用Kmeans++聚類算法可以在最大程度上減小隨機生成初始聚類中心的誤差,避免聚類局部最優(yōu)導致訓練的模型魯棒性低和檢測精度低的問題出現(xiàn)。因此,本文改進的YOLOv4算法將模型的mAP指標相較于原YOLOv4算法提升了1.5個百分點,F(xiàn)PS指標基本持平。
本文從網(wǎng)絡結(jié)構(gòu)、數(shù)據(jù)集聚類的角度改進算法使模型檢測性能得到一定的提升,但對于YOLOv4主體網(wǎng)絡而言還有很大的改進空間。這些都需要在未來的科研中研究和解決的內(nèi)容。