黎國(guó)斌,張劍,林向會(huì),謝本亮
(貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴陽(yáng) 550025)
深度學(xué)習(xí)技術(shù)在計(jì)算機(jī)視覺(jué)領(lǐng)域已經(jīng)取得較為滿意的成績(jī),例如圖像分類、目標(biāo)檢測(cè)、車導(dǎo)線檢測(cè)等。2017 年的ILSVRC 圖像分類挑戰(zhàn)大賽中,Hu j等人提出SENet 并成功奪取第八屆ImageNet 圖像分類冠軍。
深度卷積神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺(jué)領(lǐng)域運(yùn)用之前,傳統(tǒng)的目標(biāo)檢測(cè)算法主要是基于人工提取特征,例如SIFT、LBP、SURF、HOG,以及Haar等特征描述因子,其中HOG 特征在行人檢測(cè)中運(yùn)用最為廣泛。特征提取后輸入至傳統(tǒng)的分類器進(jìn)行學(xué)習(xí),進(jìn)一步確定是行人還是背景,傳統(tǒng)的分類器有boosting 或者SVM。傳統(tǒng)的目標(biāo)檢測(cè)過(guò)程需要人為提取特征,過(guò)程繁雜。
卷積神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺(jué)相關(guān)任務(wù)成功運(yùn)用之后,神經(jīng)網(wǎng)絡(luò)特征提取能力得到進(jìn)一步的推廣?;谏疃葘W(xué)習(xí)的檢測(cè)算法分為一階段檢測(cè)算法和二階段檢測(cè)算法。二階段目標(biāo)檢測(cè)算法,例如RCNN、Fast R-CNN、Faster R-CNN,先是生成目標(biāo)候選框,然后將候選框通過(guò)分類和回歸網(wǎng)絡(luò)得到相應(yīng)的目標(biāo)類別、位置以及預(yù)測(cè)置信度。一階段目標(biāo)檢測(cè)算法,例如YOLOv1、YOLOv2、YOLOv3等算法、SSD 以及DSSD 算法,取消候選框生成階段,直接將圖像特征輸入回歸網(wǎng)絡(luò)得到相應(yīng)的檢測(cè)結(jié)果,在速度上領(lǐng)先于二階段檢測(cè)算法,但在檢測(cè)精度上稍遜色于兩階段檢測(cè)算法。
行人檢測(cè)是一種特殊的目標(biāo)檢測(cè)任務(wù),其目標(biāo)尺度不一,算法需同時(shí)處理多尺度特征。RFBNet[1]算法引入Inception[2]模塊的多尺度分支,最后將不同尺度的特征進(jìn)行融合,從而提高不同尺度行人的檢測(cè)準(zhǔn)確率。
為了進(jìn)一步提高行人的檢測(cè)精準(zhǔn)率,本文在RFBNet 基礎(chǔ)上引進(jìn)通道域注意力機(jī)制。通道域注意力機(jī)制可以凸顯關(guān)鍵信息,忽略無(wú)關(guān)信息。在注意力機(jī)制下,網(wǎng)絡(luò)模型可以更傾向可見(jiàn)部分行人信息,忽略被遮擋信息,提高行人與背景的區(qū)分度。
注意力機(jī)制與大腦神經(jīng)相似,可以更傾向特定特征,忽略無(wú)關(guān)信息。注意力機(jī)制,利用掩碼(mask)信息與網(wǎng)絡(luò)提取的信息進(jìn)行加權(quán)整合,得到更重要的信息。掩碼信息是網(wǎng)絡(luò)生成的一層權(quán)重,特征圖上重要信息得到更大的權(quán)重,無(wú)關(guān)信息得到更小的權(quán)重。注意力機(jī)制分為軟注意力機(jī)制、強(qiáng)注意力機(jī)制,兩者最大的不同是,前者更加注重空間或者通道,并且是確定性的注意力,可以通過(guò)網(wǎng)絡(luò)訓(xùn)練進(jìn)行調(diào)整,并且可微分,通過(guò)網(wǎng)絡(luò)不斷的前向和反向傳播迭代,得到最佳的注意力權(quán)重,而后者更加關(guān)注點(diǎn),圖像上每個(gè)點(diǎn)都可以延伸出注意力,同時(shí)強(qiáng)注意力是一個(gè)隨機(jī)的預(yù)測(cè)過(guò)程,更強(qiáng)調(diào)動(dòng)態(tài)變化。強(qiáng)注意力是不可微分,訓(xùn)練過(guò)程只能通過(guò)強(qiáng)化學(xué)習(xí)完成。
注意力機(jī)制分為通道域注意力、空間域注意力、以及混合注意力。本文重點(diǎn)闡述通道域注意力,其中在RFBNet 算法基礎(chǔ)上引入SENet 通道域注意力。
圖像經(jīng)過(guò)深度卷積神經(jīng)網(wǎng)絡(luò)提取特征后,由于圖像當(dāng)中只有部分區(qū)域是存在目標(biāo),其它都為背景信息,輸出各個(gè)通道的特征響應(yīng)理應(yīng)會(huì)有所不同,但神經(jīng)網(wǎng)絡(luò)更多的是把控整體的信息,難以針對(duì)目標(biāo)、背景施加不同響應(yīng)。
Hu J等提出SENet 通道域注意力網(wǎng)絡(luò),該網(wǎng)絡(luò)充分模擬卷積層特征不同通道之間的關(guān)系,允許網(wǎng)絡(luò)可以適當(dāng)?shù)剡M(jìn)行特征校正[3]。SENet 網(wǎng)絡(luò)結(jié)構(gòu),如圖1 所示。
圖1 SENet 網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 SENet model structure
對(duì)于給定的輸入X∈RH′×W′×C′通過(guò)任意的轉(zhuǎn)換Ftr(可以是一個(gè)卷積層或者卷積集合)得到U∈RH×W×C。特征U首先通過(guò)一個(gè)壓縮(squeeze)操作,壓縮操作表示為全局池化層,即將H × W特征圖轉(zhuǎn)化為一個(gè)通道描述因子。由于通道描述因子內(nèi)嵌各個(gè)通道特征響應(yīng)的全局分布,淺層的卷積層可以充分利用全局信息。壓縮后的特征再通過(guò)擴(kuò)張(excitation)操作,即通過(guò)帶下采樣因子r(默認(rèn)是16)的全連接層,得到的輸出通道是C/r,之后添加非線性激活函數(shù),接著通過(guò)帶上采樣因子r的全連接層,得到的輸出通道為原來(lái)C。最后,擴(kuò)張后的特征通過(guò)sigmoid激活函數(shù),將權(quán)重限制在[0,1]。輸入特征向量U對(duì)應(yīng)各個(gè)通道的響應(yīng)得到重新加權(quán)。
RFBNet 網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示,分別為基礎(chǔ)網(wǎng)絡(luò),額外層、頭部(置信度、分類回歸),RFBNet 的基礎(chǔ)網(wǎng)絡(luò)為SSD,提取原始圖像的特征,額外層對(duì)不同尺度的特征圖應(yīng)用RFB 或者RFB-s 模塊,如圖3、圖4 所示,最后根據(jù)提取的特征進(jìn)行分類回歸。
圖2 RFBNet 網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 RFBNet network structure diagram
圖3 RFB 模塊結(jié)構(gòu)圖Fig.3 RFB modular structure chart
圖4 RFB-s 模塊結(jié)構(gòu)圖Fig.4 RFB-s modular structure chart
RFB 模塊主要是利用Inception 模塊的多尺度特征融合思想,并引入空洞卷積。空洞卷積在不增加參數(shù)的前提下,可以擴(kuò)大卷積層的感受野,因而網(wǎng)絡(luò)深層的語(yǔ)義信息更加豐富,提高網(wǎng)絡(luò)對(duì)目標(biāo)特征的提取能力。
隨著硬件技術(shù)的發(fā)展,輕量設(shè)備可以運(yùn)行現(xiàn)有的目標(biāo)檢測(cè)算法,例如英偉達(dá)的Jetson tx2。盡管存儲(chǔ)設(shè)備容量很大,但鑒于算法部署在硬件平臺(tái)的限制,網(wǎng)絡(luò)模型壓縮已成為一種必要的趨勢(shì)?;A(chǔ)網(wǎng)絡(luò)可以采用移動(dòng)端mobilenet 作為特征提取網(wǎng)絡(luò),壓縮模型的輸出通道數(shù),減少不必要的卷積層數(shù)量[4]。
圖像經(jīng)過(guò)卷積神經(jīng)網(wǎng)絡(luò)提取的特征圖,是泛化的,不具備針對(duì)性。行人被遮擋部分的背景信息參與網(wǎng)絡(luò)訓(xùn)練,會(huì)誤導(dǎo)網(wǎng)絡(luò)判斷,因此引入注意力機(jī)制。網(wǎng)絡(luò)模型更加傾向可見(jiàn)部分的行人特征,抑制被遮擋部分的行人信息,加快網(wǎng)絡(luò)模型往正確的方向進(jìn)行訓(xùn)練。
本文引入的是SENet 模塊,該模塊分為3 部分:第一部分是Squeeze,即先壓縮;第二部分是Excitation,即激勵(lì);最后一部分是特征重標(biāo)定,即注意力。Squeeze-and-Excitation block 如圖1 所示。壓縮的表達(dá)式如公式(1)所示:
公式(1)是圖1 中的Fsq(·),通道內(nèi)特征做全局池化操作。h × w分別表示圖像經(jīng)過(guò)卷積神經(jīng)網(wǎng)絡(luò)得到的特征圖的高度和寬度,X(i,j)表示特征圖上位置(i,j)的特征信息,特征圖上的信息經(jīng)過(guò)壓縮后輸出一組通道數(shù)為c的特征信息。通道數(shù)為c的特征信息通過(guò)激勵(lì)操作,對(duì)各個(gè)通道的相關(guān)性建模,激勵(lì)操作的表達(dá)式如公式(2)所示:
W1的維度是C′ ×C;W2的維度是C ×C′;C′為C*1/4。之后分別通過(guò)一個(gè)全連接層、激活函數(shù)、全連接層,對(duì)Squeeze 的結(jié)果Y做非線性變換。最后通過(guò)sigmoid函數(shù)將值限定在[0,1],輸出的維度是1×1×C。最后是特征重標(biāo)定,表達(dá)式如公式(3)所示:
輸入特征X,Excitation 得到的結(jié)果作為權(quán)重,兩者相乘得到各個(gè)通道調(diào)整后的特征,重要的特征可以獲得更大權(quán)重,無(wú)關(guān)信息可以得到較低權(quán)重,因此可以對(duì)原特征進(jìn)行重新標(biāo)定。
RFBNet 網(wǎng)絡(luò)基礎(chǔ)上引入通道域注意力機(jī)制,分別在基礎(chǔ)網(wǎng)絡(luò)、RFB 模塊或者RFB-s 模塊上添加,添加注意力機(jī)制后的網(wǎng)絡(luò)結(jié)構(gòu)如下圖5 所示。
圖5 引入通道注意力的算法結(jié)構(gòu)圖Fig.5 An algorithm structure diagram that introduces channel attention
本實(shí)驗(yàn)采用Linux 操作系統(tǒng)ubuntu16.04,選用HP inter(R)Core(TM)i7-9750 的CPU 筆記本作為調(diào)試平臺(tái),TITAN V 顯卡的服務(wù)器訓(xùn)練神經(jīng)網(wǎng)絡(luò),搭載PyTorch 深度學(xué)習(xí)環(huán)境的開(kāi)發(fā)平臺(tái)。本實(shí)驗(yàn)采用PASCAL VOC 行人數(shù)據(jù)集,VOC2007 和VOC2012 的行人子集作為訓(xùn)練集,VOC2007-test 作為測(cè)試集。參與網(wǎng)絡(luò)訓(xùn)練的行人數(shù)據(jù)集有6 095張,測(cè)試集有2 007張。
目標(biāo)檢測(cè)主要使用均值平均準(zhǔn)確率(Map)作為衡量算法的檢測(cè)精度。本文實(shí)驗(yàn)主要分為4 組,第一組是壓縮模型參數(shù)并測(cè)試行人檢測(cè)的精度,第二組是0.9 M 模型參數(shù)量下引入注意力機(jī)制,第三組是3.1 M模型參數(shù)量下引入注意力機(jī)制,第四組是RFBNet300-person 模型引入注意力機(jī)制,分別定義0.9 M、3.1 M、33.8 M 模型為RFBNet_S、RFBNet_M、RFBNet300-person。最后展示實(shí)驗(yàn)結(jié)果并分析原因。
3.2.1 第一組實(shí)驗(yàn)
本次實(shí)驗(yàn)主要在RFBNet 網(wǎng)絡(luò)基礎(chǔ)上進(jìn)行壓縮,減少卷積層的數(shù)量、減小網(wǎng)絡(luò)模型輸出的通道數(shù),因此參數(shù)量大幅度下降。實(shí)驗(yàn)設(shè)置迭代次數(shù)100 epochs,batch_size為32,單GPU 訓(xùn)練,學(xué)習(xí)率為0.008,骨干網(wǎng)絡(luò)(backbone)使用去掉全連接層的VGG16,訓(xùn)練得到最后的網(wǎng)絡(luò)模型。VOC2007 測(cè)試集上行人檢測(cè)結(jié)果對(duì)比見(jiàn)表1。
表1 VOC2007 測(cè)試集上行人檢測(cè)結(jié)果對(duì)比Tab.1 Comparison of pedestrian detection results on VOC2007 test set
RFBNet300 輸入圖像分辨率為300,通過(guò)VGG16 骨干網(wǎng)絡(luò)提取行人的特征,從conv4_3 特征圖輸出后輸入至RFB-s 模塊提取不同尺度的特征,將不同尺度的特征進(jìn)行拼接,最后輸出至檢測(cè)層。RFBNet 算法中分別從conv4_3、fc_7、conv8_2、conv9_2、conv10_2、conv11_2 特征圖輸出不同尺度不同寬高比的錨框,在最后的檢測(cè)層拼接所有的結(jié)果,之后通過(guò)NMS 剔除重復(fù)的邊界框。該算法雖然從多個(gè)卷積層提取不同尺度的行人特征,但弊端是通過(guò)多個(gè)特征圖進(jìn)行特征提取,會(huì)帶來(lái)大量的計(jì)算,模型參數(shù)量大幅度增加。因此本文削減部分卷積層,降低卷積層的輸出通道數(shù),并減少每一個(gè)特征圖錨框的個(gè)數(shù)。Conv1_2 輸出通道數(shù)64 改為32,conv2_2 輸出通道數(shù)128 改為64,conv3_3 輸出通道數(shù)256 改為128,conv4_3 輸出通道數(shù)512 改為258,conv5_2輸出通道數(shù)512 改為258,并削減conv5_3 卷積層,同時(shí)削減conv8_2 和conv9_2 層的RFB 模塊,模型為RFBNet_M。RFBNet_M 基礎(chǔ)上將conv4_3、conv5_2、conv6_2、conv7_2、conv8_2 的輸出通道數(shù)256 改為128,并conv9_2 的輸出通道數(shù)256 改為64,得到的模型為RFBNet_S。由表1 知,RFBNet_M 算法平均精準(zhǔn)率仍然為80.01%,模型參數(shù)量壓縮為原來(lái)的約10%。RFBNet_S 模型參數(shù)量為0.99M,平均精準(zhǔn)率為78.04%。RFBNet_M 模型削減conv8_2 和conv9_2 特征圖的RFB 模塊,特征圖并沒(méi)有得到多尺度特征融合,產(chǎn)生漏檢,檢測(cè)精度稍微下降。另一原因是壓縮部分卷積層和降低輸出通道數(shù),降低模型的非線性表達(dá),因此模型對(duì)行人特征提取能力下降。
本文在上述模型分別引入注意力機(jī)制,增加模型的非線性表達(dá),可以增大模型的特征提取能力。注意力機(jī)制可以實(shí)現(xiàn)網(wǎng)絡(luò)更傾向可見(jiàn)部分行人特征,減少被遮擋部分行人信息對(duì)模型的干擾。
3.2.2 第二組實(shí)驗(yàn)
本次實(shí)驗(yàn)是在RFBNet_S 引入注意力機(jī)制。實(shí)驗(yàn)迭代次數(shù)設(shè)置為100 epochs,batch_size為32,單GPU 訓(xùn)練,學(xué)習(xí)率為0.008。引入注意力機(jī)制的實(shí)驗(yàn)結(jié)果見(jiàn)表2。
表2 引入注意力機(jī)制的實(shí)驗(yàn)結(jié)果Tab.2 Experiment results of attention mechanism is introduced
表2 中√表示在骨干網(wǎng)絡(luò)(Backbone)或者在(RFB)模塊中引入注意力機(jī)制。從表2 知,F(xiàn)BNet_S在骨干網(wǎng)絡(luò)引入注意力機(jī)制效果更佳。在骨干網(wǎng)絡(luò)的基礎(chǔ)上引入注意力機(jī)制,檢測(cè)精度提升0.06%。通道域模塊加入到骨干網(wǎng)絡(luò),會(huì)增加網(wǎng)絡(luò)的非線性表達(dá)能力,通道域注意力計(jì)算出各個(gè)通道權(quán)重,行人特征對(duì)應(yīng)通道得到較大權(quán)重,背景信息對(duì)應(yīng)通道得到較低權(quán)重,因此提高模型對(duì)行人特征的提取能力。在RFB 模塊引入注意力機(jī)制,失去多尺度行人特征融合的作用,模型檢測(cè)性能會(huì)略微下降。
3.2.3 第三組實(shí)驗(yàn)
本次實(shí)驗(yàn)是在RFBNet_M 引入注意力機(jī)制。實(shí)驗(yàn)迭代次數(shù)設(shè)置為100 epochs,batch_size為32,單GPU 訓(xùn)練,學(xué)習(xí)率為0.008。引入注意力機(jī)制的實(shí)驗(yàn)結(jié)果見(jiàn)表3。
表3 引入注意力機(jī)制的實(shí)驗(yàn)結(jié)果對(duì)比Tab.3 Experiment results of attention mechanism is introduced
表3 中√表示對(duì)應(yīng)的模塊引入注意力機(jī)制。從表1、表3 實(shí)驗(yàn)結(jié)果可知,F(xiàn)BNet_M 在骨干網(wǎng)絡(luò)引入注意力機(jī)制效果更佳。骨干網(wǎng)絡(luò)添加注意力模塊,可以增加網(wǎng)絡(luò)的非線性,提高模型對(duì)行人特征的提取能力。通道域注意力可以對(duì)不同通道施加不同的權(quán)重,行人特征對(duì)應(yīng)通道得到更大權(quán)重,背景信息對(duì)應(yīng)通道得到較小權(quán)重,網(wǎng)絡(luò)可以更傾向有用的行人特征,忽略無(wú)關(guān)信息,因此行人檢測(cè)精度提高。
3.2.4 第四組實(shí)驗(yàn)
本次實(shí)驗(yàn)是在RFBNet300-person 引入注意力機(jī)制。實(shí)驗(yàn)迭代次數(shù)設(shè)置為100 epochs,batch_size為32,單GPU 訓(xùn)練,學(xué)習(xí)率為0.008。引入注意力機(jī)制的實(shí)驗(yàn)結(jié)果見(jiàn)表4。
表4 引入注意力機(jī)制的實(shí)驗(yàn)結(jié)果Tab.4 Experimental results with attention mechanisms
表4 中√表示相應(yīng)的模塊引入注意力機(jī)制。FBNet300-person 在骨干網(wǎng)絡(luò)引入注意力機(jī)制效果更佳,檢測(cè)精度提升0.51%。通道域注意力可以實(shí)現(xiàn)網(wǎng)絡(luò)更傾向行人的關(guān)鍵信息,忽略無(wú)關(guān)信息,精準(zhǔn)訓(xùn)練網(wǎng)絡(luò)。SENet 結(jié)構(gòu)專注于卷積核各個(gè)通道的響應(yīng),圖像經(jīng)過(guò)卷積核提取特征后,圖像上不同的目標(biāo)在卷積核對(duì)應(yīng)通道會(huì)得到不同的響應(yīng),SENet 可以加強(qiáng)有用行人特征,降低無(wú)用特征對(duì)應(yīng)通道響應(yīng),因而網(wǎng)絡(luò)對(duì)行人特征識(shí)別能力更強(qiáng),進(jìn)一步提升行人檢測(cè)的性能。
為了將RFBNet 算法部署在輕量設(shè)備上運(yùn)行,本文對(duì)RFBNet 模型進(jìn)行進(jìn)一步壓縮。削減卷積層,降低模型輸出通道數(shù),削減conv8_2 和conv9_2特征圖的RFB 模塊,經(jīng)過(guò)實(shí)驗(yàn),模型參數(shù)量壓縮約為原來(lái)的1/10,行人檢測(cè)精度仍然保持為80.01%。骨干網(wǎng)絡(luò)引入通道域注意機(jī)制的RFBNet 算法,提高行人檢測(cè)的精度,且具有良好的魯棒性和適用性。