尹宋麟,譚 飛,2,周 晴,鮮 陽
(1.四川輕化工大學 自動化與信息工程學院,四川 自貢 643000;2.人工智能四川省重點實驗室,四川 宜賓 644000)
隨著智能交通系統(tǒng)(Intelligent Traffic System,ITS)的出現(xiàn),自動駕駛成為ITS開發(fā)中的必要主題,而對于交通標志的檢測識別又是自動駕駛領域中一項極其重要的工作。由于交通標志在現(xiàn)實生活中的位置往往不固定,而且車載設備拍攝的圖像中交通標志往往只占據(jù)圖像很小的一部分,導致對其檢測與識別存在一定的困難。
隨著計算機計算水平的不斷提升,深度學習迅速崛起,各種基于深度學習的檢測算法也不斷發(fā)展,深度學習所涉及的領域很廣,在交通標志檢測領域也取得了很大的成就。目前,基于深度學習的檢測方法可以分為2類:兩階段檢測方法和一階段目標檢測方法。兩階段檢測方法又稱為基于候選框的檢測,其中最具代表性的是Faster R-CNN[1],它先提取輸入圖像中物體的區(qū)域生成候選框,然后再對候選框區(qū)域進行卷積分類識別,兩階段檢測方法獲得的結(jié)果精度很高,但速度慢;以YOLO[2]和SSD[3]為代表的一階段目標檢測方法將目標框的定位和識別任務同時進行,直接回歸目標的位置坐標和分類概率,在輸出層通過卷積直接預測,速度較兩階段目標檢測方法變快了,但精度下降了。在實際應用中,實時性是一直被關注的關鍵指標,因此一階段目標檢測方法受到更多學者的研究,如何提高算法的精度是個難題。目前,已有大量學者進行了實驗改進并獲得了不錯的成果。
王林等[4]在YOLOv3基礎上提出了一種融合注意力機制與上下文信息的交通標志檢測方法,充分利用上下文信息增強對小目標的檢測,并在TT100K[5]數(shù)據(jù)集上提升了3.03%的精確度。Shen等[6]提出了GMSA模塊,增強了小目標的特征表示,并設計了特征融合模塊,有助于多尺度檢測,同時改進了損失函數(shù),在多種交通標志數(shù)據(jù)集上都取得了不錯的結(jié)果。郭璠等[7]提出了一種通過對檢測分支特征在通道和空間2個維度進行重新標定的YOLOv3-A算法,改善了對小目標的檢測性能,在原有算法上精度和召回率分別提升了1.9%和2.8%。胡鵬等[8]通過改進YOLOv3的網(wǎng)絡結(jié)構(gòu),結(jié)合Softer-NMS算法,減少了模型計算量,加快了檢測速度,與原算法相比快了10.95%。蔡軍等[9]通過在YOLOv3中加入上下文模塊并融合網(wǎng)絡損失函數(shù)來解決交通標志漏檢和虛警問題,在TT100K中取得了較好的檢測效果。Dubey等[10]以RetinaNet[11]為基礎,使用層數(shù)更深的ResNet[12]為基礎網(wǎng)絡,并提出一種兩步TSR方法,最后在GTSDB(German Traffic Sign Detection Benchmark)數(shù)據(jù)集上進行分類測試,得到了更好的分類精度。
本文基于YOLOv4模型,針對交通標志在圖像中尺寸較小的問題,改進算法結(jié)構(gòu)的檢測層,加入152×152的檢測層,去掉19×19的大感受野檢測層;在算法中加入注意力機制使網(wǎng)絡聚焦于有用特征,提高算法對小尺度目標的檢測能力;利用K-means算法對候選框重新聚類,加快網(wǎng)絡的收斂。最終算法得出模型在測試集上取得了更好的性能,精度有了較大的提升。
YOLOv4算法是YOLOv3的改進版,在v3的基礎上增加了很多實用技巧,在檢測時實現(xiàn)目標框定位和識別同時進行,實現(xiàn)“端到端”的檢測[13]。YOLOv4算法的骨干網(wǎng)絡采用CSPDarknet53,它是在Darknet53基礎上改進而來,在殘差結(jié)構(gòu)中使用了CSPNet,加強了網(wǎng)絡學習能力的同時,保證了精度并降低了內(nèi)存消耗和計算成本。同時,也改變了激活函數(shù),使用了Mish[14]激活函數(shù),Mish激活函數(shù)相比于LeakyReLU激活函數(shù),在負值區(qū)域更為平滑,有利于梯度的計算和更新,能獲得更好的準確性和泛化能力。在骨干網(wǎng)絡之后引入了空間金字塔池化(Spatial Pyramid Pooling,SPP)結(jié)構(gòu),該結(jié)構(gòu)利用1×1,5×5,9×9和13×13四個不同的池化核進行池化處理,能夠有效地將淺層的細節(jié)信息和深層的語義信息進行特征融合,增加感受野。路徑聚合網(wǎng)絡由特征金字塔網(wǎng)絡(Feature Pyramid Network,F(xiàn)PN)和路徑增強網(wǎng)絡(Path Aggregation Network,PAN)2部分組成,F(xiàn)PN將深層的語義信息傳遞下來,PAN將淺層的定位信息傳遞上去,加強了網(wǎng)絡的表征能力。檢測頭沿用了YOLOv3中的Head,由3×3和1×1卷積層組成,對PAN處理后輸出的特征層進行結(jié)果預測[15]。
YOLOv4會根據(jù)圖片的輸入尺寸將圖像劃分成對應個數(shù)的網(wǎng)格,每個網(wǎng)格有3個先驗框?qū)?,最終網(wǎng)絡預測到圖像上的目標框就是模型通過參數(shù)對3個先驗框優(yōu)化得到。因此,當這3個先驗框離目標的真實框越接近,網(wǎng)絡的誤差就越小,收斂得就越快。在YOLOv4中,先驗框是根據(jù)COCO數(shù)據(jù)集得到,而本文實驗采用的是TT100K數(shù)據(jù)集,數(shù)據(jù)集中多是小目標,與COCO數(shù)據(jù)集差別較大,所以重新使用K-means聚類算法對先驗框進行更新以提高定位精度。由于TT100K數(shù)據(jù)集種類高達221,而且其中有很多種類個數(shù)極少,如果對這221類交通標志進行訓練,由于種類分布極其不均,會導致訓練效果不滿意,因此本文通過python腳本選出數(shù)據(jù)集中類別的樣本個數(shù)最多的20類進行聚類,得到的結(jié)果如圖1所示。其中,9種不同顏色分別代表由K-means聚類得到的簇。
圖1 20類交通標志標注框大小分布
由于TT100K交通標志數(shù)據(jù)集大多是小目標且比較集中,由圖1可以看出,聚類的先驗框分布在[5,40],因此少量偏大或偏小的目標不能被包含,于是對 K-means算法得到的先驗框再進行一次線性縮放[16]:
x′1=αx1,
(1)
x′9=βx9,
高管是提高企業(yè)技術(shù)創(chuàng)新的關鍵人物。采用高薪激勵高管,可以讓高管在企業(yè)技術(shù)創(chuàng)新中發(fā)揮重要作用。但在高薪激勵的過程中,應當采用多元化的激勵方式,并注重不同激勵方式的交互關系和協(xié)同作用,以充分、高效發(fā)揮激勵效果。
(2)
(3)
(4)
式中,i∈[2,8];經(jīng)多次實驗,取α=0.5,β=3時,訓練效果最好。更新后的先驗框大小如表1所示。
表1 線性縮放后的先驗框
YOLOv4算法的目標檢測框使用了3個尺度:19×19,38×38和76×76,對圖像的大、中、小3類目標進行檢測。但這3個尺度是根據(jù)COCO數(shù)據(jù)集中類別的尺寸大小設定的,而本文使用的是TT100K數(shù)據(jù)集,其中的交通標志類別尺寸相較于COCO較小,因此若采用v4默認的3個尺度,會在實際測試中出現(xiàn)漏檢和錯檢的現(xiàn)象,導致模型精度降低?;谏鲜鰡栴},本文提出了一種改進的特征提取網(wǎng)絡,結(jié)構(gòu)如圖2所示。
圖2 改進后的YOLOv4結(jié)構(gòu)
改進后的YOLOv4結(jié)構(gòu)去除了原算法結(jié)構(gòu)中的19×19尺度,換成了152×152尺度,原因是相較于交通標志這種小目標檢測,尺度越大的檢測框在輸入圖像中的感受野越小,更能捕捉到交通標志。將骨干網(wǎng)絡的76×76特征層與SPP池化后2次上采樣的特征層進行拼接后,再次上采樣與骨干網(wǎng)絡的152×152特征層進行拼接,最后讓其進行5次卷積,輸出到網(wǎng)絡預測層進行預測;SPP網(wǎng)絡處理的特征層經(jīng)過一次上采樣后,和骨干網(wǎng)絡中的38×38特征層進行拼接,然后與PAN網(wǎng)絡中的76×76層下采樣后的特征層進行拼接,最后輸入38×38尺度的預測層進行預測;預測網(wǎng)絡中的76×76尺度經(jīng)過SPP網(wǎng)絡2次上采樣后,再與152×152尺度下采樣一次拼接得到。
人類在學習和理解未知的事物時,會迅速將注意力放到關鍵部位,而忽略掉無用的信息,這樣才能快速準確地得到需要的信息。研究者們受此啟發(fā),把注意力機制加入到了卷積神經(jīng)網(wǎng)絡中,在犧牲少量計算量的同時,大大提高傳統(tǒng)網(wǎng)絡模型的性能。本文在YOLOv4中加入高效通道注意力(Efficient Channel Attention,ECA)模塊[17],在對主干網(wǎng)絡提取的3個特征層的通道維度上進行權(quán)重訓練,使模型更加關注有用信息,ECA模塊結(jié)構(gòu)如圖3所示。
圖3 ECA模塊結(jié)構(gòu)
ECA模塊可以看作是Squeeze-and-Excitation(SE)模塊[18]的改進版本,ECA的作者認為SE對通道注意力機制的預測帶來了副作用,捕獲所有通道的依賴關系是低效且不必要的,而卷積具有良好的跨通道信息獲取能力,因此ECA模塊用1D卷積替換了SE模塊的2次全連接。1D卷積的卷積核大小會影響跨通道交互的覆蓋率,因此對1D卷積核大小k的選擇就變得非常重要,雖然k可以通過手動調(diào)整,但是這樣會浪費大量的時間和精力。k與C成非線性比例,C越大,長期交互作用越強;反之C越小,短期交互作用越強,即:
C=φ(k)=2(γ×k-b)。
(5)
當確定通道維數(shù)C后,卷積核大小k為:
(6)
式中,γ,b是調(diào)節(jié)參數(shù);|t|odd表示最近的奇數(shù)t。
圖4 加入ECA的部分網(wǎng)絡結(jié)構(gòu)
實驗采用TT100K交通標志數(shù)據(jù)集。該數(shù)據(jù)集包含的交通標志種類較多,場景豐富,涵蓋了照度和天氣條件的巨大變化,可以客觀地反映現(xiàn)實條件下的交通標志情況。TT100K數(shù)據(jù)集中的交通標志在圖像中所占比例較小,因此會顯得相對模糊,加之圖像又包含大量的無關背景信息,導致模型檢測相對困難,具有較大的挑戰(zhàn)[19]。本研究選取了8 000張涵蓋了20種類型的交通標志圖,部分圖案如圖5所示。本次實驗以8∶1∶1的比例來劃分訓練集、驗證集和測試集,實驗中的部分數(shù)據(jù)集圖片如圖6所示。
(a)i2
圖6 部分數(shù)據(jù)集圖片
實驗使用一張顯存大小為11 GB的NVIDIA GeForce 1080Ti顯卡訓練和測試所有模型。在訓練過程中,對網(wǎng)絡設定的部分超參數(shù)設置如表2所示。本文改進算法模型的損失函數(shù)曲線如圖7所示,當訓練達到80輪時,損失函數(shù)趨于平穩(wěn),模型收斂。
表2 部分超參數(shù)設置
圖7 改進模型的訓練損失函數(shù)曲線
評估算法的優(yōu)劣需要多個指標,本文采用準確率P(Precision)、召回率R(Recall)、平均準確率均值mAP(mean Average Precision)以及檢測速率幀每秒FPS(Frame Per Second)來判斷模型性能的好壞[20]。計算如下:
(7)
(8)
(9)
式中,TP表示針對某個目標類,被模型判定和實際都是正樣本的數(shù)目;FP表示模型判定為正樣本,實際上是負樣本的數(shù)目;FN表示模型判定為負樣本,實際上是正樣本的數(shù)目;mAP表示所有檢測類別平均準確率的均值。
為了論證上述改進方法的有效性,本文在TT100K數(shù)據(jù)集20類的所有尺度目標上進行消融實驗,通過組合上述所提及的K-means改進先驗框、改進特征提取網(wǎng)絡、加入注意力機制,來驗證不同模塊對網(wǎng)絡性能的提升。測試結(jié)果如表3所示。實驗結(jié)果表明,K-means改進先驗框、改進特征提取網(wǎng)絡、加入注意力機制都提升了模型的性能,并在mAP上分別提高了0.42%,0.94%,0.55%。而集合3個模塊后的改進算法在P,R,mAP上均取得了最好的結(jié)果,與YOLOv4相比,分別提升了3.33%,3.83%,4.58%。可以看出,改進后的算法對于網(wǎng)絡性能的提升是有效的。
表3 TT100K數(shù)據(jù)集上消融實驗結(jié)果
將改進后的網(wǎng)絡與其他的檢測算法進行實驗對比,包括YOLOv3,F(xiàn)aster R-CNN以及SSD。取準確率P、召回率R、IOU為0.5時的mAP和FPS作為評估標準,對比實驗結(jié)果如表4所示。由表4可以看出,本文算法的mAP比第2的Faster R-CNN高出10.37%;在FPS上,本文算法比YOLOv3每秒只高出5張圖片,但高出Faster R-CNN每秒24張圖片??梢钥闯?,改進后的算法在網(wǎng)絡模型的精度和實時性方面都表現(xiàn)良好。
表4 4種檢測網(wǎng)絡對比
為了能夠直觀地看出本文改進算法模型的性能,從TT100K數(shù)據(jù)集中選出3張圖片進行測試,測試結(jié)果如圖8所示。其中,圖8(a)~(c)為YOLOv4網(wǎng)絡的檢測結(jié)果,圖8(d)~(f)為本文改進算法對網(wǎng)絡的檢測結(jié)果。
對比圖8(a)和圖8(d)可以看出,圖8(a)漏檢了pn而圖8(d)檢測出來了,因為這張圖片上pn的像素太小,改進的特征提取網(wǎng)絡利用152×152尺度的檢測頭,能搜索到圖像中感受野更小的區(qū)域,從而避免了漏檢;在圖8(b)和圖8(e)上模型效果對比更加明顯,圖8(b)中一個交通標志都未檢測到,圖8(e)將圖像中的所有交通標志都檢測到了;對比圖8(c)和圖8(f)可以看出,圖8(c)的預測框覆蓋范圍遠遠大于圖像中交通標志的位置,圖8(f)的預測框重合度較高,因為改進的K-means聚類先驗框能更準確快速地擬合到真實框,并且在圖8(f)中未出現(xiàn)對pn的漏檢。綜合來看,本文改進算法訓練的網(wǎng)絡模型對交通標志小目標的檢測以及漏檢方面要優(yōu)于YOLOv4。
(a)YOLOv4
本文主要介紹了改進的YOLOv4交通標志檢測模型,針對交通標志在圖像中占據(jù)位置小、檢測精度較低的問題,在原算法中去除了19×19的大感受野檢測層,加入152×152的小感受野檢測層;在算法中加入ECA模塊,使得網(wǎng)絡把注意力聚焦在有用的信息上,提高了算法的檢測能力;同時利用K-means聚類算法重新生成網(wǎng)絡的先驗框,加速網(wǎng)絡收斂。通過消融實驗驗證了本文所提3個改進方案對比原算法均有提升;通過與YOLOv3,F(xiàn)aster R-CNN和SSD三種算法訓練的模型效果對比,證明了改進后的算法訓練出的模型在小目標檢測、精度、實時性以及漏檢方面的有效性。