陳春輝,馬社祥
(天津理工大學(xué) 集成電路科學(xué)與工程學(xué)院,天津 300384)
交通標(biāo)志識別是智能交通系統(tǒng)中的重要組成部分。無論是自動駕駛系統(tǒng)還是輔助駕駛系統(tǒng),交通標(biāo)志識別為駕駛員提供必要的路況信息、方向指示、交通預(yù)警,以確保行車安全。但是,在實際行車環(huán)境中,道路情況千變?nèi)f化。因此,如何在復(fù)雜環(huán)境下高效、精確地識別小目標(biāo)、模糊目標(biāo)及遮擋目標(biāo)對于交通標(biāo)志識別具有重要意義[1-3]。
近年來,深度學(xué)習(xí)飛速發(fā)展。卷積算子是組成現(xiàn)代神經(jīng)網(wǎng)絡(luò)的核心。由卷積算子構(gòu)成的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)在目標(biāo)檢測領(lǐng)域中取得顯著進展。檢測網(wǎng)絡(luò)主要分為一階段檢測器和兩階段檢測器。一階段檢測器直接回歸物體的類別概率和位置信息,具有檢測速度快、準(zhǔn)確率低的特點,代表性算法有YOLO[4]、SSD[5]、YOLOv2[6]、RetinaNet[7]、YOLOv3[8]等。兩階段檢測器需要先進行候選區(qū)域算法,再通過網(wǎng)絡(luò)進行分類,與一階段檢測器相比速度較慢,但是準(zhǔn)確率較高,代表性算法有SPPNet[9]、RCNN[10]、Fast R-CNN[11]、Faster R-CNN[12]等。
傳統(tǒng)機器學(xué)習(xí)根據(jù)顏色和形狀的區(qū)別進行交通標(biāo)志檢測[13-15]。與傳統(tǒng)機器學(xué)習(xí)方法相比,深度學(xué)習(xí)在檢測交通標(biāo)志過程中更加高效、精確。研究人員提出一種引入深度可分離卷積(Depthwise Separable Convolution,DSC)[16]和改進正負樣本處理算法,以YOLOv3 檢測精度,但是檢測所需時間較長。文獻[17]介紹一種通過精簡主干網(wǎng)絡(luò),以增加特征提取尺度,從而加快YOLOv4 算法的檢測速度,但是對交通標(biāo)志的檢測精度還有待提升。YOLOv5 算法同時兼顧速度和精度等優(yōu)點獲得廣泛應(yīng)用,但是當(dāng)面對交通標(biāo)志這類小目標(biāo)較多的任務(wù)時,采用堆疊大量卷積核進行下采樣的方式,使得采樣特征失去表達能力[18],難以靈活地調(diào)整內(nèi)部參數(shù),從而丟失圖像的細節(jié)信息,導(dǎo)致檢測算法對小目標(biāo)、遮擋目標(biāo)的檢測能力降低。
本文提出基于YOLOv5 的端到端改進網(wǎng)絡(luò)。以新型算子[19]作為采樣架構(gòu),通過自卷積方式減少通道冗余,同時采用控制變量的實驗方式分析網(wǎng)絡(luò)深度與采樣信息的關(guān)系,結(jié)合注意力機制,構(gòu)建跨階段注意力機制(AMCSP)模塊,增加通道的重要性權(quán)值。利用優(yōu)化的通道聚合網(wǎng)絡(luò)(Path Aggregation Network,PAN)[20]進行特征融合,采用K-means 聚類算法重新定義適合交通標(biāo)志的先驗框,在保證檢測精度的同時大幅減少模型計算量。在此基礎(chǔ)上,通過引入距離交并比(Distance Intersection Over Union,DIOU)[21]函數(shù)進行非極大值抑制,采用加入懲罰項的方式,使得目標(biāo)框之間的距離最小化,從而提升檢測精度和回歸效率。
傳統(tǒng)卷積核的設(shè)計主要有2 個重要性質(zhì):1)空間無關(guān)性,采用一個卷積核處理一張?zhí)卣鲌D,不會因為圖像內(nèi)空間變換而改變卷積核的權(quán)值,即全部滑窗共享權(quán)值;2)通道特異性,輸入圖像通道數(shù)量等于卷積核通道數(shù)量,即每個圖像通道獨享其對應(yīng)的卷積核。卷積運算流程如圖1 所示。
圖1 卷積運算流程Fig.1 Convolution calculation procedure
空間無關(guān)性可以有效減少網(wǎng)絡(luò)的參數(shù)量,但由于卷積核提取的特征單一,因此無法根據(jù)應(yīng)用場景靈活地調(diào)整參數(shù)。而通道特異性無法使得通道參數(shù)共享,導(dǎo)致網(wǎng)絡(luò)模型通道參數(shù)冗余。為了解決以上問題,具有空間特異性和通道無關(guān)性的Involution 算子(Inv)被提出。與卷積核設(shè)計理念相反,Inv 算子的通道無關(guān)性是在更高的維度上,即整個輸入通道范圍共享G(G?C)個Inv 核參數(shù);空間特異性表示Inv 在同一通道不同空間位置上獨享Inv 核參數(shù)。每個Inv 核由輸入圖像本身生成,如式(1)所示:
其中:Hij∈RH×W×K×K×G表示Inv 核;XΔij表示在特征圖上一個坐標(biāo)為(i,j)的鄰域集合。為了更好地契合YOLOv5 模型框架,減少模型參數(shù)量,本文使用SiLU作為Φ的非線性激活函數(shù),如式(2)和式(3)所示:
Inv 采樣計算可以認為是一種自注意機制的應(yīng)用,基于PyTorch 框架的偽代碼實現(xiàn)。Involution 算子采樣計算流程如圖2 所示。本文通過Unfold 滑窗函數(shù)將數(shù)據(jù)打包壓縮,數(shù)據(jù)通過Φ步驟產(chǎn)生核函數(shù),調(diào)整兩者維度為(B,G,C//G,K×K,H,W);將數(shù)據(jù)與核函數(shù)相乘疊加,調(diào)整維度為(B,C,H,W)輸出。其中,B表示數(shù)據(jù)批量大小,C表示通道數(shù)量,K表示Inv 核大小,H、W表示特征圖的高和寬,Ci、Co表示輸入與輸出通道維度。
圖2 Involution 算子采樣計算流程Fig.2 Sampling calculation procedure of Involution operator
跨階段注意力機制(AMCSP)模塊結(jié)構(gòu)如圖3所示。
圖3 跨階段注意力機制模塊結(jié)構(gòu)Fig.3 Structure of cross stage attention mechanism module
圖中虛線框所示為YOLOv5 使用的跨階段局部(Cross Stage Partial,CSP)模塊,其中,n表示結(jié)構(gòu)中Bottleneck 模塊的重復(fù)次數(shù)。這種殘差結(jié)構(gòu)通過將梯度信息分別集中到特征圖中,在保證精度的同時提高算術(shù)單元利用率。但是CSP 模塊對于檢測交通標(biāo)志這樣的小目標(biāo)仍存在不足,分辨率為640×640 像素的圖像經(jīng)過下采樣之后最小僅為20×20 像素,相當(dāng)于每個像素點對應(yīng)的視野為32×32 像素的圖像塊,特征被嚴重削弱,對于所占空間小的目標(biāo)很容易消失,而AMCSP 模塊能夠有效解決該問題。
結(jié)合混合域注意力機制[22]的思想,在原有CSP模塊上增加通道注意力機制,特征圖經(jīng)過平均池化后,大小為C×1×1,第1 個全連接層通過一個比例因子r進行降維,第2 個全連接層再將通道升維到C,使網(wǎng)絡(luò)獲得更多非線性組合,經(jīng)過Sigmoid 函數(shù)后得到各通道的重要性權(quán)值,最后與原輸入張量權(quán)值相乘,使網(wǎng)絡(luò)在訓(xùn)練中提高對小目標(biāo)的學(xué)習(xí)能力。
特征提取網(wǎng)絡(luò)作為目標(biāo)檢測的主干網(wǎng)絡(luò),其采樣特性將直接決定預(yù)測網(wǎng)絡(luò)的精確率。在小目標(biāo)檢測任務(wù)中,下采樣率與網(wǎng)絡(luò)深度能夠顯著影響目標(biāo)語義信息的提取效果。對此,本文結(jié)合Inv 核結(jié)構(gòu)的特性,對YOLOv5 特征提取網(wǎng)絡(luò)的采樣層進行改進,并進行多組拆分組合實驗。
改進后的特征提取網(wǎng)絡(luò)參數(shù)如表1 所示。網(wǎng)絡(luò)中第2、4、6、8 層分別利用Inv 核進行4、8、16、32 倍下采樣。但是,由于淺層和深層所含的語義信息有很大區(qū)別,因此本文結(jié)合Conv 與Inv 的特性,最大程度地提高網(wǎng)絡(luò)性能。輸入網(wǎng)絡(luò)的圖像尺寸為640×640像素,F(xiàn)ocus 模塊通過堆疊3×3 的卷積結(jié)構(gòu)對 圖像進行等間隔切片采樣,再將采樣后的信息拼接,使信息集中到通道域。Inv 模塊隨著采樣倍率和網(wǎng)絡(luò)層數(shù)的不斷加深,比Conv 模塊挖掘到更加豐富的語義信息。
表1 改進的特征提取網(wǎng)絡(luò)參數(shù)Table 1 Parameters of improved feature extraction network
提取后的特征信息(第5、7、10 層)先經(jīng)過特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,F(xiàn)PN)[23],將來自第10 層和第7 層的高層特征信息采用自頂向下的上采樣方式,與第5 層底層特征進行3 個尺度的傳遞融合。改進的特征融合網(wǎng)絡(luò)結(jié)構(gòu)如圖4 所示。本文對PAN 進行優(yōu)化設(shè)計,去掉Concat 連接方式,改為Add 連接,然后通過1×1 的卷積將3 個融合層調(diào)整為相同的張量維度送入檢測輸出層。
圖4 改進的特征融合網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Structure of improved feature fusion network
Concat 連接方式是將通道數(shù)相疊加,本身特征所含的信息量沒變。Add 連接方式是將描述特征的信息量相疊加,卻并不增加圖像通道數(shù)。相比Concat 連接方式,Add 連接方式大幅減小所需的計算量與參數(shù)量。
特征融合后的3 個尺度張量信息如式(4)所示:
其中:K×K表示特征圖的尺寸;3 表示特征圖的每個網(wǎng)格會生成3 個邊界框;C表示類別個數(shù);1 表示該邊界框的置信度得分;4 表示預(yù)先設(shè)置的先驗框和最終生成預(yù)測框之間的4 個偏移量坐標(biāo)(tx,ty,tw,th)。最終預(yù)測框的生成計算過程如式(5)所示:
其中:(bx,by,bw,bh)表示預(yù)測框的中心點坐標(biāo)及寬高度信息;(cx,cy,pw,ph)表示先驗框網(wǎng)格的左上角坐標(biāo)及寬高度信息;σ表示Sigmoid 激活函數(shù)。
針對交通標(biāo)志檢測應(yīng)用場景,本文使用K-means聚類算法生成更合適的9個先驗框尺寸,分別為(15,16)、(24,24)、(23,52)、(36,34)、(57,55)、(58,116)、(110,90)、(390,341)、(575,545)。
YOLOv5的損失函數(shù)由分類損失和回歸損失組成,分別使用二值交叉熵(Binary Cross Entropy,BCE)函數(shù)和CIOU_Loss 計算。在交通標(biāo)志檢測網(wǎng)絡(luò)的預(yù)測框生成后,需要對預(yù)測框進行篩選。YOLOv5 采用非極大值抑制(Non-Maximum Suppression,NMS)方式進行后處理,普通NMS 只考慮重疊面積,如果遇到遮擋情況,經(jīng)常會將相近的目標(biāo)錯誤剔除掉。本文對此不足進行改進,采用DIOU_NMS 進行后處理。DIOU 的計算如式(6)所示:
其中:IIOU為兩框交集與并集比值;d為兩框中心點距離;c為兩框最小外接矩形的對角線長度。DIOU_NMS 的剔除機制如式(7)所示:
其中:si表示分類得分;ε表示NMS閾值。DIOU_NMS 除了考慮重疊面積外,還考慮了預(yù)測框之間的中心點距離,可以更加準(zhǔn)確地對預(yù)測框進行篩選。
本文網(wǎng)絡(luò)整體架構(gòu)如圖5 所示。本文網(wǎng)絡(luò)結(jié)構(gòu)分為特征提取、特征融合以及檢測輸出3 個部分,網(wǎng)絡(luò)會對輸入圖像中的目標(biāo)進行邊界框、置信度以及類別的預(yù)測回歸。
圖5 本文網(wǎng)絡(luò)整體架構(gòu)Fig.5 Overall architecture of the proposed network
實驗平臺為Ubuntu 18.04 操作系統(tǒng),采用3 路Xeon E5-2678 v3 CPU,NVIDIA Tesla k80 GPU,顯存12 GB。運行環(huán)境為Python 3.8,深度學(xué)習(xí)框架為PyTorch 1.7。數(shù)據(jù)集為中國交通標(biāo)志檢測數(shù)據(jù)集[24](CCTSDB)。該數(shù)據(jù)集是在中國高速公路和城市道路上采集的圖片,包含15 734 張。本文對數(shù)據(jù)集進行篩選,將變化小和標(biāo)注不明顯的圖片剔除后,從中選取10 000 張包含不同角度以及不同光照變化的圖片,每張圖片分辨率為1 024×720 像素,共分為Prohibitory、Mandatory、Warning 3 個類別,其中9 000 張為訓(xùn)練集,1 000 張為測試集。
交通標(biāo)志檢測網(wǎng)絡(luò)在訓(xùn)練之前,先對數(shù)據(jù)集進行等比例縮放,使圖片滿足輸入分辨率后采用Mosaic 數(shù)據(jù)增強進行處理[25],批量大小為16。Mosaic 算法每次通過隨機縮放、裁剪、排布對4 張圖片進行拼接,不但擴充了數(shù)據(jù)集,還增強了對小目標(biāo)的檢測能力,加快了推理速度。表2 為網(wǎng)絡(luò)訓(xùn)練相關(guān)超參數(shù)配置。Mosaic 數(shù)據(jù)增強樣例如圖6 所示(彩色效果見《計算機工程》官網(wǎng)HTML 版)。
圖6 Mosaic 數(shù)據(jù)增強樣例Fig.6 Examples of Mosaic data enhancement
表2 相關(guān)超參數(shù)設(shè)置Table 2 Related hyperparameter settings
由于本文對YOLOv5 的底層網(wǎng)絡(luò)架構(gòu)進行改進,因此無法使用遷移學(xué)習(xí)進行加速訓(xùn)練,總迭代次數(shù)為200。檢測網(wǎng)絡(luò)的學(xué)習(xí)率設(shè)置分為兩個階段,預(yù)熱階段采用線性插值對學(xué)習(xí)率進行更新,預(yù)熱階段后采用余弦退火算法來調(diào)整學(xué)習(xí)率。
檢測精度和檢測速度是用于衡量目標(biāo)檢測網(wǎng)絡(luò)性能的兩個指標(biāo)。檢測速度是指目標(biāo)檢測網(wǎng)絡(luò)每秒能夠檢測的圖片數(shù)量(幀數(shù)),用FPS(Frames Per Second)表示。本文采用平均精度均值(mean Average Precision,mAP)評估網(wǎng)絡(luò)的檢測精度。精確率(P)如式(8)所示:
其中:TTP表示正樣本被預(yù)測為正樣本的數(shù)量;FFP表示負樣本被預(yù)測為正樣本的數(shù)量。精確率表示模型預(yù)測的所有正樣本,預(yù)測正確所占的比例。召回率(R)如式(9)所示:
其中:FFN表示正樣本被預(yù)測為負樣本的數(shù)量。召回率表示在所有正樣本中,模型預(yù)測正確的正樣本所占比例。精度(AAP)可以近似看作P-R曲線下的面積,采用定積分的方式計算最終AAP值。精度(AAP)如式(10)所示:
其中:Psmooth表示將P-R曲線平滑處理;i表示類別索引,每個類別對應(yīng)一個AAP。本文采用以下2 個mAP指 標(biāo):1)mAP(IOU=0.5),即交并比(Intersection Over Union,IOU)閾值為0.5 時,各個類別的精度取平均值;2)mAP(IOU∈0.50~0.95),即IOU 閾值以0.05 為步長,取0.50~0.95 精度的平均值。
3.2.1 有效性分析
本文設(shè)計7 組對比分析實驗,以驗證Inv、AMCSP 和DIOU_NMS 模塊對基礎(chǔ)網(wǎng)絡(luò)YOLOv5 性能的影響,以及結(jié)合Conv 與Inv 特性,最大程度地提高檢測網(wǎng)絡(luò)性能。不同實驗的性能分析如表3 所示,組與組之間采用控制變量的方式進行對比,并在CCTSDB 數(shù)據(jù)集上采用2 個mAP 指標(biāo)進行評估。其中√表示采用Inv 構(gòu)造4、8、16、32 倍下采樣,×表示沒有進行下采樣。
從表3 可以看出,在實驗1、實驗2 和實驗3 中,AMCSP、DIOU_NMS 對檢測網(wǎng)絡(luò)的性能均有提升。在AMCSP、DIOU_NMS 兩種模塊都使用的情況下,與實驗1、實驗2 和實驗3 相比,實驗4 的mAP(IOU∈0.50~0.95)提升了約3%,在交通標(biāo)志檢測這種小目標(biāo)眾多、容易出現(xiàn)遮擋的應(yīng)用場景中,AMCSP 和DIOU_NMS 模塊能夠有效提升網(wǎng)絡(luò)的檢測性能。
表3 不同實驗的性能分析Table 3 Performance analysis among different experiments
本文對比表3 中實驗4 和實驗5 的結(jié)果可知,將特征提取網(wǎng)絡(luò)中淺層的采樣層替換為Inv 結(jié)構(gòu),檢測性能幾乎沒有改變。本文進行實驗6,將提取網(wǎng)絡(luò)中深層的采樣層替換為Inv 結(jié)構(gòu),與實驗4 相比mAP 提升約2%。其原因主要有以下2 個:1)淺層網(wǎng)絡(luò)包含更多的像素特征信息,即圖像細節(jié)信息,根據(jù)Conv結(jié)構(gòu)的通道特異性使每個通道層獨享核函數(shù),可以更加全面地學(xué)習(xí)細節(jié)信息,比Inv 結(jié)構(gòu)更加合適;2)深層網(wǎng)絡(luò)包含更多的特征抽象信息,即圖像語義信息,Inv 結(jié)構(gòu)的空間特異性可以保證每個像素能夠更加靈活地學(xué)習(xí)核函數(shù),而通道不變性又能確保不產(chǎn)生冗余干擾信息。因此,相比Conv 結(jié)構(gòu),Inv 結(jié)構(gòu)更加適合放在深層網(wǎng)絡(luò)中。
本文進行實驗驗證了上述分析的正確性,Conv結(jié)構(gòu)適合淺層網(wǎng)絡(luò),Inv 結(jié)構(gòu)適合深層網(wǎng)絡(luò)。采用性能優(yōu)異的實驗?zāi)P蛯CTSDB 數(shù)據(jù)集上每個類別的精確率、召回率以及AP(IOU=0.5)進行統(tǒng)計分析,結(jié)果如表4 所示。從表4 可以看出,實驗6 的網(wǎng)絡(luò)模型在各個類別的評價指標(biāo)均達到最高。因此,本文最終采用實驗6 的改進網(wǎng)絡(luò)模型進行后續(xù)實驗分析。
表4 在不同實驗中各類別的評價指標(biāo)對比Table 4 Evaluation indexs comparison of each category on different experiments %
3.2.2 檢測網(wǎng)絡(luò)對比
本文網(wǎng)絡(luò)與典型檢測網(wǎng)絡(luò)在CCTSDB 數(shù)據(jù)集上進行各項實驗對比,為保證實驗的公平性,所有實驗基于同一平臺測試,包括YOLOv5、Faster R-CNN+FPN、SSD。其中,后兩者的特征提取網(wǎng)絡(luò)均為Resnet50。圖7 所示為不同網(wǎng)絡(luò)最佳IOU 閾值的mAP 分析,相比SSD 檢測網(wǎng)絡(luò),本文網(wǎng)絡(luò)的mAP 提高了約10 個百分點。
圖7 不同網(wǎng)絡(luò)的mAP 對比Fig.7 mAP comparison among different networks
推理速度決定檢測網(wǎng)絡(luò)是否能滿足實時需求,而模型參數(shù)量決定網(wǎng)絡(luò)是否方便部署到小型移動設(shè)備上。不同網(wǎng)絡(luò)的檢測速度與參數(shù)量對比如表5 所示。
表5 不同網(wǎng)絡(luò)的檢測速度與參數(shù)量對比Table 5 Detection speed and parameter quantity comparison among different networks
相比YOLOv5 網(wǎng)絡(luò),本文所提網(wǎng)絡(luò)的推理速度提升1/8(推理速度受GPU 資源所限,因此只比較提升比例),在交通標(biāo)志檢測應(yīng)用場景中可以做到實時處理。另外,由于Inv 結(jié)構(gòu)實現(xiàn)通道參數(shù)共享、PAN結(jié)構(gòu)的優(yōu)化,因此本文網(wǎng)絡(luò)模型參數(shù)量較YOLOv5減少了15.7%。
在測試集上隨機挑選一張實際拍攝的交通標(biāo)志圖像進行測試。不同網(wǎng)絡(luò)的目標(biāo)檢測結(jié)果對比如圖8 所示(彩色效果見《計算機工程》官網(wǎng)HTML 版)。圖中含有5 處交通標(biāo)志,包括2 處小目標(biāo)和1 處遮擋目標(biāo)。在同一應(yīng)用場景中,本文網(wǎng)絡(luò)能夠精準(zhǔn)檢測目標(biāo),而YOLOv5 漏檢了遮擋目標(biāo),F(xiàn)aster R-CNN+FPN 和SSD網(wǎng)絡(luò)對小目標(biāo)檢測能力還有待加強。
圖8 不同網(wǎng)絡(luò)的目標(biāo)檢測結(jié)果對比Fig.8 Target detection results comparison among different networks
在交通標(biāo)志檢測場景中,本文結(jié)合優(yōu)化的新型算子結(jié)構(gòu)與跨階段注意力機制模塊,提出基于YOLOv5 采樣優(yōu)化的檢測網(wǎng)絡(luò)。通過控制變量實驗探究新型算子與卷積相結(jié)合對網(wǎng)絡(luò)性能的影響,以減少通道聚合網(wǎng)絡(luò)的參數(shù)運算量。在中國交通標(biāo)志數(shù)據(jù)集上的實驗結(jié)果表明,本文網(wǎng)絡(luò)具有較少的參數(shù)量,在滿足實時性的同時具有較優(yōu)的檢測精度。后續(xù)將在特征融合部分,結(jié)合新型算子方法設(shè)計高效的自注意力結(jié)構(gòu),提高算力資源的利用率和模型精度。