鄧天民,劉旭慧,王 麗,王春霞
重慶交通大學(xué) 交通運(yùn)輸學(xué)院,重慶 400074
車(chē)輛檢測(cè)作為目標(biāo)檢測(cè)的具體應(yīng)用領(lǐng)域,對(duì)構(gòu)建智能化交通系統(tǒng)起著關(guān)鍵性作用。在汽車(chē)自動(dòng)駕駛系統(tǒng)和高級(jí)輔助駕駛系統(tǒng)(advanced driver assistance systems,ADAS)中,車(chē)輛檢測(cè)的準(zhǔn)確性直接影響到行車(chē)安全。隨著計(jì)算機(jī)硬件水平的提升,基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的目標(biāo)檢測(cè)方法取得了驚人的成果[1],掀起了許多學(xué)者對(duì)深度學(xué)習(xí)的研究熱潮。
目前,基于深度學(xué)習(xí)的車(chē)輛檢測(cè)方法主要分為兩類(lèi)。一類(lèi)是兩階段檢測(cè)算法,此類(lèi)算法檢測(cè)準(zhǔn)確率和定位精度較高,但缺點(diǎn)是訓(xùn)練速度慢,實(shí)時(shí)性差。其中代表性的算法有R-CNN[2]、Fast R-CNN[3]、Faster R-CNN[4]等。宋煥生等[5]通過(guò)改進(jìn)Faster R-CNN 算法實(shí)現(xiàn)了對(duì)復(fù)雜場(chǎng)景下的車(chē)輛檢測(cè),把場(chǎng)景中的目標(biāo)檢測(cè)問(wèn)題轉(zhuǎn)換為二分類(lèi)問(wèn)題,雖然基本能滿(mǎn)足實(shí)時(shí)性要求,但模型對(duì)遠(yuǎn)場(chǎng)景下的小目標(biāo)車(chē)輛無(wú)法精確識(shí)別;楊薇等[6]提出了一種改進(jìn)的Faster R-CNN 車(chē)輛實(shí)時(shí)檢測(cè)算法,訓(xùn)練時(shí)采用多尺度策略,提高了模型泛化能力,但對(duì)于復(fù)雜環(huán)境下車(chē)輛密集、遮擋嚴(yán)重時(shí)檢測(cè)效果較差。
另一類(lèi)是一階段檢測(cè)算法,此類(lèi)算法不需要生成候選框,可直接預(yù)測(cè)物體的位置與類(lèi)別。其中代表性的算法有YOLO(you only look once)系列算法[7-10]以及單擊多盒檢測(cè)器(single shot multibox detector,SSD)[11]等。Wang等[12]提出了一種基于改進(jìn)的YOLOv3-Tiny的車(chē)輛檢測(cè)方法,加入空間金字塔池化模塊,增強(qiáng)了模型的特征提取能力,取得了較高的檢測(cè)精度,但對(duì)于遠(yuǎn)場(chǎng)景下小目標(biāo)的檢測(cè)效果較差;郭健忠等[13]提出一種改進(jìn)SSD的車(chē)輛小目標(biāo)檢測(cè)算法,用MobileNetv2 替換SSD 中的AGG-16 作為檢測(cè)網(wǎng)絡(luò),提高了對(duì)小尺度目標(biāo)的檢測(cè)能力,但在車(chē)輛密集且遮擋較為嚴(yán)重的情況下仍存在漏檢較多的問(wèn)題。
針對(duì)上述問(wèn)題,提出結(jié)合級(jí)聯(lián)注意力機(jī)制的車(chē)輛檢測(cè)算法,即CAM-YOLO(cascading attention mechanismyou only look once),考慮到以往車(chē)輛檢測(cè)算法對(duì)于復(fù)雜背景車(chē)輛檢測(cè)精度較低,設(shè)計(jì)級(jí)聯(lián)注意力特征提取模塊CAFEM(cascading attention feature extraction module),分別從通道和空間兩個(gè)維度挖掘重要特征信息,抑制干擾特征信息,將其嵌入基礎(chǔ)主干網(wǎng)絡(luò),使網(wǎng)絡(luò)更具指向性的提取復(fù)雜背景車(chē)輛目標(biāo)的關(guān)鍵信息;為了準(zhǔn)確檢測(cè)遠(yuǎn)場(chǎng)景小目標(biāo)車(chē)輛,采取多尺度特征檢測(cè)方法,基于淺層網(wǎng)絡(luò)重點(diǎn)提取目標(biāo)位置信息,增加大尺度檢測(cè)層以提取小目標(biāo)的關(guān)鍵信息,提高目標(biāo)檢測(cè)器對(duì)遠(yuǎn)場(chǎng)景下小目標(biāo)車(chē)輛的檢測(cè)性能;為了實(shí)現(xiàn)密集遮擋車(chē)輛準(zhǔn)確檢測(cè),使用DIOU_NMS后處理方法,精準(zhǔn)回歸預(yù)測(cè)框,解決目標(biāo)檢測(cè)器分類(lèi)分?jǐn)?shù)和定位精度不匹配的問(wèn)題,提升密集遮擋目標(biāo)車(chē)輛的檢測(cè)精度。與現(xiàn)有檢測(cè)方法進(jìn)行對(duì)比分析發(fā)現(xiàn),在執(zhí)行復(fù)雜背景、遠(yuǎn)場(chǎng)景以及密集遮擋下的車(chē)輛檢測(cè)任務(wù)時(shí),CAM-YOLO 算法整體性能更強(qiáng)。
YOLOv5 是一種利用回歸思想處理圖片的目標(biāo)檢測(cè)網(wǎng)絡(luò),YOLOv5 模型共包含四個(gè)版本YOLOv5s、YOLOv5m、YOLOv5l 和YOLOv5x,模型參數(shù)和性能依次提升。YOLOv5s 是Yolov5 系列中最小的模型結(jié)構(gòu),模型寬度和深度分別為0.33 和0.5,YOLOv5m、YOLOv5l 以及YOLOv5x 在YOLOv5s 模型基礎(chǔ)上不斷加深加寬。本文采用YOLOv5s作為基線算法。YOLOv5s包括input、Backbone、Neck和Head輸出四個(gè)部分。
在數(shù)據(jù)輸入端,YOLOv5s 采用Mosaic 數(shù)據(jù)增強(qiáng)技術(shù),將四張圖片進(jìn)行隨機(jī)裁剪拼接至一張圖像中作為訓(xùn)練數(shù)據(jù),使輸入端同時(shí)獲得四張圖片的信息,豐富圖像背景信息,并提出了自適應(yīng)錨框,自動(dòng)計(jì)算圖片的最佳縮放系數(shù)。
在Backbone中,YOLOv5s主要包括Focus結(jié)構(gòu)、C3結(jié)構(gòu)和SPP結(jié)構(gòu)。Focus結(jié)構(gòu)主要是將輸入圖像進(jìn)行切片操作,增加特征通道數(shù)并減小特征尺寸,減少浮點(diǎn)運(yùn)算量的同時(shí)提升運(yùn)算速度,并且減少了模型層數(shù)。C3結(jié)構(gòu)由Conv 模塊、Bottleneck 模塊和Concat 模塊組成,增加特征圖信息,提高模型的學(xué)習(xí)能力。SPP結(jié)構(gòu)使用多個(gè)最大池化操作,對(duì)于不同的輸入特征SPP結(jié)構(gòu)都產(chǎn)生固定大小的輸出,SPP處理結(jié)果進(jìn)一步提升了不同尺度和長(zhǎng)寬比輸入圖像的尺度不變性。
Neck 的核心為特征金字塔網(wǎng)絡(luò)[14](feature pyramid network,F(xiàn)PN)和路徑聚合網(wǎng)絡(luò)[15](path aggregation network,PAN),其主要作用為增強(qiáng)網(wǎng)絡(luò)模型對(duì)不同縮放尺度對(duì)象的檢測(cè)。特征金字塔網(wǎng)絡(luò)將強(qiáng)語(yǔ)義特征從深層傳遞至淺層,路徑聚合網(wǎng)絡(luò)將強(qiáng)位置特征從淺層傳遞到深層,這兩種結(jié)構(gòu)共同加強(qiáng)了Neck 結(jié)構(gòu)的特征融合能力。
Head 輸出端通常包括Bounding box 損失函數(shù)和NMS(non-maximum suppression,非極大值抑制)。YOLOv5s的Bounding box回歸損失函數(shù)有效地解決了前期YOLO系列無(wú)法優(yōu)化邊界框不相交的問(wèn)題。最后,YOLOv5s 使用加權(quán)NMS 篩選多目標(biāo)框,用來(lái)處理冗余預(yù)測(cè)框的問(wèn)題,提高了網(wǎng)絡(luò)識(shí)別的準(zhǔn)確性。YOLOv5s網(wǎng)絡(luò)整體結(jié)構(gòu)如圖1所示。
CAM-YOLO算法的核心思想是盡可能保證目標(biāo)檢測(cè)器實(shí)時(shí)檢測(cè)性能的前提下,著重關(guān)注如何挖掘有益于復(fù)雜背景、遠(yuǎn)場(chǎng)景以及密集遮擋下車(chē)輛檢測(cè)的關(guān)鍵特征信息,通過(guò)提出的級(jí)聯(lián)注意力特征提取模塊CAFEM、多尺度特征檢測(cè)方法以及DIOU_NMS目標(biāo)檢測(cè)后處理方法來(lái)提升基準(zhǔn)模型YOLOv5s在車(chē)輛目標(biāo)檢測(cè)任務(wù)中的表現(xiàn)。CAM-YOLO算法框架結(jié)構(gòu)圖如圖2所示。
圖2 CAM-YOLO網(wǎng)絡(luò)Fig.2 CAM-YOLO network
在卷積神經(jīng)網(wǎng)絡(luò)中,圖像經(jīng)過(guò)多個(gè)卷積層,目標(biāo)特征位置信息與語(yǔ)義信息被提取出來(lái),但是對(duì)于復(fù)雜背景圖像,目標(biāo)檢測(cè)器受到無(wú)關(guān)背景信息的干擾,即使經(jīng)過(guò)了多層卷積,也很難提取到目標(biāo)重要特征信息。為更好地提取復(fù)雜背景下車(chē)輛目標(biāo)的關(guān)鍵信息,弱化無(wú)關(guān)背景信息的干擾,本節(jié)結(jié)合通道域注意力機(jī)制和空間域注意力機(jī)制,提出級(jí)聯(lián)組合的混合域注意力機(jī)制,沿著通道維度獲取通道間的相互依賴(lài)關(guān)系,在空間維度上進(jìn)一步挖掘特征圖的上下文信息,實(shí)現(xiàn)圖片的關(guān)鍵信息提取。級(jí)聯(lián)注意力特征提取模塊由C3 模塊、通道注意力模塊(channel attention module,CAM)以及空間注意力模塊(spatial attention module,SAM)級(jí)聯(lián)組成。C3 模塊由Conv 模塊、Bottleneck 模塊和Concat 模塊組成,C3 將輸入特征分為不同分支,分別進(jìn)行卷積使得特征通道數(shù)減半,其中一個(gè)分支進(jìn)行Bottleneck 操作,經(jīng)過(guò)Concat 將兩個(gè)分支特征合并,增加特征圖信息,提高模型的學(xué)習(xí)能力。
通道注意力模塊重點(diǎn)關(guān)注有意義的輸入特征圖,并且計(jì)算各個(gè)通道之間的內(nèi)在關(guān)系,對(duì)輸入特征F使用全局均值池化(global average pooling,GAP)并得到Facvg,以集成每個(gè)通道上的空間信息;同時(shí)使用全局最大池化(global max pooling,GMP)并得到Fcmax,以獲得目標(biāo)更精細(xì)的特征。將Fcavg和Fcmax接入由多層感知器(multilayer perceptron,MLP)構(gòu)成的共享神經(jīng)網(wǎng)絡(luò),為減少參數(shù),避免模型運(yùn)算量的增加,將多層感知器中間層大小設(shè)為Rc/r×1×1(r為衰減比率)。將經(jīng)過(guò)多層感知器的new_Fcavg和new_Fcmax進(jìn)行對(duì)應(yīng)元素相加,最終得到通道注意力圖,CAM結(jié)構(gòu)如圖3所示。整個(gè)流程用公式表示為:
圖3 通道注意力模塊Fig.3 Channel attention module
式中,Mc(·)表示通道注意力模塊的內(nèi)部操作,F(xiàn)為輸入圖像,σ為sigmoid 函數(shù),MLP(·)表示混合卷積層的內(nèi)部操作。
空間注意力模塊從空間層面上關(guān)注特征圖的內(nèi)在關(guān)系。為得到特征圖的通道信息,首先同時(shí)沿著通道軸對(duì)其進(jìn)行全局均值池化和全局最大池化操作,分別關(guān)注特征圖的全局特征和最突出特征,將這兩種方式的池化結(jié)構(gòu)Fsavg∈R1×H×W和Fsmax∈R1×H×W進(jìn)行拼接,再經(jīng)過(guò)7×7 的標(biāo)準(zhǔn)卷積層以及Sigmoid 激活函數(shù),最終得到空間注意力圖,SAM結(jié)構(gòu)如圖4所示。整個(gè)流程用公式表示為:
圖4 空間注意力模塊Fig.4 Spatial attention module
式中,Ms(·)表示空間注意力模塊的內(nèi)部操作,F(xiàn)為輸入圖像,σ為sigmoid函數(shù),f7×7表示卷積核為7×7的卷積操作,AvgPool(·)和MaxPool(·)分別表示平均池化和最大池化操作。
通道注意力模塊CAM忽視了空間域內(nèi)部的信息交互,將一個(gè)通道內(nèi)的信息進(jìn)行全局加權(quán)處理;空間注意力模塊SAM將輸入特征的每個(gè)通道進(jìn)行相同的空間加權(quán)處理,忽視了通道域的信息交互。因此,將通道注意力模塊與空間注意力模塊通過(guò)級(jí)聯(lián)的方式連接,旨在從全局特征信息出發(fā),沿著通道與空間兩個(gè)維度深入挖掘復(fù)雜背景下輸入特征內(nèi)部的關(guān)鍵信息,進(jìn)而篩選出任務(wù)相關(guān)的重要信息,弱化不相關(guān)信息的干擾。此外,將C3模塊與其相結(jié)合,首先提取特征圖的特征信息,能夠更好地加強(qiáng)模型的學(xué)習(xí)能力。級(jí)聯(lián)注意力特征提取模塊CAFEM網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 CAFEM模塊Fig.5 CAFEM module
原始YOLOv5s 骨干網(wǎng)絡(luò)使用3 種不同尺寸的特征圖來(lái)檢測(cè)不同大小的目標(biāo),該網(wǎng)絡(luò)將原始輸入圖像通過(guò)8倍下采樣、16倍下采樣、32倍下采樣得到3種不同尺寸大小的特征圖,將其輸入到特征融合網(wǎng)絡(luò)中。在特征提取過(guò)程中,淺層網(wǎng)絡(luò)提取目標(biāo)紋理邊緣特征,具有更多的細(xì)節(jié)內(nèi)容描述;深層網(wǎng)絡(luò)提取目標(biāo)豐富的語(yǔ)義信息,但削弱了對(duì)遠(yuǎn)場(chǎng)景小目標(biāo)位置信息和細(xì)節(jié)信息的感知,造成大量遠(yuǎn)場(chǎng)景小目標(biāo)特征信息的丟失。
針對(duì)以上問(wèn)題,結(jié)合多尺度特征檢測(cè)方法,本文在YOLOv5s 骨干網(wǎng)絡(luò)的基礎(chǔ)上對(duì)特征圖增加一次4 倍下采樣操作,如圖6 所示,得到一個(gè)含有更多細(xì)節(jié)信息的大尺度特征圖,該特征圖感受野較小,位置信息更為豐富,可以提高目標(biāo)檢測(cè)器對(duì)遠(yuǎn)場(chǎng)景小目標(biāo)的特征提取能力。
圖6 CAM-YOLO特征提取模型Fig.6 CAM-YOLO feature extraction model
本文共利用4 個(gè)不同尺度特征層的淺層和深層特征,融合豐富的特征信息以指導(dǎo)車(chē)輛圖像遠(yuǎn)場(chǎng)景下小目標(biāo)檢測(cè)任務(wù)。同時(shí),特征金字塔網(wǎng)絡(luò)FPN自上向下傳遞深層次語(yǔ)義特征,路徑聚合網(wǎng)絡(luò)PAN自下向上傳遞目標(biāo)位置信息,如圖7所示,將FPN與PAN相結(jié)合,增強(qiáng)模型對(duì)遠(yuǎn)場(chǎng)景下小目標(biāo)車(chē)輛特征的敏感度。
圖7 CAM-YOLO特征融合網(wǎng)絡(luò)Fig.7 CAM-YOLO feature fusion network
在目標(biāo)檢測(cè)后處理過(guò)程中,非極大值抑制[16](nonmaximum-suppression,NMS)方法被廣泛使用。在經(jīng)典的NMS 方法中,NMS 高效地檢測(cè)聚類(lèi),通過(guò)不斷檢索分類(lèi)置信度最高的檢測(cè)框,使用交集-重疊來(lái)表示2個(gè)邊界框之間的內(nèi)在關(guān)聯(lián),將大于人工給定IOU閾值的邊界框視作冗余檢測(cè)框刪去[17]。但是,在密集目標(biāo)車(chē)輛場(chǎng)景中,當(dāng)兩個(gè)目標(biāo)車(chē)輛距離較近時(shí),交并比的值比較大,經(jīng)過(guò)NMS方法過(guò)濾后,只剩下一個(gè)目標(biāo)檢測(cè)框,導(dǎo)致密集車(chē)輛漏檢的情況時(shí)有發(fā)生?;诖?,借鑒DIOU損失函數(shù)[18]的思想,用DIOU_NMS 方法作為目標(biāo)檢測(cè)的后處理方法,DIOU_NMS方法將DIOU作為NMS的準(zhǔn)則,在抑制準(zhǔn)則中同時(shí)考慮重疊區(qū)域與檢測(cè)框中心點(diǎn)之間的距離,更有利于回歸密集目標(biāo)車(chē)輛預(yù)測(cè)框。假設(shè)模型檢測(cè)出一個(gè)候選框,記為Hi,對(duì)于類(lèi)別置信度最高的預(yù)測(cè)框M,DIOU_NMS方法公式的si可以定義為:
式中,RDIOU(M,Hi)為RDIOU關(guān)于M和H i的值;ε為NMS 操作手動(dòng)設(shè)置的閾值;si為不同缺陷類(lèi)別的分類(lèi)得分;IOU為交并比;i為每個(gè)網(wǎng)格對(duì)應(yīng)錨框的個(gè)數(shù)。
DIOU_NMS方法考慮了預(yù)測(cè)框和真實(shí)框之間的距離、重疊面積和長(zhǎng)寬比,考慮到中心點(diǎn)距離較遠(yuǎn)的預(yù)測(cè)框可能會(huì)分別位于不同的車(chē)輛目標(biāo)上,將預(yù)測(cè)框與真實(shí)框的交并比和中心點(diǎn)距離結(jié)合起來(lái),如圖8 所示,不僅優(yōu)化IOU 損失,而且指引中心點(diǎn)的學(xué)習(xí),能夠更加精準(zhǔn)地回歸預(yù)測(cè)框,提升密集遮擋下的車(chē)輛目標(biāo)的檢測(cè)精度。
圖8 DIOU_NMS方法Fig.8 DIOU_NMS method
實(shí)驗(yàn)平臺(tái)配置如表1所示。
表1 實(shí)驗(yàn)平臺(tái)配置表Table1 Experimental platform configuration table
使用KITTI 數(shù)據(jù)集[19]和BDD100K(Berkeley deep drive 100K)數(shù)據(jù)集[20]作為實(shí)驗(yàn)數(shù)據(jù)集。KITTI 數(shù)據(jù)集包含市區(qū)、高速公路和鄉(xiāng)村等交通場(chǎng)景,含有8個(gè)類(lèi)別:
Car、Van、Truck、Tram、Pedestrain、Person(sitting)、Cyclist、Misc。BDD100K數(shù)據(jù)集涵蓋了6種不同天氣,6種不同場(chǎng)景以及白天、黃昏、夜晚3 種時(shí)間階段,含有10 個(gè)類(lèi)別:Person、Rider、Car、Bus、Truck、Bike、Motor、Traffic light、Traffic sign、Train。由于BDD100K數(shù)據(jù)集包含大量夜間、模糊等困難樣本,因此檢測(cè)精度偏低。兩種數(shù)據(jù)集部分樣本如圖9所示。
圖9 部分樣本示意圖Fig.9 Partial sample schematic
從KITTI數(shù)據(jù)集的8個(gè)類(lèi)別中選擇實(shí)驗(yàn)所需的3個(gè)類(lèi)別:Car、Van、Truck,得到7 481 張圖片作為基礎(chǔ)實(shí)驗(yàn)數(shù)據(jù)集,其中6 058 張圖片作為訓(xùn)練集,674 張圖片作為驗(yàn)證集,749張圖片作為測(cè)試集。
從BDD100K 數(shù)據(jù)集的10 個(gè)類(lèi)別中選擇實(shí)驗(yàn)所需的3個(gè)類(lèi)別:Car、Bus、Truck,得到7 000張圖片作為基礎(chǔ)實(shí)驗(yàn)數(shù)據(jù)集,其中5 670 張圖片作為訓(xùn)練集,630 張圖片作為驗(yàn)證集,700張圖片作為測(cè)試集。
此外,本文將目標(biāo)邊界框與圖像面積的比值開(kāi)方小于0.03的目標(biāo)定義為小目標(biāo)。KITTI數(shù)據(jù)集共計(jì)65 504個(gè)標(biāo)注信息,其中包含1 494個(gè)小目標(biāo)標(biāo)注信息,約占總標(biāo)注信息的2.3%。BDD100K 數(shù)據(jù)集共計(jì)65 535 個(gè)標(biāo)注信息,其中包含24 481 個(gè)小目標(biāo)標(biāo)注信息,約占總標(biāo)注信息的37.4%。各類(lèi)別具體標(biāo)注信息如表2所示。
表2 數(shù)據(jù)集標(biāo)注信息Table 2 Dataset labeling information
模型訓(xùn)練過(guò)程中,為避免模型陷入局部最優(yōu)解或者跳過(guò)最優(yōu)解,將動(dòng)量系數(shù)設(shè)置為0.9。網(wǎng)絡(luò)訓(xùn)練學(xué)習(xí)率設(shè)置為0.01。為防止網(wǎng)絡(luò)在訓(xùn)練過(guò)程中出現(xiàn)過(guò)擬合,將權(quán)重衰減正則項(xiàng)設(shè)置為0.000 5。經(jīng)過(guò)200 輪模型迭代訓(xùn)練,模型得到最優(yōu)權(quán)重。
為評(píng)價(jià)本文提出的車(chē)輛檢測(cè)算法的性能,采用平均精度均值(mean AP,mAP)作為模型對(duì)多個(gè)目標(biāo)類(lèi)別綜合檢測(cè)性能的評(píng)價(jià)指標(biāo),采用平均精度(average precision,AP)來(lái)評(píng)價(jià)模型對(duì)單個(gè)目標(biāo)類(lèi)別的檢測(cè)性能。每秒檢測(cè)圖片的幀數(shù)(frames per second,F(xiàn)PS)為模型檢測(cè)的速度。
式中,AP 值是指P-R 曲線面積;mAP 的值由所有類(lèi)別AP 求均值得到;m表示檢測(cè)類(lèi)別總數(shù);TP 表示正確檢測(cè)框數(shù)量;FP表示誤檢框數(shù)量。
在訓(xùn)練的200 個(gè)迭代周期中,KITTI 數(shù)據(jù)集與BDD100K 數(shù)據(jù)集損失值、平均精度均值變化曲線如圖10、11所示。
圖10 損失函數(shù)變化曲線Fig.10 Loss function change curve
由圖10 中可知,相比于基線算法,CAM-YOLO 算法整體損失值明顯降低,充分表明CAM-YOLO 算法能夠有效地減少預(yù)測(cè)信息與真實(shí)信息之間的差距,說(shuō)明其模型預(yù)測(cè)越來(lái)越精確。由圖11可知,相較于基線算法,CAM-YOLO 算法的mAP 所有提升,可以看出,CAMYOLO算法在整體性能上優(yōu)于基線算法。
圖11 mAP變化曲線Fig.11 mAP change curve
3.5.1 對(duì)比實(shí)驗(yàn)及分析
為證明CAM-YOLO算法對(duì)車(chē)輛圖像目標(biāo)檢測(cè)的有效性,分別在KITTI 數(shù)據(jù)集和BDD100K 數(shù)據(jù)集上與各種先進(jìn)的車(chē)輛圖像目標(biāo)檢測(cè)算法進(jìn)行對(duì)比分析,表3、表4 所示分別為各算法對(duì)KITTI 測(cè)試集和BDD100K 測(cè)試集三類(lèi)目標(biāo)的AP 值、mAP 值與檢測(cè)速率。從表3 中可以看出,CAM-YOLO 算法與其他先進(jìn)算法相比,Car、Van 兩類(lèi)類(lèi)別AP 值分別取得了98.20%、98.30%的最高檢測(cè)精度,“Truck”的AP值取得了97.90%的較高檢測(cè)精度,mAP 值達(dá)到了98.13%的最優(yōu)檢測(cè)性能,且達(dá)到了76.92 FPS 的較優(yōu)檢測(cè)速度。表4 中CAM-YOLO 算法在Car、Bus兩類(lèi)類(lèi)別上取得了最高檢測(cè)精度,AP值分別為76.20%、58.70%,在“Truck”上取得了47.00%的AP值,mAP值同樣達(dá)到了60.60%的最優(yōu)檢測(cè)性能,檢測(cè)速度達(dá)到了58.82 FPS。由此可見(jiàn)CAM-YOLO 算法在處理車(chē)輛檢測(cè)任務(wù)時(shí)具有較大優(yōu)勢(shì),檢測(cè)效果十分可觀。
表3 KITTI數(shù)據(jù)集對(duì)比實(shí)驗(yàn)Table 3 KITTI dataset comparison experiments
表4 BDD1OOK數(shù)據(jù)集對(duì)比實(shí)驗(yàn)Table 4 BDD100K dataset comparison experiments
3.5.2 消融實(shí)驗(yàn)及分析
為驗(yàn)證級(jí)聯(lián)注意力特征提取模塊(cascading attention feature extraction module,CAFEM)、多尺度特征檢測(cè)方法、DIOU-NMS方法在車(chē)輛圖像目標(biāo)檢測(cè)任務(wù)中的有效性,在KITTI 數(shù)據(jù)集和BDD100K 數(shù)據(jù)集上進(jìn)行了一系列的消融實(shí)驗(yàn),以YOLOv5s 為基線算法,精確率、平均精度均值及檢測(cè)速率(FPS)為評(píng)價(jià)指標(biāo),最終結(jié)果如表5和表6所示。
表5 KITTI數(shù)據(jù)集消融實(shí)驗(yàn)Table 5 Ablation experiments in KITTI dataset
表6 BDD100K數(shù)據(jù)集消融實(shí)驗(yàn)Table 6 Ablation experiments in BDD100K dataset
消融實(shí)驗(yàn)結(jié)果表明,將提出的級(jí)聯(lián)注意力特征提取模塊CAFEM嵌入基線算法的主干網(wǎng)絡(luò)后,幾乎不給模型增加任何負(fù)擔(dān)。KITTI 數(shù)據(jù)集精確率與mAP 變化較小,檢測(cè)效果并不明顯,檢測(cè)速率為86.96 FPS。但是對(duì)于復(fù)雜場(chǎng)景車(chē)輛圖片較多的BDD100K 數(shù)據(jù)集精確率提升了2.8%,mAP 提升了0.6%,檢測(cè)速率不變。證明CAFEM能夠在較少增加模型復(fù)雜度的情況下有效地抑制復(fù)雜背景圖片無(wú)關(guān)信息的干擾,增強(qiáng)關(guān)鍵信息的表征能力,提升復(fù)雜背景下目標(biāo)車(chē)輛的檢測(cè)精度。
在基線算法上融合大尺度特征圖后,網(wǎng)絡(luò)結(jié)構(gòu)層數(shù)增加,導(dǎo)致檢測(cè)速度較基線算法有所降低。KITTI數(shù)據(jù)集精確率提升了1%,mAP 提升0.4%。BDD100K 數(shù)據(jù)集整體精確率下降了0.9%,mAP 下降了0.1%。但Car作為BDD100K 數(shù)據(jù)集中包含小目標(biāo)最多的類(lèi)別,mAP提升了5.5%。Bus和Truck類(lèi)別實(shí)例較少,導(dǎo)致mAP略遜色于基線算法,因此整體mAP變化不大。
在基線算法上采用DIOU_NMS方法后,KITTI數(shù)據(jù)集精確率提升了1.5%,mAP提升了0.1%,檢測(cè)速率下降至84.75 FPS;BDD100K 數(shù)據(jù)集精確率降低了0.5%,mAP提升了0.4%,檢測(cè)速率下降至63.29 FPS。
相對(duì)于基線算法,同時(shí)采用本文所提出的三種方法的CAM-YOLO算法在KITTI數(shù)據(jù)集精確率提升了1%,mAP提升了0.53%,檢測(cè)速率為76.92 FPS;在BDD100K數(shù)據(jù)集精確率提升了1.6%,mAP 提升了2%,檢測(cè)速率為58.82 FPS。由此可知,將三種方法相結(jié)合,可以最大化地提高基線算法的檢測(cè)能力。雖然檢測(cè)速度有所下降,但在達(dá)到實(shí)時(shí)性的前提下獲得了更好的檢測(cè)性能,在復(fù)雜背景、遠(yuǎn)場(chǎng)景以及密集遮擋情況下可以有效的指導(dǎo)車(chē)輛目標(biāo)檢測(cè)任務(wù)。
此外,本文對(duì)KITTI 數(shù)據(jù)集和BDD100K 數(shù)據(jù)集車(chē)輛的漏檢率及虛警率進(jìn)行統(tǒng)計(jì),結(jié)果如表7、表8 所示。可以看出,相較于基線算法,本文算法的漏檢率及虛警率基本上均有下降,更好地出反映了CAM-YOLO 算法能夠抑制復(fù)雜背景及密集遮擋的影響,增強(qiáng)模型的抗干擾能力。
表7 漏檢率結(jié)果Table 7 Missed detection rate results
表8 虛警率結(jié)果Table 8 False alarm rate results
3.5.3 可視化分析
為進(jìn)一步評(píng)價(jià)基線算法和CAM-YOLO算法在處理車(chē)輛圖像目標(biāo)檢測(cè)任務(wù)時(shí)的性能差異,在KITTI測(cè)試集和BDD100K測(cè)試集中隨機(jī)選取了部分樣例圖片進(jìn)行測(cè)試,并做可視化對(duì)比分析,如圖12、圖13所示。
圖12 KITTI測(cè)試集檢測(cè)效果對(duì)比Fig.12 Comparison of detection effects on KITTI test set
圖13 BDD100K測(cè)試集檢測(cè)效果對(duì)比Fig.13 Comparison of detection effects on BDD100K test set
分別對(duì)比兩種算法的檢測(cè)效果,可以看出,CAMYOLO算法有效提升了基線算法對(duì)復(fù)雜背景、遠(yuǎn)場(chǎng)景以及密集遮擋下目標(biāo)車(chē)輛的檢測(cè)效果。對(duì)比圖12(a)(b)、圖13(a)(b)可以發(fā)現(xiàn),在復(fù)雜背景目標(biāo)車(chē)輛檢測(cè)時(shí),基線算法檢測(cè)精度較低,未能達(dá)到精確識(shí)別的要求。CAM-YOLO 算法則通過(guò)弱化噪聲干擾、強(qiáng)化網(wǎng)絡(luò)感興趣的特征,從大量特征信息中分離出了有利于車(chē)輛圖像目標(biāo)檢測(cè)的信息,在面對(duì)復(fù)雜的背景信息時(shí)表現(xiàn)出了較強(qiáng)的抗干擾能力,有效改善了檢測(cè)精度較低的問(wèn)題。通過(guò)圖12(c)(d)、圖13(c)(d)對(duì)比發(fā)現(xiàn),在遠(yuǎn)場(chǎng)景小目標(biāo)車(chē)輛大量存在時(shí),基線算法存在車(chē)輛漏檢情況,而CAM-YOLO 算法則能夠精準(zhǔn)進(jìn)行識(shí)別。比較圖12(e)(f)、圖13(e)(f)可以發(fā)現(xiàn),在密集遮擋車(chē)輛較多時(shí),基線算法將超過(guò)NMS 臨界值的預(yù)測(cè)框全部過(guò)濾,造成漏檢情況出現(xiàn),CAM-YOLO算法則精準(zhǔn)回歸預(yù)測(cè)框,避免密集遮擋車(chē)輛漏檢問(wèn)題。總體而言,在處理車(chē)輛圖像目標(biāo)檢測(cè)任務(wù)時(shí),CAM-YOLO 算法相比于基線算法有更明顯的優(yōu)勢(shì),對(duì)于背景復(fù)雜、遠(yuǎn)場(chǎng)景下小目標(biāo)車(chē)輛圖像及排列密集的車(chē)輛圖像目標(biāo)具備更強(qiáng)的辨識(shí)能力,有效地減少了出現(xiàn)虛警、漏檢等現(xiàn)象的發(fā)生。
本文提出結(jié)合級(jí)聯(lián)注意力機(jī)制的車(chē)輛檢測(cè)算法CAM-YOLO,通過(guò)級(jí)聯(lián)注意力特征提取模塊CAFEM,從通道和空間維度提取車(chē)輛圖像目標(biāo)的關(guān)鍵特征信息,弱化無(wú)關(guān)背景噪聲信息,提高復(fù)雜背景下車(chē)輛圖像的目標(biāo)檢測(cè)性能;強(qiáng)化特征金字塔中小目標(biāo)車(chē)輛的細(xì)粒度信息,指導(dǎo)遠(yuǎn)場(chǎng)景下小目標(biāo)車(chē)輛圖像檢測(cè)任務(wù),并有效改善了目標(biāo)檢測(cè)器對(duì)密集遮擋目標(biāo)的處理能力。在KITTI數(shù)據(jù)集和BDD100K 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,CAMYOLO 算法分別可以達(dá)到98.13%、60.60%的檢測(cè)精度,能夠很好地應(yīng)對(duì)復(fù)雜背景、遠(yuǎn)場(chǎng)景以及密集遮擋車(chē)輛目標(biāo)檢測(cè)任務(wù)。
本文提出的方法在車(chē)輛檢測(cè)中滿(mǎn)足基本的要求,但有進(jìn)一步提升的空間。本文的數(shù)據(jù)集中Bus、Van、Truck等類(lèi)別占比較少,后續(xù)會(huì)不斷擴(kuò)充數(shù)據(jù)集,提高模型的泛化能力。