趙明升ZHAO Ming-sheng;來躍深LAI Yue-shen
(西安工業(yè)大學(xué)機(jī)電工程學(xué)院,西安 710021)
路標(biāo)線在疏導(dǎo)交通、規(guī)范交通行為以及防范交通事故等方面的起著關(guān)鍵作用。隨著近年來我國的自動化駕駛汽車行業(yè)的飛速發(fā)展,現(xiàn)在的自動化駕駛汽車實現(xiàn)自動化駕駛依賴于自身的智能化系統(tǒng)而非智能交通網(wǎng)絡(luò)框架,其必須通過汽車的感知系統(tǒng)感知周圍的環(huán)境信息,其中就包括道路的標(biāo)線信息,道路標(biāo)線的完整性就顯得格外重要。
為確保道路標(biāo)線的完整性,人們針對道路標(biāo)線的完檢測提出了不同的解決方案。例如,文獻(xiàn)[1]提出基于道路標(biāo)線像素提取以及通過逆透視映射的連通分量進(jìn)行標(biāo)線檢測,能夠識別出重復(fù)標(biāo)線(人行橫道)以及單一特征的(如箭頭)的道路標(biāo)線。文獻(xiàn)[2]利用機(jī)器學(xué)習(xí)的方法搭建構(gòu)建了道路標(biāo)線的檢測分類算法,使用二值化標(biāo)準(zhǔn)梯度(BING)方法進(jìn)行標(biāo)線檢測,使用PACNet網(wǎng)絡(luò)進(jìn)行標(biāo)線的分類,該方法效果不佳,只能檢測出幾類目標(biāo)。文獻(xiàn)[3]提出了基于Adaboost機(jī)器學(xué)習(xí)機(jī)多類型道路標(biāo)線識別模型,同時建立了單目視覺的多種道路標(biāo)線檢測系統(tǒng),其關(guān)于標(biāo)線的檢測前檢測精度有了一定的提升,但是類別效果較少。文獻(xiàn)[4]提出基于自適應(yīng)感興趣區(qū)域(ROI)和深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)道路標(biāo)線檢測方案,隨著深度卷積網(wǎng)絡(luò)的使用,該方法實現(xiàn)了對箭頭類標(biāo)線和自行車標(biāo)線的檢測和分類。文獻(xiàn)[5]針對鳥瞰圖中道路標(biāo)線在橫向和縱向上分布密度不同的特點,利用YOLOv3[6]實現(xiàn)道路標(biāo)線的檢測,并且檢測效果讓人滿意。
基于傳統(tǒng)標(biāo)線的檢測方法效果難以讓人感到滿意,隨著機(jī)器學(xué)習(xí)的使用能夠?qū)崿F(xiàn)初步讓人滿意的標(biāo)線檢測結(jié)果。特別是近年來深度學(xué)習(xí)的蓬勃發(fā)展給人們帶來了新的解決方案,例如引用文獻(xiàn)[4]、文獻(xiàn)[5]的檢測結(jié)果讓人滿意。為進(jìn)一步進(jìn)行深入的研究,提升標(biāo)線多類別檢測的效果,本文使用改進(jìn)的YOLOv4[7]目標(biāo)檢測算法實現(xiàn)道路標(biāo)線的檢測。
本文提出的算法從輕量化主干特征提取網(wǎng)絡(luò)、融合注意力機(jī)制以及改進(jìn)損失函數(shù)等3個方面改進(jìn)YOLOv4目標(biāo)檢測算法。使用MobilenetV3[8]網(wǎng)絡(luò)替換CSPDarkNet53網(wǎng)絡(luò)作為改進(jìn)目標(biāo)檢測算法的主干特征提取網(wǎng)絡(luò),利用該方法降低主干特征提取網(wǎng)絡(luò)的參數(shù)量;在三個不同采樣尺度處使用Triplet[9]注意力增強(qiáng)網(wǎng)絡(luò)的性能;利用EIOU和Focal loss改進(jìn)YOLOv4的目標(biāo)損失函數(shù)促進(jìn)模型的收斂速度,具體的改進(jìn)方法如下文所示。
為使卷積網(wǎng)絡(luò)模型在進(jìn)行訓(xùn)練的時候能夠關(guān)注特征事物。本文在原網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上引入Triplet注意力機(jī)制,通過該機(jī)制的引入使網(wǎng)絡(luò)更加關(guān)注輸入圖像中標(biāo)線所在的空間信息和通道信息。由于需要從主干特征提取網(wǎng)絡(luò)中采樣三個尺度的信息,因此本文嘗試在采樣的部分使用注意力機(jī)制。使用的Triplet注意力機(jī)制如圖1所示。
如圖1所示為Triplet注意力機(jī)制的網(wǎng)絡(luò)結(jié)構(gòu),該注意機(jī)制由三個分支組成:其中兩個分支分別用來捕獲通道C維度和空間維度W/H之間的跨通道交互,剩下的一個分支就是傳統(tǒng)的空間注意力權(quán)重的計算。相比CBAM注意機(jī)制采用空間注意力機(jī)制和通道注意力機(jī)制分離的機(jī)制,Triplet注意力機(jī)制能夠?qū)崿F(xiàn)跨維度融合,并且對于其構(gòu)成的通道注意力機(jī)制和空間注意力機(jī)制是幾乎無參的,故本文采用Triplet作為特征增強(qiáng)的注意機(jī)制。
由于在整張圖像中道路標(biāo)線的信息只包含小部分信息,而大部分為背景信息,這種正負(fù)樣本不均衡現(xiàn)象導(dǎo)致模型在訓(xùn)練過程中難以關(guān)注目標(biāo)對象。為了降低這種不平衡現(xiàn)象造成的影響本文引用Focal loss改進(jìn)的YOLOv4的類別損失函數(shù),則改進(jìn)后的類別損失函數(shù)可以表示為:
式中α表示平衡參數(shù);γ∈(0,+∞)用于減少易分樣本的差距,其中α=0.5,γ=1效果更好,pi(c)表示預(yù)測類別置信度預(yù)測類別置信度。
EIOU損失函數(shù)解決CIOU損失函數(shù)中其縱橫比的模糊的現(xiàn)象,同時也考慮到重疊面積、中心點距離、長寬邊長真實差,相比CIOU損失函數(shù)的其收斂速度更快并且能夠保證整個算法的精度,本文引入了EIOU改進(jìn)其的位置損失函數(shù)
其中,cw、ch、ρ分別是覆蓋兩個box的最小外接框的寬度、高度及b和bgt之間的歐式距離,w,h,wgt,hgt分別為預(yù)測框的和真實框的寬高。
為進(jìn)一步驗證本課題提出基于輕量化網(wǎng)絡(luò)、Focal loss、EIOU以及融合Triplet注意力機(jī)制改進(jìn)的YOLOv4目標(biāo)檢測算法的性能,本文使用基于CeyMo[10]數(shù)據(jù)集進(jìn)行道路標(biāo)線檢測算法的驗證。CeyMo數(shù)據(jù)集包含2887幅圖像和4706個屬于11個道路標(biāo)記類的實例,同時使用Mosaic算法進(jìn)行數(shù)據(jù)增強(qiáng),增加道路標(biāo)線數(shù)據(jù)集的豐富度。
為進(jìn)行驗證實驗,搭建實驗平臺,平臺的參數(shù)為:顯卡NVIDIA GeForce RTX 2080 Ti(11G顯存)、cuda11.0、cudnn 8.0.4、深度學(xué)習(xí)框架為pytorch 1.8、開發(fā)環(huán)境為:VScode。
利用修改后的YOLOv4目標(biāo)檢測算法進(jìn)行模型訓(xùn)練。首先通過的Kmeans算法獲得道路標(biāo)線的先驗框。本文得到關(guān)于道路標(biāo)線的先驗框大小為(21,9)、(21,27)、(32,54)、(44,15)、(64,28)、(88,50)、(182,71)、(228,31)、(352,74)。設(shè)置對應(yīng)的超參數(shù)迭代次數(shù)設(shè)置為800次,批量大小為16,優(yōu)化方法使用Sgd,初始化步長為0.005,最小步長為0.00005,動量損失為0.95,F(xiàn)ocal loss使用默認(rèn)參數(shù),之后進(jìn)行模型訓(xùn)練,訓(xùn)練過程中的損失函數(shù)的變化如圖2所示。
目標(biāo)檢測算法的性能評價包括:MAP、FPS(該算法每秒能夠處理圖像的速度)、AP(類別的平均精度)以及Recall(每個類別的召回率)。由于AP和R之間為負(fù)相關(guān),其AP越高則其Recall越低,故在本文所使用的模型評價標(biāo)準(zhǔn)中使用的MAP,AP以及FPS作為性能的評價指標(biāo)。
為了評價本文提出算法的性能,本文利用現(xiàn)有的算法和本文提出算法進(jìn)行分析。本文使用SSD、YOLOv3,YOLOv4、輕量化YOLOv4以及輕量化YOLOv4+CBAM等算法和本文提出的目標(biāo)檢測算法進(jìn)行比較,得到不同算法的道路標(biāo)線檢測的性能如表1所示,不同算法對不同類別的檢測精度如表2所示。
如表1本文所提出算法和現(xiàn)有模型算法進(jìn)行訓(xùn)練之后得到關(guān)于道路標(biāo)線檢測模型訓(xùn)練的結(jié)果。通過觀察表1和表2可以發(fā)現(xiàn)本文提出算法的參數(shù)量相比SSD,YOLOv3以及YOLOv4檢測算法參數(shù)量明顯的減低,只有未壓縮時大約25%的參數(shù)量,隨著參數(shù)量的降低FPS的單幀處理速度明顯降低。同時,相比融合的CBAM注意力本文使用的注意力機(jī)制參數(shù)量更小,同時預(yù)測精度更高其依舊有著準(zhǔn)確的預(yù)測精度,最終得到道路標(biāo)線的檢測精度達(dá)到了97%。
表1 模型對比
表2 預(yù)測精度
在實驗的環(huán)境下,利用道路標(biāo)線的破損檢測。在實驗的過程中首先利用本文所提出的目標(biāo)檢測算法進(jìn)行道路標(biāo)線的類別檢測,標(biāo)線的類別檢測其結(jié)果如圖3所示。
如圖3所示為進(jìn)行標(biāo)線檢測實驗的結(jié)果,觀察所示的標(biāo)線檢測結(jié)果能夠發(fā)現(xiàn)本文提出的目標(biāo)的檢測算法具有較前的魯棒性,能夠在不同的場景中實現(xiàn)道路標(biāo)線的檢測。
本課題的研究是為了進(jìn)行道路標(biāo)線的準(zhǔn)確檢測,為進(jìn)一步提升模型的預(yù)測效率故在原YOLOv4模型的基礎(chǔ)上進(jìn)行了三個方面的改進(jìn)。我們所使用的目標(biāo)檢測在原算法的基礎(chǔ)上引入Triplet注意力機(jī)制使神經(jīng)網(wǎng)絡(luò)更加關(guān)注的感興趣目標(biāo),增強(qiáng)模型的表達(dá);同時采用深度可分離網(wǎng)絡(luò)優(yōu)化了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),降低了神經(jīng)網(wǎng)絡(luò)的復(fù)雜度;簡化了損失函數(shù),加速了模型訓(xùn)練的速度。最終的實驗表明,本文的算法在使用的數(shù)據(jù)集上的訓(xùn)練結(jié)果得到了約97%的預(yù)測精度,同時其單幀處理速度為0.0266秒,其性能基本上可以滿足道路標(biāo)線檢測的實時需求。