張新宇,丁勝*,楊治佩
(1.武漢科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,武漢 430065;2.智能信息處理與實(shí)時工業(yè)系統(tǒng)湖北省重點(diǎn)實(shí)驗(yàn)室(武漢科技大學(xué)),武漢 430065)
交通標(biāo)志作為當(dāng)前道路交通安全的重要標(biāo)志之一,對駕駛員起著警示、限制和指示的作用。實(shí)時準(zhǔn)確地對交通標(biāo)志進(jìn)行檢測的技術(shù)作為當(dāng)前高級駕駛輔助系統(tǒng)(Advanced Driving Assistance System,ADAS)[1]的重要組成部分,在一定程度上能減少或避免由于駕駛員一時疏忽沒有注意到道路交通標(biāo)識而發(fā)生危險(xiǎn)的情況,很大程度上保障了駕駛員的行車安全。
當(dāng)前針對交通標(biāo)志檢測識別的主要研究方法[2]是通過把攝像頭安裝在車輛上對自然環(huán)境道路進(jìn)行拍攝以獲取自然場景圖像,然后通過圖像處理等技術(shù)對圖像中的交通標(biāo)志進(jìn)行檢測和識別。交通標(biāo)志在場景中通常存在分辨率過低、破損、光照、被其他目標(biāo)覆蓋、易受環(huán)境因素等影響的問題[3-4],從而比一般目標(biāo)更難檢測,而在現(xiàn)實(shí)應(yīng)用中,又要求其保證較高的精確度與實(shí)時性。傳統(tǒng)的目標(biāo)檢測算法[5]如:Haar 特征+AdaBoost 算法、方向梯度直方圖(Histogram of Oriented Gradient,HOG)[6]特征+支持向量機(jī)(Support Vector Machine,SVM)[7]算法、Deformable Part Model 算法等由于手工設(shè)計(jì)的特征導(dǎo)致算法存在魯棒性較差,對滑動窗口的選擇沒有針對性、冗余度高、時間復(fù)雜度高等缺點(diǎn),在精度和實(shí)時性上難以滿足高級駕駛輔助系統(tǒng)的需要。而卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)依靠其強(qiáng)大的特征提取和語義表達(dá)能力,在交通標(biāo)志目標(biāo)檢測領(lǐng)域被廣泛應(yīng)用。
當(dāng)前基于CNN 的目標(biāo)檢測算法分為one-stage 算法和two-stage算法。以 Faster R-CNN(Faster Region-based Convolutional Neural Network)[8]為代表的two-stage 算法采用區(qū)域候選網(wǎng)絡(luò)(Region Proposal Network,RPN)代替?zhèn)鹘y(tǒng)的選擇性搜索(Selective Search)提取候選框,再利用候選框區(qū)域的卷積特征進(jìn)行分類和目標(biāo)框的定位學(xué)習(xí),存在著精度高、速度慢的特點(diǎn);以YOLO(You Only Look Once)系列[9]、SSD(Single Shot MultiBox Detector)[10]等one-stage 的目標(biāo)檢測算法通過輸入圖片直接產(chǎn)生物體的類別概率和空間位置信息,經(jīng)過單次檢測直接得出檢測結(jié)果,具有檢測速度快但精度低的特點(diǎn)。鮑敬源等[11]在Tiny-YOLOv3 網(wǎng)絡(luò)的基礎(chǔ)上引入FireModule 層進(jìn)行模型壓縮,在減小模型參數(shù)的同時引入short-cut 增強(qiáng)網(wǎng)絡(luò)的特征提取能力,最后在中國交通標(biāo)志檢測數(shù)據(jù)集CCTSDB(CSUST Chinese Traffic Sign Detection Benchmark)數(shù)據(jù)集上獲得85.56%的平均精確率均值(mean Average Precision,mAP),相較于Tiny-YOLOv3 的準(zhǔn)確率提升了3 個百分點(diǎn),同時大幅提升了模型的檢測速度。江金洪等[12]在YOLOv3 算法中將深度可分離卷積應(yīng)用到特征提取層,將卷積過程分為深度卷積和逐點(diǎn)卷積兩部分,保證網(wǎng)絡(luò)在較高識別率的同時減少模型的參數(shù)量,并在損失函數(shù)中添加Focal Loss 解決正負(fù)樣本不均衡的問題,得到了在精度與YOLOv3 相差不大的基礎(chǔ)上檢測速度極大提升的交通標(biāo)志目標(biāo)檢測器。
雖然當(dāng)前主流的目標(biāo)檢測算法在常規(guī)的交通標(biāo)志目標(biāo)檢測任務(wù)中已經(jīng)取得了初步的成果,但是在一些自然復(fù)雜環(huán)境仍存在檢測精度低的問題。交通標(biāo)志檢測屬于小目標(biāo)檢測,存在特征圖攜帶的語義信息有限,缺乏紋理、形狀、顏色等外觀信息,經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)多次下采樣后,目標(biāo)區(qū)域的分辨率進(jìn)一步降低,特征信息逐漸減少,導(dǎo)致深層網(wǎng)絡(luò)對小目標(biāo)的表達(dá)能力較弱,檢測難度加大。因此,本文在YOLOv4 的基礎(chǔ)上,首先對跨階段殘差網(wǎng)絡(luò)CSPDarknet53(Cross Stage Partial Darknet 53)特征提取網(wǎng)絡(luò)添加通道注意力模塊;同時,為了突出不同通道間特征的相關(guān)性,使用一維卷積代替注意力模塊中的全連接層聚合不同通道間信息并降低模型額外的參數(shù)量,使網(wǎng)絡(luò)能自主學(xué)習(xí)特征圖通道的權(quán)重關(guān)系,突出交通標(biāo)志區(qū)域的有用信息,抑制背景等無關(guān)信息;其次,在路徑聚合網(wǎng)絡(luò)(Path Aggregation Network,PANet)[13]的中、小尺度特征層后添加感受野模塊增大淺層網(wǎng)絡(luò)的感受野并融合目標(biāo)區(qū)域的上下文信息;最后,用kmeans++聚類算法生成的Anchor 先驗(yàn)框?qū)煌?biāo)志進(jìn)行檢測。實(shí)驗(yàn)結(jié)果表明,本文所設(shè)計(jì)的交通標(biāo)志目標(biāo)檢測算法能在與YOLOv4 算法保持相差不大的速度下達(dá)到較高的檢測精度。
YOLOv4 基于一個單獨(dú)的end-to-end 網(wǎng)絡(luò),將目標(biāo)檢測問題作為回歸問題求解,具有較快的檢測速度,是當(dāng)前目標(biāo)檢測領(lǐng)域常用的檢測算法之一。
YOLOv4 在YOLOv3 的基礎(chǔ)上對主干特征提取網(wǎng)絡(luò)、特征金字塔、數(shù)據(jù)增強(qiáng)等方向進(jìn)行了優(yōu)化改進(jìn),主干特征提取網(wǎng)絡(luò)采用CSPDarknet53 代替原來的Darknet53 進(jìn)行特征提取,在特征金字塔部分采用空間金字塔池化網(wǎng)絡(luò)(Spatial Pyramid Pooling,SPP)[14]和PANet 結(jié)構(gòu),SPP 包含1×1、5×5、9×9、13×13 四種不同尺度的池化層,可有效地增大感受域,分離出最顯著的上下文信息,且網(wǎng)絡(luò)推理速度沒有明顯下降,在特征融合模塊,YOLOv4 借鑒路徑聚合網(wǎng)絡(luò)PANet 的思想,通過特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,F(xiàn)PN)將高層語義特征傳到低層網(wǎng)絡(luò),融合不同層的特征,在FPN 后添加自底向上的路徑增強(qiáng),可避免信息丟失,經(jīng)過特征圖拼接后獲得的信息既有底層特征也有語義特征。YOLOv4 整體檢測過程和YOLOv3 相差不大,采用8 倍、16 倍、32 倍下采樣生成的三個特征層進(jìn)行多尺度預(yù)測。對于608×608 的輸入圖像,將下采樣生成19×19、38×38、76×76 的特征圖經(jīng)過PANet 特征融合后采用3×3 和1×1 兩層卷積操作并經(jīng)過非極大抑制(Non Maximum Suppression,NMS)非極大值處理后獲得最終的預(yù)測框,其中19×19 特征圖用于檢測大目標(biāo),38×38特征圖用于檢測中等目標(biāo),76×76 特征圖用于檢測小目標(biāo)。
在當(dāng)前深度學(xué)習(xí)目標(biāo)檢測領(lǐng)域中,尤其是無人駕駛車載監(jiān)控的交通標(biāo)志目標(biāo)檢測中,交通標(biāo)志通常存在分辨率較低、尺寸小、易受天氣環(huán)境影響導(dǎo)致圖像模糊、目標(biāo)遮擋等問題,是當(dāng)前無人駕駛領(lǐng)域的難點(diǎn)之一?;谧⒁饬C(jī)制的目標(biāo)檢測網(wǎng)絡(luò)[15]可通過增強(qiáng)圖像有效信息、抑制背景等無關(guān)信息強(qiáng)化圖像特征,而感受野模塊在增大網(wǎng)絡(luò)寬度和深度的同時,不僅可以增大淺層網(wǎng)絡(luò)的感受野,還能融合目標(biāo)區(qū)域的上下文信息提升對小目標(biāo)的檢測效果。改進(jìn)后的YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。
圖1 改進(jìn)的YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Improved YOLOv4 network structure
YOLOv4 在CSPDarknet53 特征提取網(wǎng)絡(luò)中采用卷積核大小為3×3 步長為2 的方式進(jìn)行下采樣,這種方法雖然可以使網(wǎng)絡(luò)的感受野增大但同時也容易造成小目標(biāo)區(qū)域信息丟失[16],而且交通標(biāo)志容易受天氣環(huán)境、破損等影響造成圖像分辨率低、模糊從而導(dǎo)致網(wǎng)絡(luò)提取圖像信息有限。
為了進(jìn)一步提升算法對交通標(biāo)志的特征表達(dá)能力,本文引入了注意力模塊。在YOLOv4 的特征融合網(wǎng)絡(luò)PANet 部分或Head 部分,經(jīng)過深層網(wǎng)絡(luò)的下采樣和特征融合后的特征圖具有更豐富的語義信息和更大的感受野,如果將注意力模塊添加在PANet 或Head 部分,注意力模塊很難從經(jīng)過特征融合后的特征圖中區(qū)分出重要通道和冗余通道,甚至引起網(wǎng)絡(luò)對目標(biāo)區(qū)域特征學(xué)習(xí)能力的偏差,從而造成網(wǎng)絡(luò)對交通標(biāo)志的檢測精度下降;而對于CSPDarknet53 特征提取網(wǎng)絡(luò)部分,由于淺層網(wǎng)絡(luò)的特征圖的語義特征并不豐富,而且特征圖在下采樣過程中依然保留目標(biāo)在特征圖上的中、淺層輪廓信息和紋理信息,這些信息對于交通標(biāo)志的檢測尤為重要。因此,本文在CSPDarknet53 的CSPnet 模塊的每個殘差單元中,首先將特征圖經(jīng)過注意力模塊提取出交通標(biāo)志區(qū)域的關(guān)鍵特征;然后通過殘差操作進(jìn)一步提取特征;最后將提取的特征與原輸入的特征進(jìn)行addition 操作作為殘差模塊的特征輸出,改進(jìn)前后的殘差模塊如圖2 所示。
圖2 改進(jìn)前后殘差模塊Fig.2 Residual modules before and after improvement
圖3 是特征圖經(jīng)過特征提取網(wǎng)絡(luò)每層CSPnet 后輸出的特征圖,可以看出特征圖經(jīng)過每次下采樣后,隨著網(wǎng)絡(luò)層數(shù)的加深,目標(biāo)區(qū)域的局部特征信息逐漸丟失,而在加入注意力模塊后,目標(biāo)區(qū)域的信息相較于原網(wǎng)絡(luò)特征有所增強(qiáng),更加突出了目標(biāo)區(qū)域的特征,弱化了背景等非重要特征。
圖3 添加注意力模塊前后的特征圖Fig.3 Feature maps before and after adding attention module
通道注意力模塊在卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)中具有比較明顯的性能提升,但通常在網(wǎng)絡(luò)模型中增加注意力模塊會不可避免地增加網(wǎng)絡(luò)計(jì)算量,而計(jì)算量的明顯增加是在注意力模塊的全連接層降維部分。通常注意力模塊在計(jì)算特征圖的通道權(quán)重時,會使用全連接(Fully Connected,F(xiàn)C)層對特征進(jìn)行映射來捕獲非線性的跨通道交互作用,但FC 層的參數(shù)量與輸入的特征圖通道數(shù)的平方成正相關(guān)[17],導(dǎo)致在特征提取網(wǎng)絡(luò)中大量添加通道注意力模塊會增加模型的復(fù)雜度和計(jì)算量,降低模型檢測速度。雖然在FC 層中會對通道壓縮r倍進(jìn)行降維避免過高的模型復(fù)雜度,但是在通道降維的同時會影響通道間的關(guān)注度即通道權(quán)重大小的預(yù)測。由于FC 層本質(zhì)是把二維卷積的特征圖映射到一維的向量,一維卷積替代FC 層也可以把二維卷積的特征圖卷積為一維向量,且不會增加太多計(jì)算量,也不需要固定的輸入,最重要的是可以聚合特征圖相鄰?fù)ǖ篱g的不同信息。因此,本文在FcaNet(Frequency channel attention Network)[18]通道注意力模塊的基礎(chǔ)上設(shè)計(jì)了一個輕量級的通道注意力模塊FcaNet-E。改進(jìn)前后的注意力模塊如圖4~5 所示。
圖4 FcaNet通道注意力模塊Fig.4 FcaNet channel attention module
圖5 FcaNet-E通道注意力模塊Fig.5 FcaNet-E channel attention module
通常特征圖相鄰?fù)ǖ篱g的局部特征由于感受野重疊存在一定的相關(guān)性,若某一通道與其鄰近通道特征的相關(guān)性高,則表明該通道具有更多的主體特征。因此,為了突出相鄰?fù)ǖ篱g特征的相關(guān)性,F(xiàn)caNet-E 使用了一個大小為k的一維卷積代替原有注意力模塊中的FC 層以聚合相鄰k個通道間的信息[19],由于卷積核的卷積操作具有參數(shù)共享的性質(zhì),引入一維卷積后可以使注意力模塊的參數(shù)量減小到常數(shù)級別,其中k的大小由輸入特征圖的通道數(shù)C自適應(yīng)確定,如式(1)所示:
其中:[u,v]表示2 維DCT 的分量下標(biāo)。
特征圖經(jīng)過2 維DCT 分量處理后,通過維度拼接得到多譜向量,然后向量經(jīng)過卷積核大小為k的一維卷積學(xué)習(xí)每個通道的重要程度,最終經(jīng)過Sigmoid 激活函數(shù)后得到的通道權(quán)重大小與最初輸入的特征圖F逐通道相乘得到最終的輸出特征圖,如式(3)所示:
圖6 為通道注意力模塊的網(wǎng)絡(luò)結(jié)構(gòu),對經(jīng)過卷積后的輸入特征F經(jīng)過二維離散余弦變換(2D-DCT)后得到1 × 1 ×的特征向量,然后把n個特征向量通道拼接,再經(jīng)過大小為k的一維卷積,并使用Sigmoid 激活函數(shù)計(jì)算每個通道的重要程度,最終得到通道注意力特征。
圖6 FcaNet-E通道注意力模塊網(wǎng)絡(luò)結(jié)構(gòu)Fig.6 FcaNet-E channel attention module network structure
CSPDarknet53 的CSPnet 模塊在添加了FcaNet-E 后的網(wǎng)絡(luò)結(jié)構(gòu)如圖7 所示。
圖7 添加FcaNet-E后的CSPnet模塊Fig.7 CSPnet module after adding FcaNet-E
YOLOv4 同YOLOv3 一樣,為了提高對小目標(biāo)的檢測精度,在Neck 部分采用特征融合網(wǎng)絡(luò)在多個scale 的特征圖上進(jìn)行多尺度檢測,然而通常交通標(biāo)志所在的目標(biāo)區(qū)域占整幅圖像的比例不到5%[20],交通標(biāo)志數(shù)據(jù)集的圖片分辨率大多數(shù)為1 024×768,導(dǎo)致交通標(biāo)志所在的區(qū)域分辨率小于60×60,特征圖雖然經(jīng)過特征融合后,淺層網(wǎng)絡(luò)融合了深層網(wǎng)絡(luò)的特征信息,但是淺層網(wǎng)絡(luò)特征圖的感受野較小,相較于深層網(wǎng)絡(luò)特征圖仍缺乏目標(biāo)區(qū)域的上下文信息[21]。因此,針對這個問題本文在中小尺度預(yù)測層前設(shè)計(jì)了一個共享卷積感受野模塊(Shared Convolution Receptive Field Block,SCRFB)。
SCRFB 利用卷積共享性質(zhì)將多個不同尺寸的共享卷積核生成多個分支結(jié)構(gòu),不僅增加了網(wǎng)絡(luò)的寬度,而且豐富了每層特征圖的信息,通過在分支上添加空洞卷積增加感受野,最后融合不同分支感受野的特征圖融合目標(biāo)區(qū)域的上下文信息。
SCRFB 借鑒了感受野模塊(Receptive Field Block,RFB)[22]和inception[23]的思想,首先特征圖通過1×1 卷積調(diào)整通道;其次分別通過1×1、3×3、5×5 卷積構(gòu)成三個不同特征感受野分支;然后在每個分支后分別添加空洞率為1、2、3 的空洞卷積來增加感受野;最后將三個分支與原輸入特征圖拼接融合不同特征。SCRFB 使用兩個3×3 卷積替代5×5 卷積以減少參數(shù)量,同時利用共享卷積的性質(zhì),將模塊中的多個3×3 卷積作為共享卷積,這就可以在網(wǎng)絡(luò)引入目標(biāo)區(qū)域上下文信息的同時,不僅可以改善多次卷積導(dǎo)致特征圖分辨率較低的問題,還可以簡化感受野模塊網(wǎng)絡(luò)結(jié)構(gòu),最后通過Shortcut 操作與原特征圖相乘得到輸出特征圖。SCRFB 的結(jié)構(gòu)如圖8 所示。
圖8 SCRFB結(jié)構(gòu)Fig.8 SCRFB structure
采用中國交通標(biāo)志檢測數(shù)據(jù)集(CCTSDB),該數(shù)據(jù)集包含復(fù)雜的背景信息、不同的光照變化以及拍攝角度,同時也包含因天氣影響變化和背景遮擋造成圖像模糊的情況。在實(shí)驗(yàn)中所用的CCTSDB 數(shù)據(jù)集分為三類:指示標(biāo)志(mandatory)、警告標(biāo)志(warning)和禁止標(biāo)志(prohibitory),總共包含13 828 張圖像,其中訓(xùn)練集11 062 張,測試集2 766張,數(shù)據(jù)集具體信息如圖9 所示。
圖9 CCTSDB數(shù)據(jù)集分類Fig.9 CCTSDB dataset classification
在網(wǎng)絡(luò)訓(xùn)練過程中,目標(biāo)區(qū)域的邊界框位置信息會根據(jù)模型的反向傳播不斷調(diào)整,而YOLOv4 引入了Anchor 的思想以提高網(wǎng)絡(luò)的訓(xùn)練速度和模型檢測性能,在初始的YOLOv4算法中Anchor 參數(shù)的設(shè)置是根據(jù)COCO(Common Objects in Context)數(shù)據(jù)集聚類得到的,而COCO 數(shù)據(jù)集由于其類別較多,目標(biāo)尺寸不一,不適合作為CCTSDB 數(shù)據(jù)集的先驗(yàn)框,同時由于k-means 算法聚類的結(jié)果受到初始點(diǎn)的選取的影響,本文使用k-means++算法代替原來的k-means 算法生成先驗(yàn)框以降低原始算法聚類造成的偏差。k-means++算法生成的Anchor 如表1 所示。
表1 k-means++算法生成的AnchorTab.1 Anchors generated by k-means++algorithm
本文實(shí)驗(yàn)是在Ubuntu16.04 系統(tǒng)下進(jìn)行訓(xùn)練,采用PyTorch 深度學(xué)習(xí)框架,編程語言為Python3.7,CUDA(Compute Unified Device Architecture)和Cudnn 版本分別為10.0 和7.5.0,顯卡為NVIDIA GeForce GTX1080Ti,顯存11 GB,CPU 為i5-1135G7 的四核處理器。設(shè)置輸入圖像大小為608×608,初始學(xué)習(xí)率為0.000 1,batch size 大小為16,優(yōu)化器選擇Adam,epoch 設(shè)為100,在訓(xùn)練過程中使用余弦退火(Cosine Annealing)方法衰減學(xué)習(xí)率。訓(xùn)練的loss 如圖10 所示,當(dāng)訓(xùn)練輪次到達(dá)72 時,改進(jìn)模型前后的loss 分別保持在2.6 和1.7 附近,訓(xùn)練收斂。
圖10 改進(jìn)模型前后的訓(xùn)練損失函數(shù)曲線Fig.10 Training loss function curves before and after improving the model
本文采用固定的交并比(Intersection-over-Union,IoU)閾值和mAP 的指標(biāo)對模型進(jìn)行評估。平均精確率均值(mean Accuracy Precision,mAP)是通過計(jì)算不同類別的平均精度(Average Precision,AP)然后對所有類別的AP 求和取平均值得到。
AP 為P-R 曲線下所包圍的面積,AP 和mAP 的計(jì)算公式如式(4)所示:
其中:P為準(zhǔn)確率,R為召回率。在計(jì)算mAP 時,為了更好地測量模型對目標(biāo)區(qū)域的定位精度,判斷檢測目標(biāo)區(qū)域的預(yù)測框是否精確,使用IoU 來作為衡量預(yù)測框與真實(shí)框(Ground Truth)的誤差標(biāo)準(zhǔn)。當(dāng)預(yù)測框與真實(shí)框的IoU 大于提前設(shè)置好的IoU 閾值時,則判定目標(biāo)區(qū)域被正確檢測,否則被判定為誤檢。因此,在計(jì)算本數(shù)據(jù)集的mAP 時,設(shè)置IoU 閾值為0.5。圖11 表示訓(xùn)練后每一分類的P-R 曲線圖。
圖11 CCTSDB數(shù)據(jù)集每一類的P-R曲線Fig.11 P-R curve of each category of CCTSDB dataset
在原YOLOv4 的網(wǎng)絡(luò)基礎(chǔ)上,僅僅在CSPDarknet53 結(jié)構(gòu)中添加通道注意力模塊后檢測效果明顯優(yōu)于原YOLOv4 算法,mAP 提升了0.75%;通過對通道注意力模塊改進(jìn),用一維卷積代替其中的全連接層后,模型的額外參數(shù)量和計(jì)算量大幅下降且mAP 較原算法提升了0.85%,對比結(jié)果如表2 所示。
表2 引入通道注意力模塊前后YOLOv4算法對比Tab.2 Comparison of YOLOv4 algorithms before and after introducing channel attention module
從表2 可以看出,改進(jìn)前的通道注意力模塊的額外計(jì)算量是改進(jìn)后額外參數(shù)計(jì)算量的3 000 倍,在計(jì)算量和參數(shù)量大幅減少的情況下檢測效果反而比改進(jìn)前的效果好,主要是因?yàn)樵谌B接層進(jìn)行通道壓縮的過程中會丟失部分特征圖的語義信息,而一維卷積在沒有進(jìn)行通道壓縮的情況下效果反而更好。
通常通道注意力機(jī)制只考慮對特征圖通道間的信息進(jìn)行編碼,忽略了對特征圖中位置信息的捕獲,為了更好地驗(yàn)證本文改進(jìn)的通道注意力機(jī)制對網(wǎng)絡(luò)模型有更好的效果,將主干網(wǎng)絡(luò)中改進(jìn)的通道注意力模型替換為CBAM(Convolutional Block Attention Module)重新實(shí)驗(yàn),CBAM 包含通道注意力模塊和空間注意力模塊,同時將CBAM 中的通道注意力模塊用本文方法進(jìn)行改進(jìn)實(shí)驗(yàn),對比結(jié)果如表3 所示。從表3 可以看出,雖然使用CBAM,mAP 提升到了96.55%,比FcaNet-E 的mAP 高0.27 個百分點(diǎn),但是額外計(jì)算量卻是FcaNet-E 的1 223 倍,檢測速度大幅下降;改進(jìn)后的CBAM 雖然額外計(jì)算量大幅下降,但是mAP 卻比CBAM 低3.36 個百分點(diǎn),主要是CBAM 是通過減少通道數(shù)并使用大尺寸的卷積來利用位置信息,當(dāng)用改進(jìn)后的CBAM 嵌入到原網(wǎng)絡(luò)中時,由于輸入特征圖的通道數(shù)減少,一維卷積代替原注意力模塊中的FC 層聚合k個相鄰?fù)ǖ篱g的信息減少,導(dǎo)致檢測精度的下降;而FcaNet-E 在引進(jìn)極低參數(shù)量和計(jì)算量的同時,提升了目標(biāo)檢測精度,雖然比CBAM 的mAP 低0.27 個百分點(diǎn),但檢測速度達(dá)到40 frame/s,完全符合實(shí)時性的要求。
表3 FcaNet-E與CBAM注意力機(jī)制模塊對比Tab.3 Comparison of FcaNet-E and CBAM attention mechanism modules
同時,本文選取了Faster R-CNN、YOLOv3、YOLOv4、YOLOv5s 等幾個當(dāng)前流行的交通標(biāo)志目標(biāo)檢測算法與改進(jìn)后的YOLOv4 算法在CCTSDB 數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),對比結(jié)果如表4 所示。
表4 CCTSDB數(shù)據(jù)集上不同算法對比結(jié)果(IoU=0.5)Tab.4 Comparison results of different algorithms on CCTSDB dataset(IoU=0.5)
從表4 可以看出,F(xiàn)aster R-CNN 和YOLOv3 算法對禁止標(biāo)識的AP 較高,在指示和警告標(biāo)識的AP 較低,這主要是因?yàn)镃CTSDB 數(shù)據(jù)集中禁止標(biāo)識的實(shí)例數(shù)大于指示和警告標(biāo)識的實(shí)例數(shù),尤其是禁止標(biāo)識中的限速標(biāo)志牌,是因?yàn)閿?shù)據(jù)集的類別實(shí)例數(shù)不均衡導(dǎo)致禁止標(biāo)識的AP 高于指示和警告標(biāo)識的AP;而YOLOv4 算法使用的Mosaic 數(shù)據(jù)增強(qiáng)算法將4張訓(xùn)練圖片按一定比例組合成一張,然后將新的圖片傳入卷積神經(jīng)網(wǎng)絡(luò)中訓(xùn)練,極大豐富了檢測物體的背景,同時也降低了因數(shù)據(jù)集類別不均衡對檢測效果的影響。實(shí)驗(yàn)為了使三種標(biāo)識數(shù)量盡可能均衡,在CCTSDB 數(shù)據(jù)集挑選不同的場景和一些相似度較低的圖像隨機(jī)翻轉(zhuǎn)并添加噪聲(加霧和添加污點(diǎn))的方式對數(shù)據(jù)集進(jìn)行擴(kuò)增。
當(dāng)本文算法在速度與YOLOv4 相差不大的情況下,檢測精度超越其他四種對比算法達(dá)到最優(yōu),在YOLOv4 的基礎(chǔ)上mAP 提升了1.48%,F(xiàn)aster R-CNN 檢測精度比YOLOv3 算法高1.28 個百分點(diǎn),但是檢測速度卻遠(yuǎn)遠(yuǎn)達(dá)不到實(shí)時性的要求;YOLOv5s 檢測速度達(dá)到了實(shí)時性的要求,甚至在當(dāng)前算法中檢測速度達(dá)到最優(yōu),但是mAP 卻不高,本文算法的mAP比YOLOv5s 高3.40 個百分點(diǎn)。由圖12 可以看出,改進(jìn)后算法相較于原YOLOv4 算法在檢測小目標(biāo)精度方面明顯提升,甚至?xí)z測到Y(jié)OLOv4 漏檢的目標(biāo)。
圖12 改進(jìn)的YOLOv4與其他算法的檢測效果Fig.12 Detection results of improved YOLOv4 and other algotithms
為了驗(yàn)證對一些分辨率較低和破損的交通標(biāo)志的檢測效果,實(shí)驗(yàn)利用數(shù)據(jù)增強(qiáng)的方法對一些圖片添加噪聲即用加霧和添加污點(diǎn)的方式對圖像進(jìn)行改變,最后用訓(xùn)練好的檢測器進(jìn)行檢測。如圖13 所示:YOLOv4 在對添加噪聲的圖像進(jìn)行檢測時,有一部分目標(biāo)未檢測到,而且對檢測到的交通標(biāo)志的置信度不是很高;而改進(jìn)后的算法對添加噪聲的圖像的檢測效果比原算法的效果較好,能準(zhǔn)確檢測出圖像中的每個交通標(biāo)志。
圖13 算法改進(jìn)前后對添加噪聲圖像的檢測效果Fig.13 Detection effects of noise image before and after algorithm improvement
為了驗(yàn)證各個改進(jìn)部分對檢測算法的影響,本文進(jìn)行了消融實(shí)驗(yàn),把各個改進(jìn)模塊依次添加進(jìn)YOLOv4 網(wǎng)絡(luò)中測試每個改進(jìn)模塊對檢測精度和速度的影響。為了便于區(qū)分對FcaNet 通道注意力模塊的全連接層用一維卷積替代前后通道注意力模塊對整個檢測算法的影響,把原始的FcaNet 通道注意力模塊單獨(dú)放入實(shí)驗(yàn)中與改進(jìn)后的FcaNet 對比,具體對比結(jié)果如表5 所示。
表5 在YOLOv4網(wǎng)絡(luò)中添加各模塊后的mAP對比 單位:%Tab.5 mAP comparison after adding each module to YOLOv4 network unit:%
本文提出了一種基于輕量級注意力機(jī)制的交通標(biāo)志檢測算法,通過k-means++聚類生成適合本數(shù)據(jù)集的Anchor 加速訓(xùn)練;在CSPDarknet53 特征提取網(wǎng)絡(luò)中添加通道注意力機(jī)制增強(qiáng)目標(biāo)區(qū)域的特征信息并使用由輸入特征圖的通道C自適應(yīng)的大小為k的一維卷積代替其全連接層以達(dá)到減少參數(shù)量并聚合k個相鄰?fù)ǖ佬畔⒌淖饔?;最后在PANet 的中、小尺度特征層添加感受野模塊來增加淺層網(wǎng)絡(luò)的感受野并融合目標(biāo)區(qū)域的上下文信息來更好地檢測小尺寸的交通標(biāo)志。實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的算法能在引進(jìn)極少的參數(shù)量和與原YOLOv4 算法檢測速度相差不大的情況下提升對交通標(biāo)志的檢測精度,但由于部分圖像的交通標(biāo)志是遠(yuǎn)距離拍攝,所以圖像中的部分交通標(biāo)志分辨率過低導(dǎo)致檢測目標(biāo)區(qū)域的框不夠精確,甚至對特別小的交通標(biāo)志會出現(xiàn)漏檢的情況。因此,未來將進(jìn)一步探索對特征融合網(wǎng)絡(luò)的改進(jìn),提升算法對小目標(biāo)的檢測精度。