楊茜茜 周籮魚 鄒學玉



關鍵詞:交通標志識別;小目標檢測;YOLOv5;Cluster NMS;標志替換法
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2023)02-0001-03
1 概述
交通標志檢測是復雜道路環境感知任務中十分重要的一個環節,交通標志檢測模型保持高精確度的同時保證較快的檢測速度對汽車自動駕駛系統(Mo?tor Vehicle Auto Driving System,MVADS)有著重大的意義,因此攻克交通標志檢測這個難題迫在眉睫。
縱觀交通標志檢測的發展史,檢測方法包括傳統的檢測方法、二階段檢測方法、一階段檢測方法總共三種方法。傳統檢測方法的分類依據是目標的色彩、形狀、邊緣等特征,但該傳統方法的適用性較差,在特征被遮擋時將無法完成檢測任務。目前利用神經網絡進行交通標志檢測的方法主要分為二階段目標檢測方法和一階段目標檢測方法。二階段目標檢測首先利用區域建議網絡進行初步的邊框回歸,再利用ROI池化生成建議框,最后經過全連接得到分類結果與邊框。王海等[1]將不同的R-CNN檢測器串聯起來,用GIOU(Generalized IoU loss)取代原始的IOU損失函數,得到一種改進的Cascade R-CNN檢測網絡。該方法提高了交通標志的檢測精度但是只能識別四類交通標志,并且檢測速度只有2.74幀每秒。
一階段檢測方法同時完成預測框的回歸和物體的分類。鄧天民等[2]利用改進后的YOLOv3網絡檢測交通標志,將BN 層(Batch Normalization)和conv 層(convolution)合并減少網絡的計算量,使用kmeans++聚類算法來尋找更合適的錨框大小。檢測精度和檢測速度都得到了提升但是小目標識別的效果不太好,模型的參數量大不利于移動端的部署。
綜上所述,針對在檢測較小的交通標志時檢測精度不高、檢測速度慢的問題,本文將YOLOv5的加權非極大抑制模塊改進為Cluster NMS,采用交通標志替換法對小目標進行數據擴增。最終,采用TT100K(Tsin?ghua-Tencent 100K)數據集作為訓練集和測試集,對改進后的算法和經典算法開展大量對比試驗來證明改進后算法的識別精度和識別速度都得到了較大的提升。
2 改進YOLOv5 的交通標志檢測
2.1 YOLOv5 算法
YOLOv5由四個部分組成,根據網絡的深度與寬度的不同產生了四種模型,其中由于YOLOv5s的推理速度最快,因此將YOLOv5s運用在交通標志檢測中。
Input部分是指數據的輸入端,Input運用了Mosa?ic數據增強模塊,采用隨機縮放、剪裁、色域變換等操作對四張圖片進行圖像增強后進行拼接,使得數據集更加豐富[3]。在backbone部分中,首先利用Focus模塊將輸入通道擴充了四倍,并且在沒有信息丟失的情況下完成采樣。YOLOv5s分別在backbone和neck中加入了CSP 結構(Cross Stage Partial Networks), CSP1_X 將梯度流分開,兩個部分通過不同的網絡結構再通過Concat將梯度流匯合,CSP結構減少了計算量,加強了網絡的學習能力。在neck部分中增加了FPN(FeaturePyramid Networks)+PAN(Path Aggregation Network)結構,FPN將低層特征融入高層特征,再經過PAN將高層特征融入低層特征,這樣不僅加強了語義特征信息又加強了定位信息[4]。在張量拼接(Concat)后增加CSP2_X結構加強了網絡的融合能力。在prediction中通過NMW篩選出最優的預測框。采用GIOU_Loss作為損失函數[5],解決了在錨框不相交時無法篩選預測框的問題。
2.2 改進NMW
YOLOv5 采用了加權非極大抑制NMW[6] 模塊,NMW利用wi 對邊界框進行加權平均后得到最佳邊界框,計算如式(1)、式(2)。假設有n 個邊界框,wi 為邊界框的權重,Bi 是大于閾值的候選框,Bargmaxsj是置信度最大的邊界框,sj 是當前錨框的置信度大小。
Cluster NMS首先上三角化IoU矩陣X,得到除上三角元素外都為0的矩陣X。而后取矩陣Ci 每列元素中最大的值依次排列,如果bi 中元素小于一定的閾值就置1,否則就置0,最終得到bi=[b1,b2,…,bn]。接著將bi轉換成一個對角矩陣E,E與IoU矩陣X相乘得到新的矩陣Ci,取其每列元素中最大的值依次排列得到新的張量bi,接著將bi 依據閾值轉換成一個對角矩陣E,繼續將E與IoU矩陣X相乘得到新的矩陣Ci。重復上述操作直至bi等于bi ? 1,就篩選出了最優的預測框。
3數據擴增
TT100K數據集包含很多不同的復雜道路場景,具有更高的分辨率,數據集中的交通標志大部分是小目標[8],這很符合實際的交通場景。該數據集收集了在不同的亮度和天氣條件下的10000幅包含30000個交通標志實例的圖像。但是,數據集里不同類別的交通標識之間數量差異巨大,需要采用數據擴增來平衡數量差異。標志替換法首先對交通標志進行模糊和亮度變化處理,再將該標志隨機替換掉圖片中已有的標志[9]。
本文采用標志替換法,對實例個數不足1000個的交通標志擴增,不僅增加了小目標的數量,而且縮小了各種類標志之間的數量差異。擴增后的數據集包含17935張圖片,訓練集有12555張圖片,測試集有5382張圖片,輸入網絡的圖片分辨率為640×640。
4 試驗與結果分析
4.1 模型訓練環境
本文進行實驗采用了Ryzen 7 5800H 型號的CPU,NVIDIA GeForce RTX 3060 Laptop型號的GPU和win10系統操作系統。本文的模型是在CUDA 11.0的PyTorch 深度學習框架下進行訓練,初始學習率為0.001,采用余弦退火策略降低學習率和adam優化器,訓練了300epoch,批次大小為24。
4.2 評價指標
本文采用準確率(P)、召回率(R)、mAP@0.5、mAP@0.5:0.95、FPS作為評價指標。召回率(R)用來衡量模型遺漏目標的程度。mAP@0.5用來衡量模型精確率隨召回率變化趨勢,mAP@0.5高就說明模型在高準確率的同時擁有高召回率。mAP@0.5:0.95用來衡量檢測框與標定框擬合的精準度。FPS是指模型每秒處理的圖片數量,FPS超過30幀/s才滿足實時性要求。
4.3 實驗結果分析
在測試集上利用原始的算法和改進后的算法分別進行檢測。圖1是誤檢對比圖,本文的算法沒有出現誤檢的情況,無誤地識別出限速60的交通標志。在圖2中改進后的算法準確地識別出了圖中所有的交通標志,這說明改進后的算法能很好地避免漏檢的情況。圖3是夜晚情景中的檢測效果圖,改進后的算法不僅沒有誤檢還識別出了限速60和禁止鳴笛的標志,這說明改進后的算法可以解決夜間的交通標志檢測問題。綜上所述,本文的方法適用性更強,很好地解決了誤檢和漏檢的問題。
從數據集中挑選21類常見的交通標志,利用YO?LOv5算法與改進后的算法分別進行檢測,圖4中改進后算法檢測21類交通標志的mAP@0.5都比較高說明泛化性能好,改進后算法進行檢測的大部分識別精度都比原始算法高,檢測精度平均增加了11.3%,本文方法檢測精度最低的交通標志是禁止鳴笛,還是比原始算法提高了2.8%,這說明改進后的方法以高精度很好地完成了交通標志細分類。
利用改進后的算法、YOLOv5算法和文獻[10]對交通標志進行檢測,檢測結果如表1所示。mAP@0.5s是針對小目標檢測的精度,原始算法檢測小目標的準確率不高,文獻[10]的mAP@0.5為0.893,而本文算法將小目標的檢測精度mAP@0.5提高為0.916。
原始YOLOV5算法的準確率是0.81,文獻[10]的準確率是0.508,改進后的算法準確率是0.892,本文的方法提高了交通標志檢測的準確度。本文算法的召回率比原始算法高0.14,改進后算法很好地改善了漏檢的情況。改進后算法的mAP@0.5為0.898,比文獻[10]提高了0.041,證明改進后算法的檢測框與標定框擬合更精準。改進后的算法FPS達到93幀/s遠遠超出實時性的需求,比YOLOv5 算法、文獻[10]分別高出2.74 幀/s、4.87幀/s,說明本文提出的方法在提高了識別的準確度的同時兼顧了識別的速率。
4.4 消融試驗
如表2所示,使用標志替換法后mAP@0.5:0.95增加了0.038,mAP@0.5增加了0.057,數據擴增很好地提高了檢測精度。數據擴增后檢測速度還提升了1.91幀/s,說明標志替換法還提高了檢測速度。總的來說標志替換法很好地提升了模型的性能,一方面提高了檢測精度,另一方面提升了檢測速度。
加入Cluster NMS 后mAP@0.5:0.95 增加了0.05,mAP@0.5 增加了0.057,YOLOv5 算法采用ClusterNMS相比于采用NMW檢測精度得到大幅度提升。采用Cluster NMS后將檢測速度提高為92.59幀/s,證明了Cluster NMS模塊很好地平衡了識別精度和識別速度的要求。
5 結論
針對交通標志檢測任務,本文利用Cluster NMS模塊替換了YOLOv5網絡模型的NMW模塊,實驗表明采用Cluster NMS不僅提高了檢測精度還提升了檢測效率。利用標志替換法進行數據擴增,實驗證明標志替換法通過均衡各類別交通標志之間數量分布,很好地提高了檢測精度的同時檢測速度也得到了提高。總的來說,在TT100K數據集上將改進后的算法與經典算法開展大量實驗對比后,證明了本文的方法很好地平衡了準確性和實時性的要求。但是本文依然有一些尚未解決的問題,本文提出的方法不能應對如雨雪、霧霾等極端天氣下的交通標志檢測情況,并且模型參數量較大,不利于資源有限的車載環境進行部署。下一步可以研究的方向有解決惡劣天氣下的交通標志識別和輕量化模型等。