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