任丹梅 REN Dan-mei;王暉 WANG Hui
(南京理工大學(xué)紫金學(xué)院,南京 210023)
面對日益擁堵的道路,如何有效緩解交通擁堵,提高交通系統(tǒng)的安全性和通行效率,成為當(dāng)下交通管理部門需要解決的重要問題。在交通管理中,車輛目標(biāo)檢測是一項(xiàng)重要的技術(shù),它可以實(shí)時地檢測出交通場景中的車輛,從而為交通管理提供更加精準(zhǔn)和高效的數(shù)據(jù)支持,特別是高精度、快速的車輛目標(biāo)檢測尤為重要。設(shè)計(jì)實(shí)時性和魯棒性的車輛目標(biāo)檢測算法,對智慧交通、智能駕駛、行人檢測、數(shù)字化、網(wǎng)絡(luò)化建設(shè)有非常重要的價值。
目標(biāo)檢測算法在計(jì)算機(jī)視覺領(lǐng)域非常重要,主要是在圖像或視頻中對特定目標(biāo)進(jìn)行識別和定位。目標(biāo)檢測算法通??煞譃槿悾簜鹘y(tǒng)的目標(biāo)檢測方法、基于區(qū)域的方法和基于回歸的方法。傳統(tǒng)的目標(biāo)檢測方法主要是以特征工程方法為基礎(chǔ),這些方法存在著檢測速度慢、準(zhǔn)確率低等問題,且在復(fù)雜場景下的表現(xiàn)不佳的問題?;趨^(qū)域的方法一般需要生成候選區(qū)域,再對每個候選區(qū)域進(jìn)行分類和定位,常見基于區(qū)域的方法有滑動窗口法、選擇性搜索法及EdgeBoxes 法等?;诨貧w的方法則是直接利用深度學(xué)習(xí)算法對目標(biāo)的類別和位置信息進(jìn)行預(yù)測。典型的基于回歸的方法包括:YOLO、SSD(Single Shot Multibox Detector)、Faster R-CNN(Faster Region-based Convolutional Neural Network)等。
目前,基于深度學(xué)習(xí)的目標(biāo)檢測算法已經(jīng)成為主流,其具有較高的檢測準(zhǔn)確率和較快的檢測速度?;诰矸e神經(jīng)網(wǎng)絡(luò)的YOLO 算法可以實(shí)現(xiàn)實(shí)時的目標(biāo)檢測,它使用單個網(wǎng)絡(luò)分析整個圖像,并將目標(biāo)的類別和位置信息直接輸出,所以速度比較快。該算法的核心思想是將圖像分成若干個網(wǎng)格,每個網(wǎng)格預(yù)測一個BoundingBox 和對應(yīng)的類別概率,然后通過非極大值抑制(NMS)算法[1]篩選出最終的目標(biāo)框。
相比于其它目標(biāo)檢測算法,YOLO 算法的運(yùn)行速度快、精度高、可擴(kuò)展性強(qiáng),能夠達(dá)到實(shí)時處理的程度,可以對多個目標(biāo)進(jìn)行檢測,并且在不同尺度的圖像上都能取得較好的檢測結(jié)果。因此,本文利用深度學(xué)習(xí)方法,基于YOLO 算法,對車輛目標(biāo)檢測技術(shù)進(jìn)行研究。
YOLOv5 的網(wǎng)絡(luò)結(jié)構(gòu)分為四部分,分別為輸入端、Backbone、Neck 和輸出端,如圖1 所示。輸入端主要對圖像進(jìn)行預(yù)處理操作,包括數(shù)據(jù)增強(qiáng)、圖像縮放、錨框。Backbone 為主干網(wǎng)絡(luò),主要作用是對圖像中的目標(biāo)特征進(jìn)行提取,由Focus、CBS、CSP、SPP 組成。其中,F(xiàn)ocus 結(jié)構(gòu)是實(shí)現(xiàn)圖像的切片操作。CSP(Cross Stage Partial Network)[2]主要用作局部的跨通道融合,解決網(wǎng)絡(luò)優(yōu)化中梯度信息重復(fù)的問題。Neck 主要將高層信息與底層信息進(jìn)行融合,并將得到的預(yù)測圖像輸出,具有對不同尺度的物體進(jìn)行檢測的功能。輸出端能夠生成3 種不同尺度的圖像,用來進(jìn)行預(yù)測目標(biāo)類別和置信度。
圖1 YOLOv5 的網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv5 版本的優(yōu)勢是在輸入端用自適應(yīng)錨框,且在主干網(wǎng)絡(luò)中應(yīng)用Focus 結(jié)構(gòu),總體而言,YOLOv5 版本在檢測精度和速度上比之前版本有很大提升。
2.2.1 引入注意力機(jī)制
CBAM(Convolutional Block Attention Module)[3]是一種注意力機(jī)制,在網(wǎng)絡(luò)模型中,引入CBAM 注意力機(jī)制,能夠加強(qiáng)對檢測目標(biāo)的注意,弱化復(fù)雜環(huán)境的干擾,達(dá)到提高目標(biāo)檢測精度的目的。
CBAM 包括兩個獨(dú)立的注意力模塊,通道注意力模塊(CAM)和空間注意力模塊(SAM)。CAM 模塊是通過全局平均池化操作得到每個通道的全局平均值,然后將這些平均值通過兩個全連接層進(jìn)行處理,得出每個通道的重要權(quán)重,最后將這些權(quán)重乘以原特征圖后再進(jìn)行加權(quán),增強(qiáng)特征的區(qū)分性。
SAM 模塊是對于給定的輸入特征圖,通過先進(jìn)行通道維度的卷積操作,再進(jìn)行空間維度的卷積操作,得到每個像素點(diǎn)的權(quán)重,表示該像素點(diǎn)在特征圖中的重要性,然后將這些權(quán)重乘以原始特征圖,得到加權(quán)后的特征圖,增強(qiáng)特征的區(qū)分性。
CAM 模塊通過計(jì)算通道注意力分?jǐn)?shù)來自適應(yīng)地重新加權(quán)特征映射,而SAM 模塊則通過計(jì)算空間注意力分?jǐn)?shù)來聚焦于特征映射的重要區(qū)域。引入CBAM 模塊后,特征能夠覆蓋到待識別物體的更多部位,選擇性地關(guān)注信息特征,提高識別效率,CBAM 注意力機(jī)制的結(jié)構(gòu)如圖2 所示。
2.2.2 損失函數(shù)的改進(jìn)
損失函數(shù)可以計(jì)算模型對結(jié)果的預(yù)測準(zhǔn)確程度,用來判斷模型與實(shí)際數(shù)據(jù)之間的差距,選擇適合的損失函數(shù),能夠使得訓(xùn)練模型以更快的速度收斂。
YOLOv5 的損失函數(shù)由邊框回歸損失、置信度損失、分類概率損失三部分組成。其中,在邊框回歸損失中,采用完全交并比損失函數(shù)[4]實(shí)現(xiàn)預(yù)測,其公式如下:
其中,b 表示預(yù)測框的中心點(diǎn),bgt表示真實(shí)框的中心點(diǎn),ρ 表示兩個中心點(diǎn)間的歐式距離,c 表示包含預(yù)測框和真實(shí)框的最小閉包區(qū)域的對角線距離,w、wgt分別代表預(yù)測框和真實(shí)框的寬度,h、hgt分別代表預(yù)測框和真實(shí)框的寬度,IOU 是預(yù)測框和真實(shí)框之間的交集和并集之比。
CIoU loss 對邊界框回歸中的重疊面積、橫縱比以及中心點(diǎn)的距離分別進(jìn)行考慮,卻忽略了寬高與置信度的真實(shí)差異,不利于模型的優(yōu)化,Zhang 等人[5]在CIoU Loss 的基礎(chǔ)上將縱橫比拆開,提出了有效交并比損失函數(shù)(efficient intersection over union loss,EIoU Loss),并且加入Focal 來聚焦優(yōu)質(zhì)的錨框。由于BBox 的回歸中存在訓(xùn)練樣本不均衡問題,F(xiàn)ocal-EIoU Loss 能夠把高質(zhì)量的錨框和低質(zhì)量錨框分開,其公式如下:
其中,γ 表示控制異常值的抑制程度,Cw和Ch分別表示覆蓋兩個Box 的最小外接框的寬度和高度,由上述公式可知:IoU 越高的損失越大,相當(dāng)于加權(quán)作用,給越好的回歸目標(biāo)一個越大的損失,有助于提高回歸精度。
2.2.3 引入SAConv 模塊
SAConv 是一種用于圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Networks)的卷積操作。它結(jié)合了自注意力機(jī)制和稀疏的卷積核來提高模型的性能和效率。SAConv 引入了注意力矩陣來計(jì)算節(jié)點(diǎn)之間的相似度,然后根據(jù)這個相似度加權(quán)地聚合節(jié)點(diǎn)特征。
與傳統(tǒng)的卷積核不同,SAConv 使用稀疏的卷積核,只考慮鄰居節(jié)點(diǎn)之間的連接關(guān)系,從而減少了計(jì)算量。SAConv 所需計(jì)算的參數(shù)數(shù)量較少,可以更好地適應(yīng)大規(guī)模圖數(shù)據(jù)集。首先將相關(guān)代碼添加到y(tǒng)olov5-master/models路徑下的common.py 文件中,最后在網(wǎng)絡(luò)結(jié)構(gòu)中在Backbone 里將后三個C3 模塊替換成SAConv。
車輛目標(biāo)檢測實(shí)驗(yàn)流程如圖3 所示,首先采集汽車圖像,并對圖像進(jìn)行打標(biāo)簽、數(shù)據(jù)劃分等預(yù)處理,將處理后的圖像作為數(shù)據(jù)集,然后對數(shù)據(jù)集進(jìn)行訓(xùn)練得到初步訓(xùn)練模型,由于初步訓(xùn)練模型精度不夠高,所以對初步訓(xùn)練模型采取優(yōu)化措施得到理想訓(xùn)練模型,最后,進(jìn)行測試并對結(jié)果進(jìn)行分析。
圖3 車輛目標(biāo)檢測流程
本實(shí)驗(yàn)選擇部署在上海恒源云網(wǎng)絡(luò)科技有限公司所提供的云服務(wù)器上,并在JupyterLab 環(huán)境下運(yùn)行程序,環(huán)境配置如表1 所示。
表1 環(huán)境配置
本文研究所用的數(shù)據(jù)集由本人在百度圖片搜集,數(shù)據(jù)集中共有1000 張圖片,訓(xùn)練集和驗(yàn)證集一共1745 張圖片,其中622 張作為驗(yàn)證集,1123 張作為訓(xùn)練集。數(shù)據(jù)集的標(biāo)簽通過https://www.makesense.ai/網(wǎng)站進(jìn)行標(biāo)注。另外,從網(wǎng)絡(luò)上搜集停車場及交通道路的視頻作為測試集,同時也在實(shí)際交通環(huán)境中進(jìn)行測試。
本文實(shí)驗(yàn)結(jié)果從精確度(precision)、召回率(recall)、平均準(zhǔn)確率均值(mAP)、平均準(zhǔn)確率(AP)來對改進(jìn)模型的性能進(jìn)行評估,其中精確度和召回率的計(jì)算公式如下:
其中,TP(True Positives)為正樣本數(shù)據(jù)被正確識別出來的目標(biāo)數(shù)量,即被正確識別的車輛目標(biāo);FN(False Negatives)為正樣本數(shù)據(jù)沒有被正確識別的目標(biāo)數(shù)量,即漏檢的車輛目標(biāo);FP(False Positives)為將非正樣本數(shù)據(jù)識別為正樣本目標(biāo)數(shù)量,即誤檢的車輛目標(biāo)。
平均準(zhǔn)確率AP(Average Precision)與平均準(zhǔn)確率均值mAP(mean Average Precision)可以用來衡量網(wǎng)絡(luò)模型的優(yōu)劣,其需要根據(jù)模型的精確度和召回率計(jì)算得出,計(jì)算公式如下:
為了驗(yàn)證改進(jìn)模型對網(wǎng)絡(luò)整體性能的影響,本文采用遞進(jìn)的方式逐個增加改進(jìn)模塊。改進(jìn)模型對網(wǎng)絡(luò)性能的影響如表2 所示,首先,在YOLOv5 網(wǎng)絡(luò)的基礎(chǔ)上,通過增加CBAM 注意力機(jī)制來修改網(wǎng)絡(luò)結(jié)構(gòu)得到Ⅰ-YOLOv5 模型,相比于YOLOv5 網(wǎng)絡(luò)其mAP 值提升0.8%;其次,在Ⅰ-YOLOv5 網(wǎng)絡(luò)基礎(chǔ)上優(yōu)化loss 函數(shù)并添加解耦頭得到Ⅱ-YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu),相比于Ⅰ-YOLOv5 網(wǎng)絡(luò)其mAP 值提升0.4%;最后,在Ⅱ-YOLOv5 網(wǎng)絡(luò)基礎(chǔ)上添加SAConv 模塊得到Ⅲ-YOLOv5 網(wǎng)絡(luò)模型,相比于Ⅱ-YOLOv5 網(wǎng)絡(luò)其mAP 值提升0.6%。相比于改進(jìn)前的網(wǎng)絡(luò)改進(jìn)后網(wǎng)絡(luò)mAP值提升了1.8%。
表2 改進(jìn)模塊對網(wǎng)絡(luò)性能的影響
由表2 及分析結(jié)果可知,隨著對YOLOv5 網(wǎng)絡(luò)的改進(jìn)優(yōu)化,mAP.5 和mAP.5:95 的值逐步增加,即檢測的平均準(zhǔn)確率均值得到提升。
為了更加直觀地對比改進(jìn)后網(wǎng)絡(luò)的性能,對改進(jìn)前后網(wǎng)絡(luò)訓(xùn)練結(jié)果中的重要性能指標(biāo)進(jìn)行對比,如表3 和表4所示。
表3 改進(jìn)前后網(wǎng)絡(luò)性能對比
表4 目標(biāo)的平均準(zhǔn)確率(AP)對比
由表3 數(shù)據(jù)可知,改進(jìn)后網(wǎng)絡(luò)精確度提高了2.2%,召回率提高了2.1%,平均準(zhǔn)確率均值達(dá)到69.3%,模型收斂速度提升了20%。
表4 為檢測的三種類型車輛,分別為car、bus、truck,根據(jù)其結(jié)果可知,改進(jìn)后三種類型車輛準(zhǔn)確率(AP 值)均有提升,其中bus 類型檢測中AP 值提升了2.8%。
為了驗(yàn)證車輛目標(biāo)檢測的準(zhǔn)確性和實(shí)時性,因此對實(shí)際環(huán)境中的車輛進(jìn)行檢測,改進(jìn)網(wǎng)絡(luò)后實(shí)際環(huán)境的檢測效果如圖4 所示,由圖可知,對車輛目標(biāo)檢測的準(zhǔn)確性和實(shí)時性能夠滿足實(shí)際場景中的應(yīng)用,特別對于距離較近的車輛,檢測結(jié)果準(zhǔn)確率較高。對于較遠(yuǎn)距離的車輛,仍有較大的改進(jìn)空間。
為了對實(shí)際道路中車輛進(jìn)行實(shí)時且準(zhǔn)確的檢測,本文提出了將YOLOv5 算法改進(jìn)并在實(shí)際道路中進(jìn)行檢測,與原網(wǎng)絡(luò)YOLOv5 相比,改進(jìn)網(wǎng)絡(luò)Ⅲ-YOLOv5 的整體檢測性能得到了提升,訓(xùn)練速度提升20%,模型精確度提升了2.2%。