袁小平, 王準, 韓俊, 陳燁
(中國礦業(yè)大學信息與控制工程學院, 徐州 221116)
隨著城市建設的快速發(fā)展,城市人口越來越密集,汽車保有量不斷增加,給有限的交通資源帶來了巨大壓力。道路擁堵,交通安全隱患增多,交通事故頻發(fā),嚴重影響了人們的日常生活和生命安全。已有的交通資源條件難以改變,將目標檢測算法應用到交通場景中完成行人、車輛以及交通信號燈的實時檢測來解決問題成為研究重點[1]。
基于深度學習的目標檢測算法的準確性與實時性表現(xiàn)較好?;谏疃葘W習的目標檢測算法可以分為基于回歸的單階段(one-stage)目標檢測算法和基于候選區(qū)域的兩階段(two-stage)目標檢測算法。其中,基于候選區(qū)域的檢測行為由兩個階段實現(xiàn):第一階段生成目標的候選區(qū)域,第二階段對候選區(qū)域中的候選框大小和位置進行預測,最后生成預測框。該類算法在識別準確率以及定位精度上有著不錯的效果,但網(wǎng)絡模型復雜,運算速度慢。代表算法有Faster-RCNN(faster regions with cnn features)[2];而基于回歸的目標檢測算法則是直接生成相應的候選框,將分類和回歸任務都視作回歸問題。相比于兩階段目標檢測算法,其雖然并不具備更好的檢測能力,但模型簡單,運算速度較快。代表算法有SSD(single shot multibox detector)[3]和YOLO[4-7]系列。但是實際交通場景包含眾多遮擋目標以及密集小目標,存在目標尺寸差距大問題,不利于常規(guī)卷積神經(jīng)網(wǎng)絡提取特征,使用常規(guī)目標檢測算法存在漏檢嚴重問題。
針對上述問題,本文研究以YOLOv4算法框架結(jié)構(gòu)作為基礎(chǔ),提出改進注意力機制的多尺度特征提取融合檢測網(wǎng)絡。主要研究方法如下。
(1)為了更有效地提取圖像多尺度特征,提出一種并行殘差連接的多尺度特征提取融合模塊MultiResBlock作為主干網(wǎng)絡特征提取模塊,該模塊可以充分提取多尺度特征信息,提升網(wǎng)絡推理速度,同時為了保證網(wǎng)絡的輕量化,引入Ghost模塊進行特征整合以及特征圖尺寸通道重構(gòu)。
(2)為了提高對待檢測目標的關(guān)注程度,提出一種輕量級的混合注意力模塊,該模塊可以增強對小目標特征提取能力,減少背景對算法的干擾,同時可以避免注意力機制過度聚焦帶來的漏檢問題。
(3)為了提高深層網(wǎng)絡全局信息提取能力,構(gòu)建長距離依賴關(guān)系,提出一種倒殘差自注意力模塊IRViTBlock引入深層網(wǎng)絡,使得深層網(wǎng)絡能夠獲得全局感知,捕獲特征圖的全局信息。
針對復雜交通場景下小目標居多、遮擋嚴重、背景復雜且分布密集等特點,本文研究提出基于YOLOv4框架的MRA_YOLO模型,其中主干網(wǎng)絡基于本文提出的多尺度特征提取融合模塊(MultiResBlock)、倒殘差自注意力模塊(IRViT)以及引入的GhostNet[8]中Ghostbottleneck模塊進行重新構(gòu)建,同時在主干網(wǎng)絡淺層以及主干網(wǎng)絡輸出端引入本文改進的輕量級混合注意力機制,網(wǎng)絡整體結(jié)構(gòu)如圖1所示。
感受野是卷積神經(jīng)網(wǎng)絡每一層輸出特征圖(feature map)上的像素點映射到輸入圖像的區(qū)域大小,不同尺度的特征具有不同的感受野,感受野較小的特征圖包含更多的細節(jié)信息,有利于小目標的檢測,感受野較大的特征圖,包含全局信息,有利于大目標的檢測。采用固定尺寸的卷積核對特征圖進行運算,感受野受限,無法充分的提取目標特征,不適用于目標尺寸差距大的交通場景。
原始的YOLOv4網(wǎng)絡,特征提取部分采用的均是固定尺寸的卷積核操作,難以提取到有效的細節(jié)和位置信息,同時固定的感受野無法準確提取特征圖的上下文信息。為了充分提取不同尺度的特征、更充分挖掘特征信息,本文構(gòu)建了多尺度特征提取模塊MultiResBlock。該模塊采用多種卷積并行提取特征,然后將獲得的多尺度特征圖進行特征融合。為了盡可能減少網(wǎng)絡參數(shù)量與計算量,該結(jié)構(gòu)引入了深度可分離卷積(depthwise separable convolution)[9]與空洞卷積(dilated convolution)[10],整個模塊如圖2所示。MultiResBlock由3個部分組成。
(1)四分支多尺度特征并行提取部分:第1條分支通過1×1卷積提取小感受野的特征,第2條分支與第3條分支首先通過PConv(pointwise convolution)對通道進行降維,然后通過3×3的DConv(depthwise convolution)提取中等感受野的特征,最后通過PConv進行通道升維,最后將第2條分支與第3條分支的輸出進行concat拼接。在網(wǎng)絡深度相同的前提下,并行運算可以節(jié)省大量計算開銷,提升推理速度,考慮到直接使用5×5卷積或者兩次3×3卷積堆疊會增加網(wǎng)絡參數(shù)量,減緩網(wǎng)絡推理速度。因此,該結(jié)構(gòu)在第4條分支首先通過PConv對通道進行降維,然后通過擴張系數(shù)為2的空洞卷積提取大感受野的特征,最后通過PConv進行通道升維。另外,考慮到實際交通背景下小目標居多,過高的感受野帶來的位置信息有效性不大,因此該結(jié)構(gòu)只設置一組擴張系數(shù)為2的空洞卷積進行處理,同時前3個分支可以解決空洞卷積可能無法用到所有信息的問題,最后將4個分支的特征信息進行add連接。
(2)殘差連接部分:為了防止多分支特征并行提取效果不佳,同時為了加快網(wǎng)絡收斂速度,引入殘差連接,將原有特征圖的特征信息,與通道拼接后的多尺度特征信息進行add。
(3)特征信息重編碼部分:通過一組卷積+批歸一化(BatchNormalization)+SiLU激活函數(shù)操作,對(1)、(2)兩部分提取到的多尺度特征信息進行重編碼,充分融合多尺度特征信息,同時重構(gòu)特征圖尺寸與通道。
本文利用多尺度特征提取模塊作為主干網(wǎng)絡主要特征提取及融合模塊。
神經(jīng)網(wǎng)絡中經(jīng)過卷積層輸出的特征圖中存在很多相似特征圖,即冗余特征圖,通過大量運算生成這些冗余特征圖會浪費運算資源,為了保證網(wǎng)絡的輕量化,減輕運算資源的浪費,引入GhostNet中的Ghost模塊。GhostNet將常規(guī)卷積分為兩部分進行處理,一部分進行PConv對通道進行壓縮,生成輸入的特征濃縮,然后將濃縮特征進行一次DConv生成相似特征圖Ghost,最后與濃縮特征進行一次concat拼接,具體實現(xiàn)過程如圖3所示。
圖2 多尺度特征提取模塊Fig.2 Multi-scale feature extraction module
圖3 常規(guī)卷積和Ghost模塊Fig.3 General convolution and Ghost module
Ghost模塊計算量與普通卷積計算量對比如式(1)所示。
(1)
式(1)中:Pconv為普通卷積計算量大小;Pghost為Ghost模塊計算量大小,輸入尺寸為(hin,win,cin),輸出尺寸為(hout,wout,cout);k為卷積核尺寸;s為壓縮比;rc為壓縮率。
本文利用Ghost模塊進行特征圖尺寸的重構(gòu)、通道調(diào)整,以及特征信息的整合。
圖4 輕量級混合注意力模塊Fig.4 Lightweight hybrid attention module
混合注意力機制分為兩個部分:一部分將輸入特征通過空間維度運算得到空間注意力權(quán)重;另一部分將輸入特征通過通道維度運算得到通道注意力權(quán)重。對于交通背景下的目標檢測任務,注意力機制將更大的權(quán)重分配給目標所在區(qū)域,而對背景噪聲信息分配較小權(quán)重。因此,模型會將更多地學習重心放在權(quán)重較大的區(qū)域,從而在有限地計算資源下更好的學習有效特征,提升目標檢測能力。
CBAM(convolutional block attention modoul)[11]作為混合注意力機制的代表模塊,被廣泛應用于目標檢測任務。CBAM中CAM(channel attention module)通過由全連接層構(gòu)成的多層感知機進行運算,SAM(spatial attention module)通過卷積進行運算,這會帶來大量冗余的參數(shù)量。
本文研究基于更高效、更輕量的NAM(normalization-based attention module)[12]進行改進。NAM注意力機制不再通過全連接或卷積計算權(quán)重值。對于NAM中的通道注意力子模塊,通過批歸一化(batch normalization,BN)計算縮放因子,縮放因子即方差,縮放因子越大表示通道變化越劇烈,變化劇烈的通道包含更豐富的信息,重要性更大,而變化緩慢的通道則信息單一,重要性較小,如式(2)所示。
(2)
式(2)中:Bin為經(jīng)過BN處理前的特征;Bout為經(jīng)過BN處理后的特征;μB和σB分別為BN處理前特征的均值和標準差;ω為通道縮放因子,由通道對應縮放因子占全部縮放因子的比重計算而來;ε用來防止分母為0;B為位移參數(shù)。對于NAM中的空間注意力子模塊,通過像素歸一化(pixel normalization,PN)計算縮放因子,執(zhí)行類似的操作。
由于復雜交通背景下密集小目標居多,直接串行連接通道注意力機制與空間注意力機制可能會導致注意力區(qū)域過于聚集而感受野變小,增加聚焦區(qū)域邊緣目標被當作背景誤處理的可能性,會丟失注意力邊緣的特征[13]。因此,本文研究對原始NAM模塊結(jié)構(gòu)連接方式進行改進,構(gòu)造的輕量級混合注意力模塊RNAM(revised NAM)如圖4所示。
常規(guī)的混合注意力機制連接方式首先經(jīng)過通道注意力機制運算得到權(quán)重后與特征圖相乘得到基于通道注意力的特征圖,然后經(jīng)過空間注意力機制運算得到權(quán)重后與基于通道注意力的特征圖相乘得到最終的特征圖,基于通道注意力的特征圖相比較原始特征圖含有更多的語義信息,會使得注意力聚焦區(qū)域變小,增加丟失注意力邊緣特征的可能性。因此,在將基于通道注意力的特征圖輸入空間注意力子模塊運算得到含有通道注意力機制先驗知識的權(quán)重信息后,不再與基于通道注意力的特征圖相乘,而是與原始特征圖相乘,得到基于空間注意力機制的特征圖,該特征圖具有更加完整的位置聚焦區(qū)域。最后,將得到的基于通道注意力的特征圖與基于空間注意力的特征圖進行add加和與sigmoid歸一化操作,得到基于輕量級混合注意力運算的特征圖。
文獻[14]證明了在淺層主干網(wǎng)絡引入混合注意力機制對于檢測復雜背景下小目標的有效性,因此在主干網(wǎng)絡第二個卷積模塊引入改進的混合注意力機制RNAM;文獻[15]證明了在主干網(wǎng)絡輸出的3條分支通路上加入混合注意力機制帶來的檢測精度提升最有效,因此本文將改進的混合注意力機制RNAM加入主干網(wǎng)絡3個尺寸的輸出通路上。
卷積神經(jīng)網(wǎng)絡具有局部連接和權(quán)值共享的特性,根據(jù)卷積的權(quán)值在局部感受野上通過聚合函數(shù),將權(quán)值在整個特征圖中共享,固有特征為圖像處理帶來了至關(guān)重要的歸納偏差。自注意力模塊則采用基于特征上下文的加權(quán)平均操作,通過相關(guān)像素對之間的相似函數(shù)動態(tài)計算注意力權(quán)重,這種靈活性使得注意力模塊能夠適應地關(guān)注不同的區(qū)域,并捕捉更多的特征。卷積神經(jīng)網(wǎng)絡的局部性和自注意力機制的全局性存在潛在的互補性,為了提高網(wǎng)絡的全局性,本文研究引入基于自注意力機制的ViT(vision transformer)[16]。
圖5 倒殘差自注意力模塊Fig.5 Inverse residual self-attention module
ViT將輸入特征圖切分為多個patch(圖像塊),對每個patch都做一次線性變換降維處理同時嵌入位置信息,在額外加入一個class token(分類向量)組成一段一維向量序列后送入Transformer編碼模塊,與卷積神經(jīng)網(wǎng)絡中的BN不同,編碼模塊使用層標準化(layer normalization,LN),LN獨立于batch size對單個數(shù)據(jù)指定維度進行處理,如式(3)所示。
(3)
式(3)中:x為輸入;y為輸出;E[x]為對輸入均值;Var[x]為對輸入求方差;為一個很小的參數(shù),用來防止分母為0;γ、β為訓練參數(shù)。
多頭自注意力模塊(multi-head attention)基于自注意力模塊提出,如式(4)所示。
由于點乘運算后數(shù)值較大,導致通過softmax后梯度變化很小,因此引入dk進行縮放。
(4)
式(4)中:W為可訓練、權(quán)值共享的變換矩陣;Q、K、V分別為由映射后輸入經(jīng)由變換矩陣運算后生成的qi、ki、vi組成的矩陣;dk為向量ki的長度;softmax為softmax運算。
自注意力機制減少了對外部信息的依賴,僅依靠特征圖內(nèi)部信息的相關(guān)性進行矩陣運算即可得到不同patch之間的注意力權(quán)重,然而標準的ViT模塊忽略了CNN模型固定的空間歸納偏差,這導致網(wǎng)絡需要更多的參數(shù)學習視覺表征,同時ViT模塊對L2正則化很敏感,很容易過擬合,因此,本文借鑒MobileViT[17]的思想,構(gòu)建倒殘差自注意力模塊,如圖5所示。
對于輸入特征信息,首先通過卷積模塊進行局部信息編碼,然后通過PConv學習輸入通道的線性組合進行通道升維,再對特征圖進行切分編碼,將(H, W, D)信息編碼為(P, N, D),相比較二維的標準ViT保留了像素空間順序信息,通過層歸一化加速模型收斂,然后通過一個多頭注意力模塊將輸入進行多組自注意力運算,將結(jié)果拼接后與可學習參數(shù)運算得到Attention,在模塊后應用DropPath防止模型過擬合,然后經(jīng)過一組前饋神經(jīng)網(wǎng)絡運算,在前饋神經(jīng)網(wǎng)絡前后同樣應用LN與DropPath,在對特征圖折疊復原后通過PConv將特征信息映射回低維空間,原始結(jié)構(gòu)直接與輸入進行拼接,本文將輸入進行一次局部信息編碼后進行拼接,能夠更好的融合局部信息的先驗知識,最后在經(jīng)過一次局部信息編碼后,通過卷積模塊進行通道的融合,倒殘差自注意力模塊在充分提取局部特征的基礎(chǔ)上實現(xiàn)了全局感知。
對于神經(jīng)網(wǎng)絡,淺層網(wǎng)絡特征維度較低,特征表現(xiàn)細節(jié)信息,覆蓋局部區(qū)域,內(nèi)容更為具體,因此對感受野及位置信息的需求不大;而深層網(wǎng)絡特征維度較高,特征更傾向于表現(xiàn)整體信息,覆蓋區(qū)域越全面,內(nèi)容越抽象,對感受野及位置信息要求較大,因此將能夠獲取全局感知的倒殘差自注意力模塊加入主干網(wǎng)絡深層,結(jié)合多尺度特征提取融合模塊構(gòu)建主干網(wǎng)絡MultiGhostViTNet。
最后,為了進一步避免漏檢問題,引入Soft-NMS[18]替換NMS,NMS存在的問題是當置信度最高的檢測框與待判斷檢測框iou過大時,會將待判斷檢測框直接刪除,Soft-NMS則將待判斷檢測框給予一定的懲罰而不是直接置零,遠離置信度最高檢測框的預測框懲罰較小,隨著兩者重合度的提高懲罰線性增大,一定程度上優(yōu)化了漏檢問題,NMS與Soft-NMS對比如式(5)所示。
(5)
實驗環(huán)境如表1所示。實驗選取來自自動駕駛算法比賽中的Udacity數(shù)據(jù)集來驗證本文算法的有效性,整個數(shù)據(jù)集共有24 420張圖片。文獻[19]選取整個數(shù)據(jù)集進行車輛行人目標檢測,本文從中選取15 000張場景復雜、密集小目標居多的圖片作為實驗數(shù)據(jù)集,同時增加對交通信號燈的檢測。數(shù)據(jù)集圖片分辨率均為1 920×1 200。圖片中標注信息有car、pedestrian、truck、trafficLightRed、trafficLightRedLeft、trafficLightGreen、trafficLightGreenLeft、trafficLightYellow共8類,本文研究將car和truck合并為car,將pedestrain更改為person,將traf-ficLightRed、afficLightRedLeft和trafficLightYellow合并為RedLight,將trafficLightGreen和trafficLightGreenLeft合并為GreenLight,主要完成車輛、行人、紅燈及綠燈的檢測任務,Udacity數(shù)據(jù)集圖像如圖6所示。
表1 實驗環(huán)境
圖6 Udacity數(shù)據(jù)集Fig.6 Udacity dataset
本次實驗采用平均精度(average precision,AP)、不同類別平均精度的平均值(mean average precision,mAP)中的mAP50、模型大小(model size)、參數(shù)量(params)、幀率(frames per second,FPS)幾項性能指標評判算法的性能。
將Udacity數(shù)據(jù)集按8∶1∶1的比例劃分為訓練集、驗證集和測試集。為了克服K-means算法由于初始聚類中心選擇而存在隨機性的問題,本文使用K-means++聚類算法替換K-means算法對Udacity訓練集進行聚類,得到3種尺度的Anchor box,如表2所示。
訓練階段的參數(shù)設置如表3所示,其中學習率分別在80輪、140輪下調(diào)為前一階段的10%。
表2 錨框大小
訓練過程的Loss曲線及mAP(mean average precision)曲線如圖7所示,網(wǎng)絡在160個Epoch左右收斂。
表3 訓練參數(shù)設置
圖7 訓練過程曲線Fig.7 Training process curve
本文所提改進方法分別為:①用構(gòu)造的多尺度特征提取模塊、倒殘差自注意力模塊以及引入的Ghost模塊重新構(gòu)建主干網(wǎng)絡;②引入構(gòu)造的輕量化混合注意力機制RNAM;③利用Soft-NMS替換NMS。為了分析本文改進方法的有效性,本節(jié)進行消融實驗,包括:①以原始YOLOv4算法為基礎(chǔ),分別只增加一種改進方法,驗證每一個改進方法的有效性;②以增加一種改進方法后的算法為基礎(chǔ),再次增加一種改進方法,驗證兩種改進方法配合使用的有效性。實驗結(jié)果如表4所示。本文提出的主干網(wǎng)絡在實時性提升27.5%的前提下,精度提升了0.81%,在有效提升網(wǎng)絡實時性的前提下取得了部分精度提升,分析認為多尺度特征提取模塊特征提取能力更強,同時結(jié)合Ghost模塊降低了模型計算復雜度,深層倒殘差自注意力模塊增強了深層網(wǎng)絡的學習能力;本文提出的輕量級注意力模塊可以將精度提升2.03%,對本文算法精度提升最大;通過引入Soft-NMS替換NMS可以在基本不損失實時性的前提下提升0.17%的精度。本文提出的改進方法都會帶來有效提升,最終算法相比較原始YOLOv4算法在Udacity數(shù)據(jù)集上檢測精度提升了3.07%,達到了84.41%,FPS提升了22.5%,達到了49。綜上,本文算法在實時性、準確率方面都取得了較大提高。
為了驗證本文改進注意力模塊對比其他注意力機制的有效性,用YOLOv4、YOLOv4+SE[20]、YOLOv4+CBAM與YOLOv4+RNAM進行實驗對比,結(jié)果如表5所示,可見本文提出的輕量級注意力模塊可以在基本不增加模型大小的前提下取得明顯精度提升,分析認為CBAM中的全連接層和卷積層帶來了大量的參數(shù)量,RNAM通過歸一化取得權(quán)重大大減少了網(wǎng)絡參數(shù)量,同時優(yōu)化的結(jié)構(gòu)進一步提高了網(wǎng)絡對密集小目標的檢測能力。
為了進一步評估本文算法對比其他主流算法的優(yōu)越性,將本文算法分別與Faster R-CNN、SSD、YOLOv3、YOLOv4、YOLOv4-tiny、YOLOv5s、YOLOX-X[21]算法進行對比實驗,結(jié)果如表6所示。相比較經(jīng)典網(wǎng)絡Faster R-CNN、SSD、YOLOv3,本文算法取得了最高精度,同時實時性、模型規(guī)模也表現(xiàn)較好;雖然YOLOX-X檢測精度與本文算法相近,但不滿足實時性要求,本文算法檢測速率相比較YOLOX-X高出28FPS,同時模型體量只有YOLOX-X的31.9%;相比較YOLOv4-tiny與YOLOv5s,雖然兩個輕量化網(wǎng)絡模型較小,同時取得了很高的檢測速度,分別達到了113、89,但檢測精度僅僅達到了55.25%、68.80%,無法應用到實際復雜交通場景中,本文網(wǎng)絡在取得較高實時性表現(xiàn)的前提下,精度分別提高了29.16%、15.61%。實驗結(jié)果表明,本文提出的MRA_YOLO算法在取得較高實時性前提下,有著較高的檢測精度表現(xiàn),同時對比同等檢測精度網(wǎng)絡,模型規(guī)模得到了較大壓縮。
表4 消融實驗
表5 不同注意力模塊實驗對比
圖8 實際場景檢測對比Fig.8 Comparison of actual scene detection
表6 不同算法實驗對比
為了能直觀地展示本文算法的檢測性能,使用本文算法與YOLOv4算法分別對兩種光照及路況下的實際交通場景圖進行檢測,實驗結(jié)果如圖8所示。本文算法在兩種光照背景條件下均能有效檢測出部分YOLOv4漏檢目標,對于密集、遮擋目標檢測具有一定的改進,同時本文算法能夠?qū)⑴c背景難以區(qū)分的目標成功檢測出來,目標檢測能力明顯提高,另外YOLOv4存在誤檢情況,本文算法不存在誤檢情況。因此,相比較YOLOv4,本文算法更適用于實際復雜交通場景下的目標檢測任務。
提出了一種改進注意力機制的多尺度特征融合檢測算法,得出如下結(jié)論。
(1)構(gòu)造了多尺度特征提取融合模塊,選用1×1卷積、深度可分離卷積、空洞卷積進行構(gòu)建,多尺度特征提取能夠加強網(wǎng)絡特征提取能力,增大網(wǎng)絡感受野,網(wǎng)絡可有效充分提取不同尺度目標的特征信息;在多尺度特征提取融合模塊中,將3×3卷積由單通路運算更改為并行運算結(jié)合通道拼接節(jié)省了網(wǎng)絡計算開銷,提升了推理速度,最后通過殘差連接,保留了原始特征,同時加快了模型收斂。
(2)混合注意力機制中的全連接層和卷積層會帶來額外的參數(shù)量及運算量,選用批歸一化替換注意力機制中的全連接層和卷積層進行權(quán)重運算可有效降低注意力機制的參數(shù)量與運算量;更改混合注意力機制的連接方式,避免了網(wǎng)絡注意力過于聚焦于目標區(qū)域而丟失目標區(qū)域邊緣特征信息的問題,將改進的輕量級注意力模塊加入主干網(wǎng)絡淺層與輸出到加強特征提取網(wǎng)絡的通路,有效提高了網(wǎng)絡關(guān)注目標的能力,增強了網(wǎng)絡的檢測能力。
(3)自注意力模塊具有良好的全局性,結(jié)合卷積模塊的局部性能對網(wǎng)絡帶來有效的增益。結(jié)合倒殘差的思想,將卷積與自注意力機制結(jié)合構(gòu)造倒殘差自注意力模塊,融合特征的局部信息與全局信息,加入主干網(wǎng)絡的深層,使得深層主干特征提取網(wǎng)絡獲得了全局感知,有效提高了深層網(wǎng)絡特征學習能力。
(4)通過多組實驗,驗證了本文算法的有效性,本文算法在輕量化的基礎(chǔ)上提高了檢測精度,同時保證了基本的實時性,相比較YOLOv4、YOLOv5s、YOLOX等代表算法更適合部署于復雜交通背景中進行交通燈、車輛、行人目標檢測任務。