周華平,王 京,孫克雷
(安徽理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
作為目標(biāo)檢測(cè)重要研究領(lǐng)域之一,行人檢測(cè)在視頻監(jiān)控、自動(dòng)駕駛及無(wú)人機(jī)等方面的應(yīng)用十分廣泛[1]。使用深度卷積來構(gòu)建目標(biāo)檢測(cè)網(wǎng)絡(luò),給行人檢測(cè)領(lǐng)域帶來了深遠(yuǎn)影響[2]。RCNN及其改進(jìn)系列模型[3]在候選建議框的基礎(chǔ)上對(duì)框進(jìn)行分類和回歸,對(duì)提高精確度幫助很大,但檢測(cè)速度降低。SSD[4]和YOLO系列[5]等一階段算法,同時(shí)完成目標(biāo)分類和定位任務(wù),極大地提升了檢測(cè)速度。YOLO系列的簡(jiǎn)化版本對(duì)硬件要求低、速度快,在小型設(shè)備平臺(tái)上使用更廣泛[6]。李文濤等人[7]通過選擇更小的預(yù)選框,并混合使用SE (Squeeze and Excitation)模塊與卷積塊注意模塊 (Convolutional Block Attention Module,CBAM)對(duì)行人和農(nóng)機(jī)障礙物進(jìn)行檢測(cè)。單美靜等人[8]基于TinyYOLO輕量級(jí)網(wǎng)絡(luò)的交通標(biāo)志檢測(cè),使用部分殘差連接增強(qiáng)網(wǎng)絡(luò)的學(xué)習(xí)能力。但各種深度學(xué)習(xí)檢測(cè)模型權(quán)重體積較大,不能很好支撐實(shí)時(shí)行人檢測(cè)。因此,該文對(duì)YOLOv4-tiny網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn),引入新的注意力機(jī)制——?dú)埐顧C(jī)制(Enhanced Spatial Attention_CSP,ESA_CSP)以及多尺度特征融合模塊(Ring-fenced Bodies,RFBs),在維持較快的檢測(cè)速度和較小的權(quán)重體積為前提,提高檢測(cè)精度,更適合小型設(shè)備的實(shí)時(shí)行人檢測(cè)。
區(qū)別于YOLOv4的深層復(fù)雜網(wǎng)絡(luò)結(jié)構(gòu),YOLOv4-tiny的網(wǎng)絡(luò)結(jié)構(gòu)在其基礎(chǔ)上要精簡(jiǎn)許多,計(jì)算量小,能夠在移動(dòng)端或設(shè)備端運(yùn)行。YOLOv4-tiny的網(wǎng)絡(luò)模型如圖1所示,其中骨干網(wǎng)絡(luò)采用的是CSPDarknet53-tiny的網(wǎng)絡(luò)結(jié)構(gòu),主要包括普通卷積過程、殘差結(jié)構(gòu)堆疊過程和下采樣過程。普通卷積過程采用CBL結(jié)構(gòu),由卷積層(Convolutional)、批量標(biāo)準(zhǔn)化層(BN)以及激活函數(shù)層(LeakyRelu)構(gòu)成,下采樣過程通過最大池化(Maxpool)操作完成。殘差結(jié)構(gòu)堆疊過程采用了CSP(Cross Stage Partial Connections)結(jié)構(gòu)。CSP結(jié)構(gòu)將輸入特征在殘差塊堆疊通道旁再增加一條殘差邊通道,然后將兩個(gè)通道進(jìn)行Concat操作后輸出結(jié)果。
圖1 YOLOv4-tiny網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 YOLOv4-tiny network structure
主干網(wǎng)絡(luò)會(huì)將13×13的特征層進(jìn)行上操作后與26×26的特征層進(jìn)行融合,提高特征提取能力,最后會(huì)分別生成通道數(shù)為na×(nc+5)的兩個(gè)輸出通道,na代表錨框數(shù)量;nc為類別數(shù)。26×26的通道預(yù)測(cè)小目標(biāo),13×13的通道預(yù)測(cè)大目標(biāo)。
1.2.1 CBAM
CBAM[9]是把通道注意力和空間注意力串聯(lián)相結(jié)合組成的注意力模塊。首先將輸入特征分為兩部分,部分1生成通道注意力塊(Channel Attention Moudle,CAM),再與部分2在通道上進(jìn)行相乘得到融合通道注意力的特征圖;然后將該特征圖繼續(xù)分為兩部分,部分1生成的空間注意力塊(Spatial Attention Moudle,SAM),再與部分2在空間上相乘輸出融合通道和空間注意力的最終特征圖,CBAM注意力模塊如圖2所示。
圖2 CBAM注意力模塊Fig.2 CBAM attention module
1.2.2 ECA注意力機(jī)制
ECA(Efficient Channel Attention)注意力機(jī)制[10]是對(duì)SE模塊[11]增加一些改進(jìn)策略:在對(duì)特征通道不降維的情況下,實(shí)現(xiàn)局部跨信道信息融合策略,可動(dòng)態(tài)調(diào)整選擇一維卷積核尺寸,減少模型的復(fù)雜度和計(jì)算量。
SE模塊首先在輸入特征的每個(gè)通道空間上進(jìn)行全局平均池化對(duì)其壓縮(Squeeze),然后通過兩個(gè)非線性的全連接層(Fully Connected Layers,FC)來對(duì)特征層激發(fā)(Excitation),SE模塊如圖3(a)所示。實(shí)證分析表明,激發(fā)過程中的降維會(huì)對(duì)通道關(guān)注度的預(yù)測(cè)結(jié)果產(chǎn)生影響[10],且對(duì)所有通道的信息進(jìn)行融合時(shí)效率比較低。ECA在對(duì)輸入特征進(jìn)行全局平均池化之后,不改變通道的維度,使用大小為k的快速一維卷積來捕獲每個(gè)通道的局部跨通道交互信息。如圖3(b)所示,是k=3時(shí)的ECA注意力機(jī)制塊。
(a) SE注意力機(jī)制
圖3(b)中,k代表該通道附近通道中,參與該通道的注意力預(yù)測(cè)的通道數(shù)。k值可以通過總通道數(shù)C的函數(shù)自適應(yīng)地確定,計(jì)算公式為:
(1)
式中,|x|odd表示x最近的奇數(shù),b=1,γ=2。
空洞卷積 (Dilated/Atrous Convolution)[12]可以在保證特征圖分辨率不下降、網(wǎng)絡(luò)參數(shù)量不增加的情況下,增大卷積操作的感受野,有效捕獲多尺度特征信息。空洞卷積就是在普通卷積過程中加入大小不同的間隔,間隔的大小用擴(kuò)張率(Dilation Rate)表示,普通卷積相當(dāng)于擴(kuò)張率為1的空洞卷積。圖4為擴(kuò)張率分別為1、2、3的空洞卷積過程。
(a) 擴(kuò)張率=1
對(duì)YOLOv4-tiny網(wǎng)絡(luò)進(jìn)行分析后,提出了3種改進(jìn)的新網(wǎng)絡(luò)結(jié)構(gòu)(YOLOv4-tinye、YOLOv4-tinyr和YOLOv4-tinyer)。YOLOv4-tinye模型對(duì)原模型的CSP結(jié)構(gòu)進(jìn)行分析,在CSP結(jié)構(gòu)尾部添加ESA-CSP,計(jì)算特征圖在通道位置和空間位置上的權(quán)重信息,根據(jù)權(quán)重分配使網(wǎng)絡(luò)更多關(guān)注特征圖中有利于檢測(cè)任務(wù)的行人區(qū)域特征信息,抑制背景及其他非行人次要信息,從而提升網(wǎng)絡(luò)模型性能[13]。
低層特征含有的目標(biāo)位置信息比較準(zhǔn)確,使用最大池化層能降低圖像尺寸,但最大池化層不更新權(quán)值參數(shù),可能會(huì)丟失目標(biāo)位置信息[14]。帶參數(shù)的卷積層會(huì)保留更多特征圖信息,因此使用大小2×2、步長(zhǎng)為2的卷積核代替主干網(wǎng)絡(luò)結(jié)構(gòu)中的最大池化過程。
經(jīng)過一系列下采樣CBL結(jié)構(gòu)和多次卷積操作,會(huì)使得深層網(wǎng)絡(luò)的目標(biāo)定位存在誤差,因此在主干網(wǎng)絡(luò)后,構(gòu)建一個(gè)RFBs結(jié)構(gòu)增大提取目標(biāo)的感受野,得到Y(jié)OLOv4-tinyr模型,提高網(wǎng)絡(luò)的特征融合能力。融合YOLOv4-tinye和YOLOv4-tinyr得到最終的YOLOv4-tinyer模型。改進(jìn)后的3種模型獲得兩種不同尺度的檢測(cè)頭輸出,分別檢測(cè)大目標(biāo)和小目標(biāo)。YOLOv4-tinyer模型結(jié)構(gòu)圖5所示。
圖5 YOLOv4-tinyer網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 YOLOv4-tinyer network structure
卷積神經(jīng)網(wǎng)絡(luò)除了學(xué)習(xí)到目標(biāo)的特征外,還包含了大量無(wú)效背景信息,這就會(huì)導(dǎo)致在神經(jīng)元中含有大量背景信息,影響檢測(cè)性能。另外,YOLOv4-tiny中使用剪枝處理后的CSPDarknet53-tiny主干網(wǎng)絡(luò)結(jié)構(gòu),大量剪枝的卷積層和殘差單元造成了邊緣特征信息不易捕捉,學(xué)習(xí)的特征表現(xiàn)不夠好,有效特征不夠明顯影響識(shí)別精度。針對(duì)這個(gè)問題,借鑒CBAM和ECA注意力機(jī)制思想,在CSP殘差結(jié)構(gòu)輸出通道后添加ESA注意力機(jī)制,提出ESA_CSP注意力殘差塊結(jié)構(gòu),如圖6所示。
圖6 ESA_CSP注意力殘差塊結(jié)構(gòu)Fig.6 ESA_CSP attention residual block structure
ESA_CSP中的ESA注意力塊借鑒CBAM思想,首先根據(jù)模型的首層特征圖,獲得通道、空間注意力權(quán)重圖,然后分別將其和原特征圖點(diǎn)乘,得到帶有權(quán)重的空間和通道特征圖。最后對(duì)空間和通道特征圖進(jìn)行并聯(lián)相加操作,得到帶有注意力權(quán)重的特征圖,ESA注意力結(jié)構(gòu)如圖7所示。
圖7 ESA注意力結(jié)構(gòu)Fig.7 ESA attention structure
其中,ESA注意力機(jī)制中的SAM在空間位置上對(duì)輸入特征圖上相同位置的像素值進(jìn)行全局的MaxPooling和AvgPooling操作,分別得到兩個(gè)空間注意力權(quán)重FSA和FSM,通過Concat操作將FSA和FSM在通道維度合并為一個(gè)2通道的特征圖。然后使用3×3的卷積核構(gòu)成的卷積層,對(duì)FSA和FSM壓縮通道為1,得到的特征圖大小為W×H×1,最后經(jīng)過Sigmoid函數(shù)對(duì)其激活,得到空間注意力塊。ESA注意力機(jī)制中SAM注意力塊,如圖8所示。
圖8 SAM注意力模塊Fig.8 SAM attention module
圖9 ESA中的通道注意力結(jié)構(gòu)Fig.9 Channel attention structure in ESA
ESA_CSP結(jié)構(gòu)將經(jīng)過殘差結(jié)構(gòu)操作后特征層的空間位置、通道位置等相對(duì)重要的特征提取出來并賦予較高權(quán)重,從而保留目標(biāo)區(qū)域特征,提高檢測(cè)性能。
為了捕獲行人的多尺度特征信息,在改進(jìn)后的主干網(wǎng)絡(luò)后連接RFBs結(jié)構(gòu)模塊。該結(jié)構(gòu)模塊主要引入空洞卷積,實(shí)現(xiàn)增大感受野、融合不同尺寸特征的目的。
RFBs結(jié)構(gòu)首先將特征圖進(jìn)行1×1卷積進(jìn)行通道變換,然后進(jìn)行多分支空洞結(jié)構(gòu)處理,用來獲取目標(biāo)多尺度信息特征。多分支結(jié)構(gòu)中采用普通卷積層+空洞卷積層的結(jié)構(gòu),普通卷積層中原RFB結(jié)構(gòu)中的3×3卷積核用并聯(lián)的1×3和3×1卷積核代替,5×5卷積核用兩個(gè)串聯(lián)的1×3和3×1卷積核代替,這樣可以有效減少網(wǎng)絡(luò)的計(jì)算量,保證整個(gè)網(wǎng)絡(luò)輕量化??斩淳矸e層分別由3個(gè)大小為3×3的卷積核組成,卷積核的擴(kuò)張率分別為1、3、5,防止擴(kuò)張率太大造成卷積層退化。最后將經(jīng)過多分支空洞結(jié)構(gòu)處理過后的不同尺寸的特征層進(jìn)行Concat操作,并輸出新的融合特征層。為了保留輸入特征圖的原有信息,將新的融合特征層經(jīng)過1×1卷積層變換通道,與原特征圖構(gòu)成的大殘差邊進(jìn)行累加操作后輸出。多分支結(jié)構(gòu)中的RFBs連接結(jié)構(gòu)如圖10所示。
圖10 RFBs結(jié)構(gòu)Fig.10 RFBs structure
實(shí)驗(yàn)所使用的操作系統(tǒng)為Win10 64位;內(nèi)存大小為32 G;GPU為NVIDIA GeForce GTX1080ti;學(xué)習(xí)框架采用Tensorflow2.2.0/cuda10.1/cudnn7.6.3;編譯環(huán)境為Pycharm/Python語(yǔ)言。
實(shí)驗(yàn)所使用的數(shù)據(jù)集是WiderPerson。該數(shù)據(jù)集是戶外的行人檢測(cè)基準(zhǔn)數(shù)據(jù)集,其圖像不再局限于交通場(chǎng)景,而是從多種場(chǎng)景中選擇更符合視頻監(jiān)控的真實(shí)場(chǎng)景。數(shù)據(jù)集中共包含5種類型的行人實(shí)體:pedestrians、riders、partially-visible persons、ignore regions和crowd,實(shí)驗(yàn)時(shí)選擇前3種行人實(shí)體。原數(shù)據(jù)集中共包含13 382張圖像,訓(xùn)練集、驗(yàn)證集和測(cè)試集分別有8 000、1 000和4 382張圖片。由于原數(shù)據(jù)集中的測(cè)試數(shù)據(jù)集真實(shí)框標(biāo)簽未公布,實(shí)驗(yàn)中將原8 000張訓(xùn)練集圖像根據(jù)9:1的比例劃分為訓(xùn)練集和驗(yàn)證集,將原驗(yàn)證集圖像作為測(cè)試集。
為了適應(yīng)實(shí)驗(yàn)數(shù)據(jù)集中行人寬高比固定的特點(diǎn),需要對(duì)數(shù)據(jù)集重新聚類出符合目標(biāo)的anchor boxes。先驗(yàn)框的大小與檢測(cè)目標(biāo)越接近,檢測(cè)效果越好。實(shí)驗(yàn)選用k-means++聚類算法[15]對(duì)聚類中心的選擇進(jìn)行改進(jìn),得到更符合行人目標(biāo)的anchor boxes。k-means++算法具體步驟如下所示。
算法 k-means++錨框聚類算法 輸入 數(shù)據(jù)集中行人寬高集合S和聚類中心數(shù)量k輸出 k組錨框① 隨機(jī)從集合S中選某個(gè)點(diǎn),成為第一個(gè)聚類中心О1。② 計(jì)算S中其余各點(diǎn)x到其最近聚類中心Оx的距離D(x),距離越遠(yuǎn)的錨框點(diǎn)成為下一個(gè)聚類中心的概率P(x)越大。重復(fù)此步驟,直到找到k個(gè)聚類中心。③ 計(jì)算所有S中的點(diǎn)分別到k個(gè)聚類中心的距離D(x),將該點(diǎn)劃分到距離最小的聚類中心類別中。針對(duì)聚類結(jié)果,重新計(jì)算每個(gè)聚類類別的聚類中心Ci。④ 重復(fù)步驟③,每個(gè)聚類類別的聚類中心Ci不再變化時(shí),輸出k個(gè)聚類中心結(jié)果。
在k-means ++算法中,選擇IOU作為距離D(x)度量標(biāo)準(zhǔn),IOU為真實(shí)框x和與x最近的聚類中心錨框Оx的交并比。距離D(x)、概率P(x)和聚類中心Ci的計(jì)算公式分別為:
(2)
(3)
(4)
經(jīng)過聚類,得到了6組錨盒:(6,14)、(10,27)、(15,47)、(21,77)、(33,118)、(51,188),avg-iou值為71.63%。
實(shí)驗(yàn)中使用的評(píng)價(jià)指標(biāo)為FPS和 mAP。FPS為每秒檢測(cè)圖像的幀率;mAP為多分類檢測(cè)模型中所有類別的AP均值,其值越大表示該模型的定位與識(shí)別的準(zhǔn)確率越高,mAP的計(jì)算公式為:
(5)
式中,C表示類別數(shù);AP表示每個(gè)類別的平均精確率,由Precision-Recall曲線下的面積計(jì)算得出。
實(shí)驗(yàn)中訓(xùn)練行人檢測(cè)網(wǎng)絡(luò)模型的參數(shù)設(shè)置如下:采用的初始學(xué)習(xí)率為1×10-4,當(dāng)驗(yàn)證集的準(zhǔn)確率在10個(gè)時(shí)期內(nèi)沒上升,則學(xué)習(xí)率衰減1/2;優(yōu)化器使用Adam;根據(jù)顯存大小,將批處理數(shù)量設(shè)為16。網(wǎng)絡(luò)訓(xùn)練迭代時(shí)期設(shè)為200,并設(shè)置了早停(Early Stopping)機(jī)制,即在網(wǎng)絡(luò)性能連續(xù)20個(gè)時(shí)期沒有改善或完成最大200個(gè)時(shí)期的循環(huán)時(shí),訓(xùn)練過程就會(huì)終止,并保存訓(xùn)練模型的權(quán)重。
為了進(jìn)行充分對(duì)比實(shí)驗(yàn),分別對(duì)YOLOv4-tiny模型與加入ESA_CSP的模型(YOLOv4-tinye)、加入RFBs的模型(YOLOv4-tinyr)以及同時(shí)加入ESA_CSP和RFBs的模型(YOLOv4-tinyer)進(jìn)行訓(xùn)練對(duì)比,實(shí)驗(yàn)結(jié)果如表1所示。
表1 各模型的實(shí)驗(yàn)效果對(duì)比
由表1可知,與模型參數(shù)量相差不大的YOLOv4-tiny模型相比,YOLOv4-tinye模型、YOLOv4-tinyr模型和YOLOv4-tinyer在整個(gè)數(shù)據(jù)集中平均準(zhǔn)確率分別提高了2.27%、2.45%和4.78%。其主要原因是加入注意力機(jī)制的ESA_CSP殘差結(jié)構(gòu)能更關(guān)注特征圖中空間和通道位置上的關(guān)鍵信息,更好提取圖像特征,多尺度融合增強(qiáng)模型RFBs加強(qiáng)對(duì)特征的利用率,提高行人檢測(cè)的準(zhǔn)確率。FPS略低則是由于隨著mAP的提高,會(huì)檢測(cè)出更多目標(biāo)框,增加了時(shí)間開銷,但該檢測(cè)速度仍符合實(shí)際檢測(cè)場(chǎng)景的實(shí)時(shí)性要求。
為了直觀展示出原YOLOv4-tiny算法和提出的YOLOv4-tinyer檢測(cè)算法的不同之處,選取了一些檢測(cè)圖像進(jìn)行對(duì)比分析,YOLOv4-tiny和YOLOv4-tinyer的檢測(cè)結(jié)果,分別如圖11和圖12所示。
由圖11和圖12可以看出,YOLOv4-tinyer檢測(cè)算法與YOLOv4-tiny檢測(cè)算法相比,行人檢測(cè)的目標(biāo)框定位的精確度提高。同時(shí),對(duì)于相對(duì)較遠(yuǎn)的目標(biāo)來說,YOLOv4-tinyer算法仍能夠識(shí)別出,但是原YOLOv4-tiny則無(wú)法檢測(cè)。因此,相較于原YOLOv4-tiny算法,YOLOv4-tinyer檢測(cè)算法的檢測(cè)效果更好。
圖11 YOLOv4-tiny檢測(cè)結(jié)果Fig.11 Detection results of YOLOv4-tiny
圖12 YOLOv4-tinyer檢測(cè)結(jié)果Fig.12 Detection results of YOLOv4-tinyer
本文基于YOLOv4-tiny網(wǎng)絡(luò)模型提出了3種改進(jìn)的YOLOv4-tinye、YOLOv4-tinyr和YOLOv4-tinyer網(wǎng)絡(luò)行人檢測(cè)模型。YOLOv4-tinye模型中將注意力機(jī)制引入到CSP殘差網(wǎng)絡(luò)結(jié)構(gòu)中,提出ESA_CSP結(jié)構(gòu),使網(wǎng)絡(luò)對(duì)圖像中主要的特征信息附有更多的權(quán)重。YOLOv4-tinyr模型中在主干網(wǎng)絡(luò)后添加RFBs結(jié)構(gòu),通過不同尺度的空洞卷積獲得更大的感受野,并對(duì)多尺度信息進(jìn)行融合,有效提升了模型特征利用率。YOLOv4-tinyer模型是YOLOv4-tinye和YOLOv4-tinyr模型的結(jié)合版。在實(shí)驗(yàn)過程中,使用k-means++算法重構(gòu)WinderPerson數(shù)據(jù)集中的錨框,使目標(biāo)定位更加準(zhǔn)確,加快模型損失收斂速度。實(shí)驗(yàn)結(jié)果表明,在WinderPerson數(shù)據(jù)集中,本文模型的參數(shù)量和檢測(cè)速度與原模型相當(dāng),但檢測(cè)精確度均取得了更好的效果,更適用于小型設(shè)備的實(shí)時(shí)行人檢測(cè)任務(wù)。