王澤華 宋衛虎 吳建華



摘要:針對在嵌入式車載交通標志識別系統對檢測模型的大小以及實時性有著較高的要求,在基于原有YOLOv4的網絡架構上,提出一種改進后的目標檢測網絡Mobilenetv2-YOLOv4-SAP。Mobilenetv2-YOLOv4-SAP通過使用輕量級卷積神經網絡Mobilenev2對原YOLOv4網絡的特征提取網絡CSPDarknet53進行替換融合以及引入注意力機制SAP模塊解決多通道池化層的信息冗余問題,從而在減少網絡模型參數量和計算量的同時,保持較高的檢測精度。通過實驗表明,改進后的網絡模型在Kaggle Road sign detection比賽數據集上的平均檢測精度上達到了95.94%較原YOLOv4網絡提升了0.34%,該網絡模型的大小為48.97MB,僅為原YOLOv4模型大小的20%,且檢測速率FPS達到了61幀/秒,相比于原YOLOv4網絡模型提升了265%。
關鍵詞:交通標志識別;Moblienetv2;信息冗余;目標檢測;YOLOv4
中圖分類號:TP391 ? ? ?文獻標識碼:A
文章編號:1009-3044(2022)05-0098-04
自從智能交通系統的發展以來,交通標志識別便作為智能交通系統中的重要一環開始研究,起初交通標志識別主要采用了對目標顏色分辨、圖像切割以及傳統的機器學習方法實現對交通標志的識別,但是這些方法通常面臨著識別準確率低、識別速度慢等問題。隨著卷積神經網絡(Convolutional Neural Networks, CNN)的發展,很好地解決了這些問題,并在圖像識別領域有著較為出色的表現。隨著CNN的發展,相繼延續出了RCNN、VGG[1]、AlexNet[2]等用于圖像分類的Two-stage網絡結構以及以SSD[3]為主的運用于目標檢測的One-stage網絡結構。文獻[4]通過使用ResNet50-D來作為YOLOv3中的特征提取網絡增強網絡特征提取能力。文獻[5]以YOLOv3作為框架,通過改進特征提取網絡以及特征融合網絡提升對小目標交通標志的檢測性能。文獻[6]通過在YOLOv3中融合空間金字塔池化層(SPP)以及改進網絡中FPN結構提升算法的檢測精度和實時性。文獻[7]提出了Cascaded R-CNN算法,在CCTSDB數據集上的檢測精度達到99%,但是檢測速率則比較慢。文獻[8]在YOLOv3的基礎上引入深度可分離卷積來減少模型的參數量。文獻[9]采用Faster R-CNN對交通標志進行檢測,文獻[10]在YOLOv2的基礎上通過對網絡的裁剪降低算法的算量和參數量,同時通過用網格劃分輸入特征圖像增強小目標交通標志的檢測性能。
為了解決傳統YOLOv4算法運行速度較慢、對設備要求高、不適用于嵌入式設備等缺點,使網絡模型可以更好地運用在車載嵌入式設備中,本文采用了改進的YOLOv4算法,對交通標志進行檢測,主要貢獻如下:
1)引入輕量級神經網絡Mobilenetv2作為檢測算法的主干網絡,提升算法的檢測速度。
2)引入SAP模塊,解決多通道池化結構產生的信息冗余問題。
3)針對YOLOv4錨框機制不能很好地匹配交通標志檢測的問題,利用K-means++聚類算法對數據集進行重新聚類,生成適合交通標志檢測的先驗框。
2 Mobilenetv2-YOLOv4-SAP網絡結構
2.1 Mobilenetv2-YOLOv4網絡
YOLOv4算法是為了提升算法的運算精度,而在YOLOv3算法的基礎上引入了CSPDarknet53網絡作為其主干網絡,相比于YOLOv3算法的主干網絡Darknet53,CSPDarknet53網絡通過增加輸入的特征信息以及網絡的計算量使運算精度提升,在運用于交通標志檢測的車載嵌入式設備上,原YOLOv4模型無疑增大了設備的硬件要求。導致YOLOv4算法在移動端和嵌入式設備中面臨著延遲高、速率慢等缺點。通過測試,YOLOv4算法在嵌入式車載交通標志識別裝置中的檢測速率僅僅達到23幀/秒,遠遠不能達到對交通標志識別系統檢測實時性高的要求。因此,本文受到Google開發的輕量級神經網絡Mobilenet[11]的啟發,提出了一種新的輕量級網絡Mobilenetv2-YOLOv4。
Mobilenet網絡是由Google公司在2017年提出的一種專注于移動端的輕量級神經網絡,其通過使用深度可分離卷積替換標準卷積,該網絡可以在犧牲少量準確率的前提下,降低模型的參數量和運算量。深度可分離卷積分為深度卷積和逐點卷積兩部分,深度卷積通過給每一個輸入層賦予一個不同的卷積核提取輸入圖像的特征,逐點卷積是每一層都使用一個1×1的卷積核,處理深度卷積中所提取的特征信息并對其進行整合。在卷積核大小為3×3時,通過深度卷積和逐點卷積兩個步驟可使模型的計算量降低到原來的1/9,再通過引入寬度超參數α和分辨率超參數β,使整個網絡模型的計算量存在[α2β2]的優化空間。
Mobilenetv2在Mobilenetv1的基礎上增加了一個倒殘差結構和線性瓶頸結構。倒殘差結構首先采用一個1×1的卷積升維,使深度可分離卷積在高維度中提取特征以提升模型的表征能力,再經過一個1×1的卷積進行降維操作,使輸出的特征通道數量與輸入的特征通道數量保持一致。由于ReLU激活函數在特征通道較少時會導致特征信息丟失的特點,而倒殘差結構由于減少了參數量,導致輸出特征通道數量較低,為了避免ReLU激活函數影響網絡性能Mobilenetv2,使用線性激活函數替換ReLU激活函數形成線性瓶頸層。
Mobilenetv2-YOLOv4通過使用Mobilenetv2網絡替換YOLOv4的骨干網絡CSPDarknet-53,減少了模型的參數量和計算量。
2.2 SAP模塊
He[12]等人通過研究證明,在卷積神經網絡中全連接層必須輸出固定的特征值,直接對輸入圖片進行拉伸或壓縮會導致輸入特征信息的丟失,降低識別精度,從而提出了SPP池化結構。SPP借鑒空間金字塔的思想提取局部和全局的特征信息,使輸入圖像不再需要固定的大小和比例,就可以產生固定大小的特征表示傳輸給全連接層,從而解決該問題。
本文在SPP的基礎上提出了SAP Module結構,通過把SAP Module結構添加在多尺度融合過程中提升感受野,同時解決池化層的信息冗余問題,獲得更多有效的特征信息,SAP Module結構如圖1所示。
SAP Module分別使用尺度為5×5、9×9、13×13的三個最大池化窗口,作用于上層卷積所產生的特征圖像,然后選取特征圖像中的最大值作為池化層的輸出值。設置池化層的步長為1來保持特征圖像的大小不發生改變,最終通過融合輸入特征圖像以及經過池化層后的局部特征圖來增加感受野。然而對于多通道池化結構,難以避免在特征融合過程中產生冗余信息,冗余信息的產生會加大特征提取的難度,影響模型的識別精度和速率。為了消除冗余信息對模型的影響,本文通過融合池化層與壓縮和激勵結構解決這一問題。
壓縮和激勵結構通過在神經網絡中引入注意力機制讓模型自主獲取每一個特征通道的重要程度,并設置不同的權重。以此權重作為參照增強重要的特征通道同時,弱化無用的特征通道,其結構如圖2所示。
在經過最大池化層后,SAP模塊將輸入的特征信息與融合所產生的冗余信息一同傳輸到壓縮與激勵結構。如圖2所示,首先通過壓縮函數[Fsq(ud)]將全局通道信息壓縮為一個特征通道信息。壓縮函數[Fsq(ud)]如公式(1)所示,其中[zd]表示第[d]層通道所統計的數據,[ud]表示第[d]層通道的特征圖。
SAP模塊在經過壓縮處理后,通過激勵函數[Fex]對所聚合的各特征通道信息生成相應的權重S。由于捕捉不同特征通道間的相關性會導致模型泛化性降低,因此設置兩個全連接層來實現門控機制。其中全連接層[W1]為降維操作,采用RuLE激活函數來輸出結果,全連為升維操作,采用Sigmoid激活函數將權重進行歸一化,添加門控機制使激勵函數輸出的結果在具有非線性的同時,降低了參數量和計算量。激勵函數[Fex]如公式(2)所示,其中[σ(x)]為Sigmoid激活函數,[δ(x)]為ReLU激活函數。
[S=Fex(Z,W)=σ(g(Z,W))=σ(W2δ(W1Z))] ? ? ?(2)
在經過壓縮和激勵結構后,SAP模塊通過函數[Frw]將激勵結構所輸出的結果與原有的特征信息進行通道乘積,為特征信息的權重進行加權,重新設定每個特征通道的重要程度,[Frw]函數如公式(3)所示。進而增強特征圖像的輸入特征信息的特征通道,同時弱化融合所產生冗余信息的特征通道,以減少冗余信息對模型特征提取的影響。
[Frw(ud,sd)=ud×sd] ? ? ? ? ? ? ? ? ? ?(3)
Mobilenetv2-YOLOv4-SAP網絡結構如圖3所示。
2.3 K-means++聚類算法確定錨框
YOLOV4的錨框機制主要是根據VOC數據集聚類得到的,該錨框分為三個尺度,每個尺度又分為三個不同的尺寸。針對交通標志檢測,大多數的交通標志形狀大小保持一致,利用原始的錨框機制會影響交并比IOU的計算值,導致無法篩選出最優預測框。而K-means算法需要選定合適的初始聚類中心作為初始值,初始聚類中心的選擇會影響錨框生成的效果,因此本文采用了K-means++聚類算法保證初始聚類中心選擇的離散型,從而提升錨框生成的效果。
本文K-means++算法流程:首先在目標框A中隨機選取一個聚類中心點d,計算該聚類中心點d與A中每個樣本[α]間的歐氏距離[D(α)],通過公式[D2(α)α∈AD2(α)]計算概率,選取最大概率的點作為下一個樣本中心[a1]。重復上述操作,直至選出9個離散的聚類中心。計算9個選取的聚類中心與樣本[a]的中心距離,并分別分到相應聚類中心對應的簇中,通過計算聚類中心d,直至聚類中心不再發生改變。
本文將交通標志輸入至網絡,提取3個不同尺度的特征,并保持原輸入的分辨率大小不變以保證圖像的特征信息不被壓縮,網絡通過K-means聚類算法生成8756個邊界框來預測交通標志的位置和大小,再通過設定NMS為0.5過濾分數較低的框,保留IOU更大的邊界框。
本文最終通過K-means++聚類算法重新生成9個新的錨框參數(32,40)、(50,112)、(64,52)、(112,108)、(164,177)、(198,156)、(284,217)、(326,358)、(576,731)用于交通標志的檢測。
3 實驗與結果分析
3.1 實驗環境配置
本文采用的實驗環境為Ubuntu 20.04操作系統。硬件配置:CPU為Intel i7-9700F,內存大小為32GB。GPU采用了NVIDIA GeForce RTX 2080Ti,顯存為11GB的顯卡。學習框架為PyTorch,編程語言為Python。
3.2 交通標志數據集
本文使用的數據是Kaggle Road sign detection比賽數據集,分為traffic light、stop、speedlimit以及crosswalk四個類別共877張圖片,其中隨機選取98張圖片作為測試集數據,779張圖片作為訓練集數據。由于數據集的數據量過小,本文在該數據集的基礎上實現了數據擴充,包括翻轉、亮度調節、添加噪聲、模糊處理等9種方法,最終得到數據集7000張。擴充后的數據如圖4所示。
3.3 評價指標
本文采用了多個指標評價算法的性能,其中包括AP、recall、mAP以及模型大小和檢測速率FPS。其中AP代表檢測一個類別的平均準確率,recall代表算法召回率,mAP代表所有類別的平均檢測準確率,FPS表示算法的檢測速率,單位是幀/秒。各評價指標的計算公式如下:
[precision=TPTP+FP] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(4)
[recall=TPTP+FN] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(5)
其中precision代表一張圖像中某一個類別的檢測準確率,TP為預測為正類樣本且預測正確的個數,FP為預測為正類樣本且預測錯誤的個數,FN表示預測為錯誤的正類樣本的數量。
[AP=1N1Nprecision] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(6)
[mAP=1N1NAP] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(7)
3.4 模型訓練
整個訓練過程分為100個epoch進行訓練,由于訓練過程網絡參數過多,對網絡收斂的條件要求高,本文采用分層訓練的方法緩解參數過多帶來的影響。在訓練前50個epoch時,設置初始學習率為0.01、權重衰減系數為0.0005、動量參數為0.9進行粗訓練。粗訓練過程的Batchsize設置為16。在前50次epoch訓練完成后,設置學習率為0.0001進行細訓練,細訓練的Batchsize設置為8。
改進算法在交通標志檢測中的效果圖如圖5所示。
3.5 實驗結果與分析
為了驗證Mobilenetv2-YOLOv4-SAP網絡在交通標志檢測中的性能,本文對該算法與原YOLOv4算法、Mobilenetv1-YOLOv4網絡、Mobilebnetv1-YOLOv4-SAP網絡、Mobilenetv2-YOLOv4網絡從準確率AP、平均準確率mAP、召回率recall、模型大小以及檢測速率FPS上進行了對比實驗。為了使實驗結果具有客觀性,本文在實驗進行時,將數據集進行10次隨機打亂后再進行測試,最終取10次測試結果的平均值作為本次對比實驗的實驗結果。實驗結果在表1中進行對比展示。從表1可以看出,原YOLOv4算法的檢測準確率較高,達到了95.6%,但是模型大小和檢測速率的表現相對較差。YOLOv4算法的模型大小達到了244.29MB,不適用于嵌入式設備的使用,而檢測速率僅達到了23幀/秒,不適用于對實時性要求較高的檢測場景。輕量化網絡模型Mobilenetv1-YOLOv4算法有效地縮減了YOLOv4算法的模型大小,達到了48.42MB且檢測速率也提升至61幀/秒,可以滿足嵌入式交通標志識別的要求。但是改進后的網絡模型在識別精度上的表現較差,僅達到了92.84%,相比原YOLOv4的檢測精度下降了2.76%。經過進一步研究,在融合輕量化網絡模型Mobilenetv2網絡后的網絡模型Mobilenetv2-YOLOv4,其檢測速率和精度得到了進一步地提升,分別為94.41%和64幀/秒,模型大小也降低為46.82MB,但是對比原YOLOv4網絡的檢測精度依舊下降了1.19%。在融合本文所提出的SAP模塊后,Mobilenetv1-YOLOv4網絡的檢測精度提升了1.17%,達到了94.01%,同時模型大小僅僅增加了2MB,檢測速率FPS下降了2幀/秒。本文算法在輕量化YOLOv4的網絡模型Mobilenetv2-YOLOv4的基礎上添加了本文所提出的SAP模塊,在融合SAP模塊后,本文算法使得檢測精度相較于Mobilenetv2-YOLOv4提升了1.53%,模型大小增加了2.15MB,檢測速率下降了3幀/秒。本文算法對比于原YOLOv4網絡模型,在檢測精度上得到了少量提升,提升了0.34%,但是在模型大小方面降低了195.39MB,同時檢測速率提升了265%,達到了61幀/秒。
因此,本文提出的改進效果是明顯的,改進后的YOLO網絡在模型大小和檢測速率上都得到了優化,且檢測精度也略有提升,可以較好地完成對交通標志檢測的輕量化和實時性要求。
4結束語
針對交通標志檢測的實時性要求,本文在YOLOv4算法的基礎上,借鑒輕量級神經網絡Mobilenet,提出了一種改進YOLOv4的輕量級神經網絡算法。在輕量級的基礎上,本文提出了一種新的注意力機制SAP模塊消除網絡中信息冗余的問題,提升模型的檢測精度,并引入CIoU彌補IoU在真實框與預測框沒有交集時所帶來的影響,加快損失收斂速度,提升檢測精度。在數據集上采用多種方法對數據進行擴充驗證模型識別的真實性,并針對交通標志數據集采用K-means++聚類方法重新設定錨框比例,提高模型的泛化能力,以使模型可以更好地應用于交通標志檢測場景。通過實驗表明,該算法在Kaggle Road sign detection比賽數據集中的表現相較于原YOLOv4算法在各方面都有提升,其mAP達到了95.94%,相較于原YOLOv4提升了0.34%,但在模型大小和檢測速率上相較于原YOLOv4模型有著顯著的提升,分別達到了48.97MB和61幀/秒,更加適用于嵌入式交通標志檢測場景,但是在其他場景下的檢測效果仍舊不及其他大型檢測網絡,如何讓模型適用于更多的檢測場景,依舊是一個有待解決的問題。
參考文獻:
[1] Simonyan K,Zisserman A.Very deep convolutional networks for large-scale image recognition[J].arXiv preprint arXiv:1409.1556,2014.
[2] Krizhevsky A,Sutskever I,Hinton G E.ImageNet classification with deep convolutional neural networks[J].Communications of the ACM,2017,60(6):84-90.
[3] Liu W,Anguelov D,Erhan D,et al.SSD:single shot MultiBox detector[C]//European Conference on Computer Vision. Berlin, Germany: Springer,2016:21-37.
[4] 徐迎春.基于YOLOv3改進的交通標志識別算法[J].數字技術與應用,2021,39(1):108-111,116.
[5] 劉勝,馬社祥,孟鑫,等.基于多尺度特征融合網絡的交通標志檢測[J].計算機應用與軟件,2021,38(2):158-164,249.
[6] 劉紫燕,袁磊,朱明成,等.融合SPP和改進FPN的YOLOv3交通標志檢測[J].計算機工程與應用,2021,57(7):164-170.
[7] Zhang J M,Xie Z P,Sun J,et al.A cascaded R-CNN with multiscale attention and imbalanced samples for traffic sign detection[J].IEEE Access,2020,8:29742-29754.
[8] 江金洪,鮑勝利,史文旭,等.基于YOLO v3算法改進的交通標志識別算法[J].計算機應用,2020,40(8):2472-2478.
[9] Zuo Z R,Yu K,Zhou Q,et al.Traffic signs detection based on faster R-CNN[C]//2017 IEEE 37th International Conference on Distributed Computing Systems Workshops.June 5-8,2017,Atlanta,GA,USA.IEEE,2017:286-288.
[10] Zhang J M,Huang M T,Jin X K,et al.A real-time Chinese traffic sign detection algorithm based on modified YOLOv2[J].Algorithms,2017,10(4):127.
[11] Howard A G,Zhu M L,Chen B,et al.MobileNets:efficient convolutional neural networks for mobile vision applications[EB/OL].[2021-09-20].https://arxiv.org/abs/1704.04861.
[12] He K M,Zhang X Y,Ren S Q,et al.Spatial pyramid pooling in deep convolutional networks for visual recognition[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2015,37(9):1904-1916.
【通聯編輯:唐一東】
收稿日期:2021-10-15
作者簡介:王澤華(1995—),男,河北邯鄲人,碩士,研究方向為計算機視覺;宋衛虎(1996—),男,河北邢臺人,碩士,研究方向為計算機視覺;吳建華(1997—),男,河北邯鄲人,碩士,研究方向為深度學習。