王沛雪,張富春,董晨樂(lè)
(延安大學(xué) 物理與電子信息學(xué)院,陜西 延安 716000)
隨著經(jīng)濟(jì)的發(fā)展和社會(huì)的進(jìn)步,自動(dòng)駕駛技術(shù)的研究與發(fā)展受到人們的廣泛關(guān)注[1]。在自動(dòng)駕駛領(lǐng)域,良好的實(shí)時(shí)交通目標(biāo)檢測(cè)與識(shí)別對(duì)保障道路環(huán)境安全十分重要。道路交通目標(biāo)檢測(cè)通常分為4類:車輛檢測(cè)、行人檢測(cè)、交通標(biāo)志檢測(cè)和其他障礙物檢測(cè)。如何準(zhǔn)確快速地識(shí)別前方道路上出現(xiàn)的物體,為規(guī)范行車安全、保護(hù)公共安全并制定下一步如何避免障礙物的策略,擁有重大的實(shí)際意義。
近年來(lái),深度學(xué)習(xí)的發(fā)展帶動(dòng)了基于卷積神經(jīng)網(wǎng)絡(luò)(CNN,convolutional neural network)[1]的目標(biāo)檢測(cè)算法的迅猛發(fā)展,其具有結(jié)構(gòu)簡(jiǎn)單、檢測(cè)效果好、速度快等優(yōu)勢(shì),已成為當(dāng)前目標(biāo)檢測(cè)研究的主流方向[2]。目前,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法分為兩種類型:兩階段模型(Two-stage)和單階段模型(One-stage)[3]。其中,兩階段模型通過(guò)生成目標(biāo)候選框區(qū)域來(lái)進(jìn)行分類和目標(biāo)定位任務(wù),代表算法以區(qū)域建議網(wǎng)絡(luò)的R-CNN為主,隨后發(fā)展出Fast R-CNN[4]、Faster R-CNN[5]等算法,檢測(cè)精度大幅提升,但參數(shù)量較大,導(dǎo)致檢測(cè)速度慢。單階段模型將目標(biāo)檢測(cè)問(wèn)題變?yōu)橐粋€(gè)回歸問(wèn)題,不生成指定的候選區(qū)域,直接輸出分類和定位信息,以YOLO算法和SSD[6]系列算法為代表。相比于兩階段目標(biāo)檢測(cè)算法,單階段目標(biāo)檢測(cè)算法在檢測(cè)精度上雖然有所降低,但在檢測(cè)速度上得到了一定幅度的提升。盡管近些年來(lái)世界各地的專家學(xué)者們圍繞交通場(chǎng)景中的目標(biāo)檢測(cè)算法的研究取得相當(dāng)大的進(jìn)步與發(fā)展,但從長(zhǎng)遠(yuǎn)的角度來(lái)看,現(xiàn)有的目標(biāo)檢測(cè)算法并不能滿足實(shí)際的應(yīng)用需求,仍有許多問(wèn)題亟待解決:如存在待檢測(cè)目標(biāo)密集且遮擋、由于設(shè)備或環(huán)境原因造成捕獲圖像存在分辨率低或模糊以及所捕獲照片背景復(fù)雜等情況,從而使檢測(cè)精度和速度難以滿足實(shí)際需求。
針對(duì)交通目標(biāo)檢測(cè)領(lǐng)域存在的諸多挑戰(zhàn),文獻(xiàn)[7]在基于Tiny-YOLOv3模型的基礎(chǔ)上增加卷積層和引入1×1卷積核來(lái)增強(qiáng)模型特征提取能力,減少模型計(jì)算力,保證了檢測(cè)實(shí)時(shí)性,但不適用各種復(fù)雜交通場(chǎng)景下的檢測(cè)任務(wù);文獻(xiàn)[8]提出了一種新的多傳感器和多級(jí)增強(qiáng)卷積網(wǎng)絡(luò)結(jié)構(gòu)模型MME-YOL,在處理尺度、遮擋和照明等問(wèn)題中該模型檢測(cè)效果很好,但模型復(fù)雜度較高;文獻(xiàn)[9]提出了一種Attention-YOLOv4,在主干網(wǎng)絡(luò)中將注意力機(jī)制與殘差塊結(jié)合,提高復(fù)雜背景下目標(biāo)的檢測(cè)精度,但低分辨率圖像中物體的檢測(cè)能力不足;文獻(xiàn)[10]改進(jìn)了YOLOv4-Tiny算法,通過(guò)暗通道先驗(yàn)理論對(duì)圖片進(jìn)行去霧處理,提高了在雨、霧等惡劣環(huán)境下小目標(biāo)識(shí)別能力,但模型結(jié)構(gòu)復(fù)雜,不易于移動(dòng)端的部署;文獻(xiàn)[11]提出了Faster R-CNN和YOLO的混合模型來(lái)進(jìn)行檢測(cè),擁有較高的檢測(cè)精度,但檢測(cè)速度慢,訓(xùn)練時(shí)間長(zhǎng),無(wú)法滿足實(shí)時(shí)性要求。
本文提出了一種改進(jìn)的基于YOLOv7[12]交通目標(biāo)檢測(cè)算法,旨在解決目前關(guān)于復(fù)雜交通場(chǎng)景下道路交通目標(biāo)檢測(cè)算法的問(wèn)題。本文的主要貢獻(xiàn)有以下幾點(diǎn):在原有YOLOv7網(wǎng)絡(luò)結(jié)構(gòu)上新增加一個(gè)淺層網(wǎng)絡(luò)檢測(cè)頭,提高模型對(duì)小目標(biāo)的檢測(cè)能力;提出一個(gè)新的模塊EL-MHSA,將多頭注意力機(jī)制(MHSA,multi-head self attention)融入主干網(wǎng)絡(luò)中,增強(qiáng)模型獲取全局信息的能力;在頸部網(wǎng)絡(luò)加入?yún)f(xié)調(diào)注意力(CA,coordinate attention)模塊,使模型可以忽略無(wú)關(guān)信息的干擾,提高模型檢測(cè)能力;將損失函數(shù)改為SIoU,減少損失函數(shù)收斂不穩(wěn)定的問(wèn)題,提高了網(wǎng)絡(luò)對(duì)于目標(biāo)尺寸的魯棒性。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的YOLOv7算法在復(fù)雜交通目標(biāo)檢測(cè)任務(wù)中檢測(cè)精度mAP@0.5和mAP@0.5:0.95分別提升了2.5%和1.4%的同時(shí),檢測(cè)速度可以達(dá)到96.2 FPS,滿足復(fù)雜交通場(chǎng)景下目標(biāo)檢測(cè)的準(zhǔn)確性和實(shí)時(shí)性要求。
YOLOv7是目前目標(biāo)檢測(cè)YOLO系列中比較先進(jìn)的算法,該網(wǎng)絡(luò)進(jìn)一步提高了目標(biāo)檢測(cè)的速度與精度。YOLOv7算法相比于其他算法,在5~160 FPS間的速度和精度方面表現(xiàn)得更優(yōu)秀。
YOLOv7算法采用了許多新的策略,如高效聚合注意力網(wǎng)絡(luò)(ELAN,efficient layer aggregation network)、基于級(jí)聯(lián)的模型(concatenation-based models)縮放、卷積重參數(shù)化等,并在速度和精度之間取得了很好的平衡。YOLOv7網(wǎng)絡(luò)結(jié)構(gòu)主要由輸入端(Input)、主干網(wǎng)絡(luò)(Backbone)、頸部網(wǎng)絡(luò)(Neck)和頭部(Head)組成,如圖1所示。Input模塊將輸入的圖像經(jīng)數(shù)據(jù)增強(qiáng)、裁剪、縮放等一系列處理后,將圖像統(tǒng)一變?yōu)?40×640像素,以便能滿足主干網(wǎng)絡(luò)的輸入要求。Backbone模塊主要由卷積(BConv)、ELAN層和MPConv層這3個(gè)部分組成。其中,BConv用于提取不同尺度的圖像特征;ELAN模塊結(jié)構(gòu)對(duì)不同尺度的連接路徑進(jìn)行控制,在預(yù)防了由于輸入信息和梯度信息在經(jīng)過(guò)多層網(wǎng)絡(luò)傳播后出現(xiàn)信息丟失的同時(shí)還提升了網(wǎng)絡(luò)精度。MPConv模塊通過(guò)融合當(dāng)前特征層和卷積處理后的信息的方式,從而提高網(wǎng)絡(luò)的提取能力。Neck模塊中,在頸部中引入路徑聚合特征金字塔網(wǎng)絡(luò)(PAFPN,path aggregation feature pyramid network)結(jié)構(gòu),加強(qiáng)不同層次間的特征聚合。在Head模塊中,YOLOv7利用3種不同大小尺寸的IDetect檢測(cè)頭,經(jīng)過(guò)重參數(shù)化輸出3個(gè)不同尺寸的預(yù)測(cè)結(jié)果。
圖1 YOLOv7網(wǎng)絡(luò)結(jié)構(gòu)圖
圖2 改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)圖
為了解決目前交通場(chǎng)景中目標(biāo)檢測(cè)由光照、遮擋、目標(biāo)小以及背景復(fù)雜等原因[13]而造成模型檢測(cè)精度較低,出現(xiàn)漏檢和誤檢現(xiàn)象的問(wèn)題,本文使用YOLOv7網(wǎng)絡(luò)進(jìn)行改進(jìn),改進(jìn)后的網(wǎng)絡(luò)模型如2所示,其中虛線框起來(lái)的部分即改進(jìn)的模塊。
原YOLOv7模型通過(guò)8倍、16倍和32倍下采樣的方式獲取3種不同大小的特征圖,其尺寸分別為80×80、40×40、20×20,并將他們輸入到特征融合網(wǎng)絡(luò)中。在特征提取過(guò)程中,淺層網(wǎng)絡(luò)更關(guān)注目標(biāo)的細(xì)節(jié)信息,例如目標(biāo)的紋理和邊緣特征[14];而深層網(wǎng)絡(luò)更注重于提取目標(biāo)的語(yǔ)義信息。由于特征圖經(jīng)過(guò)多次卷積和池化后,大部分遠(yuǎn)景小目標(biāo)特征信息會(huì)丟失,通過(guò)原始網(wǎng)絡(luò)的檢測(cè)頭很難檢測(cè)到這些信息。
交通道路場(chǎng)景下存在大量小尺度目標(biāo)和密集遮擋目標(biāo),而這些目標(biāo)特征信息大多存在于網(wǎng)絡(luò)更淺層,因此需要擴(kuò)大網(wǎng)絡(luò)檢測(cè)尺度范圍,檢測(cè)出更小尺度目標(biāo),提高模型的檢測(cè)性能。本文在YOLOv7模型上通過(guò)淺層網(wǎng)絡(luò)P2增加了一個(gè)新的檢測(cè)頭,模型結(jié)構(gòu)如圖3所示。該檢測(cè)頭通過(guò)主干網(wǎng)絡(luò)將輸入圖像經(jīng)過(guò)4倍下采樣操作而得到,具有160×160 的分辨率,該特征含有待檢測(cè)目標(biāo)更豐富的細(xì)節(jié)特征信息,可以增強(qiáng)模型對(duì)小目標(biāo)特征的提取能力。盡管添加小目標(biāo)檢測(cè)頭增加了模型的計(jì)算量和內(nèi)存開(kāi)銷,但是有助于增強(qiáng)微小目標(biāo)的檢測(cè)能力。
圖3 添加淺層網(wǎng)絡(luò)檢測(cè)層結(jié)構(gòu)圖
由于交通目標(biāo)檢測(cè)的圖像往往包含著許多復(fù)雜背景或者目標(biāo)之間存在遮擋的問(wèn)題,其圖像經(jīng)過(guò)多次卷積層提取特征后,存在許多非感興趣區(qū)域信息,這些信息會(huì)干擾模型對(duì)目標(biāo)的檢測(cè),從而影響了檢測(cè)效果。為了更好地提取交通檢測(cè)目標(biāo)的關(guān)鍵信息并弱化無(wú)關(guān)背景的干擾[15],本文對(duì)YOLOv7網(wǎng)絡(luò)中的ELAN模塊進(jìn)行改進(jìn),將多頭自注意力機(jī)制融入ELAN模塊中,如圖4所示。具體來(lái)說(shuō)是將ELAN模塊中的要使用Cat進(jìn)行融合的兩個(gè)3×3卷積改為多頭自注意力機(jī)制,可以在目標(biāo)檢測(cè)中建立長(zhǎng)距離依賴關(guān)鍵,而且對(duì)于路測(cè)圖像檢測(cè)表現(xiàn)出更好的效果,解決了路測(cè)圖像中因無(wú)效信息引起檢測(cè)效果不佳的問(wèn)題,能更高效地提取圖像特征信息。在特征層間添加全局注意力雖然可以有效增加目標(biāo)檢測(cè)的精度,但是也會(huì)使模型帶來(lái)額外的計(jì)算量和內(nèi)存開(kāi)銷,因此本文只在主干網(wǎng)絡(luò)Backbone中以最低分辨率的ELAN層(即ELAN4模塊)進(jìn)行多頭注意力的融合。
圖4 改進(jìn)的EL-MHSA模塊
多頭注意力機(jī)[16]是一種全局操作,在網(wǎng)絡(luò)中融入多頭注意力機(jī)制可以有效地獲取特征圖中目標(biāo)周圍的上下文信息,增強(qiáng)模型全局信息的關(guān)注能力。多頭注意力機(jī)制的結(jié)構(gòu)如圖5所示。MHSA由多個(gè)自注意力模塊組成,每個(gè)Self-Attention模塊在不同空間上捕捉全局特征信息。
圖5 多頭注意力機(jī)制結(jié)構(gòu)圖
Q、K、V分別為 Query、Key、Value 矩陣,1×1 表示逐點(diǎn)卷積,WQ、WK、WV為注意力權(quán)重,整個(gè)過(guò)程中所學(xué)習(xí)并更新的就是注意力權(quán)重,RW和RK分別為像素a到b之間寬、高的相對(duì)位置編碼信息。使用多頭注意力機(jī)制可以將特征圖的全局信息與CNN卷積的局部信息相結(jié)合,從而形成參數(shù)量較少且能力更強(qiáng)的特征圖[17]。
由于待檢測(cè)的交通目標(biāo)尺寸差異頗大且分布不均勻,使用原網(wǎng)絡(luò)來(lái)檢測(cè)時(shí)會(huì)出現(xiàn)漏檢誤檢的情況,因此在網(wǎng)絡(luò)中引入?yún)f(xié)調(diào)注意這種高效的注意力機(jī)制,讓模型更加關(guān)注自己感興趣的部分,增強(qiáng)網(wǎng)絡(luò)對(duì)檢測(cè)目標(biāo)的提取能力。
CA注意力機(jī)制相比較傳統(tǒng)的SE注意力機(jī)制,它將位置信息嵌入到通道注意力機(jī)制中,避免使用2維全局池化造成的位置信息的丟失[18]。CA注意力機(jī)制還是一種輕量化的模型,它可以靈活地插入任何的網(wǎng)絡(luò),還不會(huì)產(chǎn)生大量的計(jì)算開(kāi)銷。
CA的結(jié)構(gòu)如圖6所示,其中XAvg Pool和YAvg Pool分別表示沿著水平和垂直方向進(jìn)行一維全局池化,進(jìn)行各個(gè)通道間特征的聚合,使網(wǎng)絡(luò)結(jié)構(gòu)可以獲得更多的感受野。
圖6 CA注意力機(jī)制結(jié)構(gòu)圖
此過(guò)程可以表示為:
(1)
(2)
f=δ{F1([zh,zw])}
(3)
其中:[ ,]表示在某一空間維度進(jìn)行拼接操作。然后將沿著空間維度拆分的兩個(gè)張量fh和fw,利用1×1卷積、Fh、Fw將其變?yōu)榫哂邢嗤卣鞯膹埩?,得到結(jié)果如下所示:
gh=δ[Fh(fh)]
(4)
gw=δ[Fw(fw)]
(5)
最后,將得到的結(jié)果與輸入特征圖相乘,得到CA輸出結(jié)果如式(6)所示:
(6)
通過(guò)向YOLOv7網(wǎng)絡(luò)中插入CA模塊,可以使模型更加關(guān)注自己感興趣的區(qū)域,削弱復(fù)雜背景下無(wú)關(guān)信息的干擾,從而提高模型的檢測(cè)效果。
YOLOv7網(wǎng)絡(luò)的損失函數(shù)同YOLOv5網(wǎng)絡(luò)相同,都是由置信度損失、分類損失和坐標(biāo)損失這3部分組成。YOLOv7網(wǎng)絡(luò)的坐標(biāo)損失采用CIoU來(lái)計(jì)算,是在先前的損失函數(shù)的基礎(chǔ)上增加了對(duì)寬高比之間的考慮,但是并沒(méi)有考慮預(yù)測(cè)框和真實(shí)框之間的角度和比例,即真實(shí)框與預(yù)測(cè)框之間的方向不匹配的問(wèn)題。為此,Gevorgyan等人在CIoU的基礎(chǔ)上提出了SIoU損失函數(shù)算法[19],它不僅聚合了以往損失函數(shù)的優(yōu)點(diǎn),而且還考慮了真實(shí)框與預(yù)測(cè)框之間的矢量角,并重新定義了損失函數(shù)。
簡(jiǎn)單來(lái)說(shuō),SIoU損失函數(shù)更加全面細(xì)致地考慮了目標(biāo)檢測(cè)中各個(gè)因素的影響,使得模型更加準(zhǔn)確地學(xué)習(xí)目標(biāo)特征和位置信息,從而提高檢測(cè)精度。因此,本文采用性能更加高效的SIoU來(lái)代替模型的CIoU損失函數(shù),增加了網(wǎng)絡(luò)損失函數(shù)的收斂性,從而提高了模型的精度。SIOU 損失函數(shù)由4個(gè)Cost函數(shù)組成:即角度損失、距離損失、形狀損失和IoU損失。
角度損失是指在目標(biāo)檢測(cè)任務(wù)中,用于度量預(yù)測(cè)框與真實(shí)框之間角度差異的一種損失函數(shù)。其計(jì)算方式通常采用如余弦距離等方法,通過(guò)將角度誤差映射為連續(xù)值來(lái)進(jìn)行優(yōu)化。角度損失的引入可以進(jìn)一步提升目標(biāo)檢測(cè)模型對(duì)于目標(biāo)位置和方向的識(shí)別能力,提高模型的精度和魯棒性。角度損失定義為:
(7)
為了進(jìn)一步提高目標(biāo)檢測(cè)模型的精度和可靠性,角度成本計(jì)算被引入到距離成本中。重新定義的距離成本不僅考慮了預(yù)測(cè)框與真實(shí)框之間的位置差異,還融合了角度誤差的測(cè)量,通過(guò)同時(shí)優(yōu)化位置和方向的損失函數(shù)來(lái)學(xué)習(xí)目標(biāo)檢測(cè)任務(wù)中的特征表示。這種重新定義的距離成本相對(duì)于傳統(tǒng)的只考慮位置的距離計(jì)算方式,能夠更準(zhǔn)確地對(duì)目標(biāo)位置和方向進(jìn)行建模,并在目標(biāo)尺度和旋轉(zhuǎn)角度變化較大的情況下表現(xiàn)出更好的魯棒性和泛化能力。角度成本計(jì)算被應(yīng)用為距離成本,為此重新定義距離成本如下:
(8)
距離損耗是目標(biāo)檢測(cè)中用于度量預(yù)測(cè)框和真實(shí)框之間距離差異的一種損失函數(shù)。它通常采用均方誤差、IoU等方式來(lái)計(jì)算。在距離損耗的優(yōu)化過(guò)程中,除了考慮位置信息,還需要關(guān)注目標(biāo)的尺度和旋轉(zhuǎn)角度等其他關(guān)鍵特征。距離損耗定義為:
(9)
由以上分析可知,在目標(biāo)檢測(cè)任務(wù)中,綜合考慮位置、尺度和旋轉(zhuǎn)角度等關(guān)鍵特征的SIoULoss損失函數(shù)公式可以表示為:
(10)
本文實(shí)驗(yàn)環(huán)境在Linux系統(tǒng)中運(yùn)行,利用兩塊內(nèi)存為32 G的v100 GPU進(jìn)行訓(xùn)練,Python版本為3.8,CUDA版本為10.2,深度學(xué)習(xí)框架為Pytorch1.8.0。
模型訓(xùn)練參數(shù)設(shè)置:迭代次數(shù)epoch=100,batch_size=8,學(xué)習(xí)率選取0.01,權(quán)重衰減系數(shù)為0.000 5,動(dòng)量為0.937,輸入圖片采用640×640的分辨率,其余均采用默認(rèn)設(shè)置。
本文選用由伯克利AI實(shí)驗(yàn)室發(fā)布的公開(kāi)交通場(chǎng)景數(shù)據(jù)集BDD 100 K中的10 K來(lái)驗(yàn)證改進(jìn)的YOLOv7模型在復(fù)雜交通情況下的有效性和優(yōu)越性。該數(shù)據(jù)集是在6種不同天氣、場(chǎng)景和白天、黃昏、夜晚共3種不同時(shí)間段的所采集的圖[20],且該數(shù)據(jù)集有Person、Rider、Car、Bus、Truck、Bike、Motor、Traffic light、Traffic sign、Train這10個(gè)感興趣的對(duì)象類別,其各類別標(biāo)簽數(shù)量如圖7所示,該數(shù)據(jù)集基本上涵蓋了交通檢測(cè)中所出現(xiàn)的所有基本目標(biāo)。
圖7 BDD100K數(shù)據(jù)集各類標(biāo)簽分布圖
在本次實(shí)驗(yàn)中,本文按照8∶1∶1的比例對(duì)數(shù)據(jù)集進(jìn)行了劃分。其中,訓(xùn)練集包含8 000張圖像,驗(yàn)證集包含1 000張圖像,測(cè)試集包含1 000張圖像。這些數(shù)據(jù)集的使用,旨在評(píng)估和改進(jìn)YOLOv7模型在交通場(chǎng)景下的表現(xiàn),以期提高交通檢測(cè)的準(zhǔn)確度和效率。
本文的性能評(píng)價(jià)主要采用以下4個(gè)指標(biāo):檢測(cè)精度(AP)、平均檢測(cè)精度(mAP)、準(zhǔn)確率-召回率(P-R)曲線以及檢測(cè)速度(FPS)。相關(guān)指標(biāo)的計(jì)算公式如下所示,旨在綜合評(píng)估本文提出的基于YOLOv7的交通目標(biāo)檢測(cè)模型在不同方面的表現(xiàn):
(11)
(12)
(13)
(14)
式中,TP為模型預(yù)測(cè)正確的正樣本數(shù),F(xiàn)p為模型誤檢的正樣本數(shù),F(xiàn)N為模型漏檢的正樣本數(shù)。需要注意的是,由于檢測(cè)結(jié)果是基于一定置信度閾值得出的,因此在計(jì)算AP時(shí)需要對(duì)不同置信度下的結(jié)果進(jìn)行平均化處理。具體而言,需要計(jì)算多個(gè)不同置信度閾值下的AP值,然后求其平均值,得到最終的mAP指標(biāo)。
為了更好地驗(yàn)證本文所提出的改進(jìn)模型與方法的有效性,使用BDD00K數(shù)據(jù)集進(jìn)行消融實(shí)驗(yàn)。不同的改進(jìn)策略使得模型的結(jié)構(gòu)、檢測(cè)精度、速度、參數(shù)量也進(jìn)行變化,具體的實(shí)驗(yàn)結(jié)果如表1所示。
表1 算法在BDD100K數(shù)據(jù)集上的消融實(shí)驗(yàn)結(jié)果
模型1為原始的YOLOv7算法的實(shí)驗(yàn)結(jié)果,將本次結(jié)果作為后面幾組實(shí)驗(yàn)的對(duì)比基準(zhǔn),檢測(cè)的mAP@0.5為57.3%,mAP@0.5∶0.95為31.9%,檢測(cè)速度是最快的。模型2在原網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上引入EL-MHSA模塊,使BDD100K數(shù)據(jù)集mAP@0.5和mAP@0.5∶0.95分別提升了1.4%和0.9%,提升了網(wǎng)絡(luò)的整體性能。模塊3在頸部添加了CA協(xié)調(diào)注意力,挖掘各個(gè)通道間的相互依賴關(guān)系,增強(qiáng)對(duì)目標(biāo)特征的提取能力,使mAP@0.5和mAP@0.5∶0.95分別提升了0.6%和0.2%。模塊4通過(guò)增加一個(gè)小目標(biāo)檢測(cè)層保留了更多淺層細(xì)節(jié)信息,使模型的mAP@0.5和mAP@0.5∶0.95分別提升了2.3%和1.0%。模塊5將損失函數(shù)改為SIoU,mAP@0.5和mAP@0.5∶0.95分別提升了1.6%和0.4%,雖然提升的效果較小,但是在模型收斂方面有著較好的結(jié)果。
通過(guò)上述實(shí)驗(yàn),發(fā)現(xiàn)模塊4添加小檢測(cè)頭與模塊6整體改進(jìn)的實(shí)驗(yàn)數(shù)據(jù)相差不大,這是因?yàn)閷⑸鲜鏊心K融入網(wǎng)絡(luò)中后,模型參數(shù)量增加,網(wǎng)絡(luò)結(jié)構(gòu)相比單加模塊的方式更為復(fù)雜,影響了檢測(cè)精度??偟膩?lái)說(shuō),每種改進(jìn)的策略都可以讓模型性能有不同程度的提升。將每個(gè)模塊都融入后的算法與YOLOv7原算法相比,mAP@0.5和mAP@0.5:0.95分別提升2.5%和1.4%,表明該改進(jìn)算法可以促進(jìn)網(wǎng)絡(luò)對(duì)交通目標(biāo)特征的學(xué)習(xí),更易避免誤檢與漏檢情況的發(fā)生。該算法檢測(cè)速度為96.2 FPS,比最快的YOLOv7降低了10.2,但是完全可以滿足檢測(cè)實(shí)時(shí)性的要求。
為了驗(yàn)證本文算法模型的優(yōu)越性,讓本文改進(jìn)算法和YOLOv7算法各項(xiàng)參數(shù)指標(biāo)相同的情況下,將兩個(gè)算法在BDD100K數(shù)據(jù)集中訓(xùn)練的各個(gè)類別的AP值進(jìn)行對(duì)比,結(jié)果如圖8所示。從圖中明顯可以看到本文改進(jìn)算法的每個(gè)類別的平均精度都高于原始算法。其中,car的AP值從80.5%到84.1%,提升了3.6個(gè)百分點(diǎn);bus的AP值從66.4%到68.6%,提高了2.2個(gè)百分點(diǎn);person的AP值從68.2%到71.1%,提高了1.9個(gè)百分點(diǎn);bike的AP值從50.8%到52.9%,提高了2.1個(gè)百分點(diǎn);truck的AP值從67.9%到69.1%,提高了1.2個(gè)百分點(diǎn);motor的AP值從49.1%到53.5%,提高了4.4個(gè)百分點(diǎn);rider的AP值從50.1%到52.4%,提高了2.3個(gè)百分點(diǎn);traffic sign的AP值從73.6%到74.7%,提升了0.9個(gè)百分點(diǎn);traffic light的AP值從68%到71.6%,提升了3.6個(gè)百分點(diǎn);尤其是train目標(biāo),由于檢測(cè)物體標(biāo)注過(guò)于少,原算法沒(méi)有檢測(cè)出這個(gè)物體,而改進(jìn)的算法檢測(cè)出精度為1.8%。從以上數(shù)據(jù)可以得出,本文改進(jìn)的算法相比于YOLOv7原算法表現(xiàn)出更為優(yōu)越的性能,對(duì)交通道路場(chǎng)景下檢測(cè)任務(wù)具有更可觀的檢測(cè)效果。
圖8 改進(jìn)算法與YOLOv7算法在BDD100K中10個(gè)類別比較
為了更加直觀地展示出本文改進(jìn)算法在真實(shí)場(chǎng)景下的效果,在BDD100K數(shù)據(jù)集的測(cè)試集中隨機(jī)選擇了多張不同交通場(chǎng)景下的圖片進(jìn)行對(duì)比分析,如圖9所示。其中,左側(cè)為本文改進(jìn)算法的結(jié)果圖,右側(cè)為YOLOv7算法的結(jié)果圖。
圖9 不同交通場(chǎng)景下模型檢測(cè)對(duì)比結(jié)果
圖9的(a)組圖片檢測(cè)的是背景比較復(fù)雜的場(chǎng)景,右圖將車子上面的梯子誤檢成交通燈,左圖并沒(méi)有出現(xiàn)誤檢的情況;(b)組圖片是在夜間圖像像素模糊情況下進(jìn)行檢測(cè)的結(jié)果,右圖將墻的邊沿檢測(cè)成了交通標(biāo)志,而左圖正確地檢測(cè)出目標(biāo);(c)組圖片是在黃昏時(shí)光照不均勻的情況下的檢測(cè)結(jié)果,明顯可以看出,右圖由于光線昏暗且樹(shù)木遮掩,沒(méi)有識(shí)別出車輛,而左圖準(zhǔn)確地檢測(cè)出被遮掩的車輛;(d)組圖片在目標(biāo)交叉密集時(shí),左圖明顯比右圖的精度檢測(cè)高??偟膩?lái)說(shuō),本文改進(jìn)的算法相對(duì)于YOLOv7算法表現(xiàn)出了更好的性能,一定程度上改善了漏檢和誤檢問(wèn)題,可以更好地適應(yīng)于交通場(chǎng)景下的檢測(cè)任務(wù)。
3.6.1 本文算法與其他同類改進(jìn)算法對(duì)比試驗(yàn)
本實(shí)驗(yàn)將本文改進(jìn)的算法與其它采用BDD100K公共數(shù)據(jù)集且應(yīng)用于交通目標(biāo)檢測(cè)的改進(jìn)算法的性能進(jìn)行比較,如表2所示。本文改進(jìn)的算法相比AFFB_YOLOv5s[20]和M-YOLO[21]算法的檢測(cè)精度分別高了8.3%與3.0%,檢測(cè)速度分別高了20.3和33.2。可見(jiàn),本文改進(jìn)的算法相較于其他改進(jìn)的算法表現(xiàn)出更為顯著的優(yōu)勢(shì),可以更好地解決交通目標(biāo)檢測(cè)中出現(xiàn)漏檢與誤檢問(wèn)題的情況。
表2 本文算法與同類改進(jìn)算法對(duì)比結(jié)果
3.6.2 本文算法與其他主流算法對(duì)比實(shí)驗(yàn)
本實(shí)驗(yàn)將改進(jìn)的算法與Faster R-CNN、SSD、YOLO-v3[22]、YOLOv4[24]、YOLOv5和YOLOv7算法在同等條件下進(jìn)行實(shí)驗(yàn)對(duì)比,實(shí)驗(yàn)結(jié)果如表3所示。
表3 不同算法在BDD100K數(shù)據(jù)集的性能對(duì)比結(jié)果
本文通過(guò)改進(jìn)算法,針對(duì)現(xiàn)有目標(biāo)檢測(cè)算法在實(shí)時(shí)性和精度之間的權(quán)衡問(wèn)題,提出了一種新的解決方案。實(shí)驗(yàn)結(jié)果表明,F(xiàn)aster R-CNN算法的mAP@0.5值為30.7%、FPS值為14.2,檢測(cè)速度太低,無(wú)法滿足實(shí)時(shí)性的需求;SSD算法的mAP@0.5值為28.1%、FPS值為39,相比Faster R-CNN,在提高速度方面有提升,但是檢測(cè)精度下降了2.6個(gè)百分點(diǎn);而YOLOv3、YOLOv44和YOLOv5算法在檢測(cè)速度上都有很大的提升,但其檢測(cè)精度仍然存在局限。
相比之下,本文改進(jìn)算法在速度和精度方面達(dá)到了一個(gè)良好的平衡。雖然相較于原算法,速度方面有所降低,但96.2 FPS的速度仍然是除原算法之外最優(yōu)的,完全可以滿足實(shí)時(shí)檢測(cè)任務(wù)的需求。在精度方面,本文算法在mAP@0.5和mAP@0.5∶0.95等多個(gè)評(píng)價(jià)指標(biāo)上排列第一,明顯優(yōu)于其他主流算法。因此,本文算法可以在實(shí)時(shí)性和精度之間取得一個(gè)更好的平衡,為目標(biāo)檢測(cè)任務(wù)提供了更加高效和準(zhǔn)確的解決方案。
本文在YOLOv7網(wǎng)絡(luò)的基礎(chǔ)上進(jìn)行改進(jìn),并將改進(jìn)算法應(yīng)用于交通場(chǎng)景的目標(biāo)檢測(cè)中。通過(guò)在YOLOv7原網(wǎng)絡(luò)中融入全局注意力機(jī)制,設(shè)計(jì)一個(gè)新的EL-MHSA模塊,獲取全局結(jié)構(gòu)化信息;通過(guò)在頸部網(wǎng)絡(luò)加入CA協(xié)調(diào)注意力機(jī)制,使其更好地提取細(xì)節(jié)特征;通過(guò)添加一個(gè)淺層網(wǎng)絡(luò)檢測(cè)頭,進(jìn)一步提取小目標(biāo)特征信息;通過(guò)改變網(wǎng)絡(luò)損失函數(shù),減輕了模型收斂不穩(wěn)定問(wèn)題。在BDD100K數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,該改進(jìn)算法檢測(cè)結(jié)果優(yōu)于其它主流目標(biāo)檢測(cè)模型,檢測(cè)精度在達(dá)到59.8%mAP的同時(shí),檢測(cè)速度為96.2 FPS,該算法可以在保證檢測(cè)速度的同時(shí)還可以提高算法精度,在一定程度上減輕了誤檢和漏檢問(wèn)題,能夠有效地完成交通場(chǎng)景下的目標(biāo)檢測(cè)任務(wù)。但是,由于模型中添加檢測(cè)頭和注意力機(jī)制等方法使得模型復(fù)雜度上升,參數(shù)量變大,檢測(cè)速度稍有下降,后期可以考慮采用更加高級(jí)的特征提取算法和更加先進(jìn)的目標(biāo)檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu),以進(jìn)一步提高模型的檢測(cè)精度和速度。此外,還可以探索基于深度學(xué)習(xí)的模型量化和剪枝技術(shù),以減小模型的計(jì)算和存儲(chǔ)開(kāi)銷,從而提高模型在邊緣設(shè)備上的應(yīng)用效果。