馮磊FENG Lei;李斌LI Bin;何勇HE Yong
(①國家能源集團新疆能源有限責(zé)任公司,烏魯木齊 830000;②中國煤炭科工集團太原研究院,太原 030006)
行人檢測技術(shù)作為目標(biāo)檢測領(lǐng)域的重要應(yīng)用方向,一直以來都是研究人員關(guān)注的熱點問題。行人檢測的任務(wù)本質(zhì)是在識別行人的同時對行人位置進行定位。也就是說,行人檢測技術(shù)就是計算機對于給定的視頻和圖像,判斷出其中是否有行人存在,同時標(biāo)記出行人位置。
實際應(yīng)用場景中,由于行人的非剛性特點,外觀特征易受姿態(tài),形狀,視角,衣著等變化因素影響,并且在外界光照,遮擋,背景環(huán)境變化時,檢測精度也易受到影響。因此,行人檢測性能的提升是目標(biāo)檢測中極具挑戰(zhàn)性的課題。而這其中,行人遮擋是亟待解決的重要問題。由于行人遮擋往往造成漏檢和誤檢,影響行人檢測的準(zhǔn)確率和精確率,因此對于行人檢測技術(shù)而言,研究行人遮擋對于行人檢測性能提升意義重大。本文以不同遮擋程度的行人為研究對象,采用基于深度學(xué)習(xí)算法的雙階段檢測器Faster RCNN 為基礎(chǔ)架構(gòu),設(shè)計了一種基于注意力機制的網(wǎng)絡(luò),從而降低行人檢測的漏檢率,增強了遮擋行人的檢測魯棒性。
Faster R-CNN 的主要結(jié)構(gòu)包括主干特征提取網(wǎng)絡(luò)(ResNet50),候選區(qū)域網(wǎng)絡(luò)(RPN),池化層網(wǎng)絡(luò)(RoI pooling 層),分類網(wǎng)絡(luò)(Classification 層)等。
Faster R-CNN 的主要原理如下:①首先將輸入圖像預(yù)處理,然后用主干特征提取網(wǎng)絡(luò)提取圖片特征,輸出對應(yīng)的特征圖(Feature Map);②接著將特征圖(Feature Map)輸入RPN 網(wǎng)絡(luò),經(jīng)過3×3 卷積之后分別執(zhí)行18 通道和36通道的1×1 卷積,輸出一系列候選框(Proposal);③然后將特征圖,候選框,原圖相關(guān)信息等輸入候選框特征池化層,經(jīng)過分塊池化操作,輸出大小一致的候選框特征圖;④最后將大小一致的候選框特征圖輸入分類網(wǎng)絡(luò),并經(jīng)過分類全連接網(wǎng)絡(luò)和回歸全連接網(wǎng)絡(luò)對候選框識別與定位。
ResNet 是殘差網(wǎng)絡(luò)(Residual Network) 的縮寫,ResNet50 表示網(wǎng)絡(luò)層數(shù)為50 的深度殘差網(wǎng)絡(luò)。
Faster R-CNN 主干網(wǎng)絡(luò)采用ResNet50,ResNet50 表示網(wǎng)絡(luò)層數(shù)為50 的深度殘差網(wǎng)絡(luò)。殘差網(wǎng)絡(luò)ResNet50 由兩個基本的模塊組成,分別命名為卷積殘差塊(Conv Block)和恒等殘差塊(Identity Block)。由卷積殘差塊和恒等殘差塊構(gòu)成的ResNet50 結(jié)構(gòu)如圖1 所示,第一個模塊由1 個卷積層構(gòu)成(如圖1 第二個模塊),第二個網(wǎng)絡(luò)模塊由3×3 個卷積層構(gòu)成(如圖1 第三個模塊),第三個模塊由3×4 個卷積層構(gòu)成(如圖1 第四個模塊),第四個模塊由3×6 個卷積層構(gòu)成(如圖1 第五個模塊),第五個模塊由3×3個卷積層構(gòu)成(如圖1 第六個模塊),最后再加一個全連接層,一共是1+3×3+3×4+3×6+3×3+1=50 層。
圖1 ResNet50 網(wǎng)絡(luò)結(jié)構(gòu)
Faster R-CNN 不再使用選擇搜索算法生成候選區(qū)域,而是直接用卷積神經(jīng)網(wǎng)絡(luò)(RPN)生成候選區(qū)。具體操作流程如下:首先生成feature Map 對應(yīng)的錨框(anchor),每個feature Map 上的特征點對應(yīng)9 個anchor;其次對feature Map 進行3×3 卷積,然后分別進行18 通道和36 通道的1×1 卷積,分別表示9 個anchor 對應(yīng)的前景背景得分和回歸系數(shù);然后分別對anchor 進行回歸微調(diào)和對anchor 是否為前景或背景打分,最終獲得候選框(proposal)。
RoI pooling 的作用是將尺寸各異的輸入特征轉(zhuǎn)化為尺寸一致的輸出特征。RoI 處理流程:首先計算Feature Map 與輸入圖片的尺度比例,然后將RoI 各個坐標(biāo)除以該比例獲得Feature Map 對應(yīng)的坐標(biāo),最后將Feature Map 中對應(yīng)的區(qū)域分塊進行最大值池化或者平均值池化操作,獲得尺寸一致的特征圖輸出。
通過RoI 對公用特征層截取并經(jīng)過RoI pooling 層之后,RoI pooling 層輸出的特征層是對應(yīng)RoI 區(qū)域尺寸大小一致的特征層,然后對特征層卷積操作和平均池化,最后將其結(jié)果進行回歸操作和softmax 分類操作。
注意力機制(Attention)的核心思想是更多關(guān)注局部信息,比如圖像中的某一空間區(qū)域或者某一通道維度。計算機視覺中的注意力機制,主要靈感來源于人類的生物視覺系統(tǒng)。其核心思想與人類視覺注意類似,也是為了使計算機視覺針對當(dāng)前任務(wù)能夠更高效準(zhǔn)確地提取出圖像中的關(guān)鍵信息。注意力機制按照作用原理角度可分為三類:通道注意力模型,空間注意力模型,空間和通道注意力機制的融合模型。
CBAM 是典型的融合空間和通道注意力機制的網(wǎng)絡(luò),CBAM 注意力機制模塊主要作用原理是將中間特征層與集成了空間和通道兩個維度的注意力模塊結(jié)合在一起,然后通過訓(xùn)練學(xué)習(xí)對應(yīng)維度的注意力權(quán)重,并將權(quán)重與原特征層相乘來對特征層進行自適應(yīng)調(diào)整。
整個CBAM 的注意力機制模塊如圖2 所示,其具體計算流程為:
圖2 CMAB 注意力機制模塊
①輸入特征圖F;
②F 進入通道注意力機制模塊Mc(F),Mc(F)中的參數(shù)與對應(yīng)通道相乘,得到通道加權(quán)的F’;
③F’繼續(xù)進入到空間注意力機制模塊Ms(F’),Ms(F’)中參數(shù)與對應(yīng)的空間特征點相乘,得到空間加權(quán)的F”
其對應(yīng)的公式為(1):
其中Ms表示空間注意模塊,Mc表示通道注意模塊。
CBAM 之所以要用AvgPool 和MaxPool 兩條并行的池化路徑,是因為AvgPool 更多注意宏觀上的信息,而MaxPool 更多注意局部的信息,同時使用兩種方法并行池化有利用網(wǎng)絡(luò)獲得魯棒性。
本文選用ResNet50 為骨架網(wǎng)絡(luò)。針對遮擋行人特征不足的問題,本文將CBAM 加入到ResNet50 中,形成新的特征提取網(wǎng)絡(luò),將Faster R-CNN 主干網(wǎng)絡(luò)與CBAM 進行有效的結(jié)合。原理如圖3 所示。
圖3 CBAM 在Resnet50 中的原理圖
ResNet50 的兩個基本組成模塊為卷積殘差塊(Conv Block)和恒等殘差塊(Identity Block),其整體結(jié)構(gòu)是由若干基本組成模塊卷積殘差塊和恒等殘差塊有序堆疊而成。
由于ResNet50 整體網(wǎng)絡(luò)層數(shù)較深,為了整個網(wǎng)絡(luò)的簡潔高效,本文不選擇在每個卷積殘差塊和恒等殘差塊之后都加一個CBAM,而是選擇在每一次特征維度發(fā)生變化時加入CBAM,其網(wǎng)絡(luò)的整體結(jié)構(gòu)如圖4 所示。
圖4 ResNet50 結(jié)合CBAM 結(jié)構(gòu)圖
在基于注意力機制CBAM 的ResNet50 結(jié)構(gòu)中,卷積層1_x 采用了一個7×7,64 通道,步長為2 的卷積;在進入卷積層2_x 之前要使用一個3×3,步長為2 的最大值池化操作,之后增加一個CBAM 模塊;卷積層2_x 由1 個卷積殘差塊和2 個恒等殘差塊順序連接構(gòu)成,之后增加一個CBAM 模塊;卷積層3_x 由1 個卷積殘差塊(步長為2)和3 個恒等殘差塊順序連接構(gòu)成,之后增加一個CBAM 模塊;卷積層4_x 由1 個卷積殘差塊(步長為2)和5 個恒等殘差塊順序連接構(gòu)成,之后增加一個CBAM 模塊,之后增加一個CBAM 模塊,經(jīng)此處輸出的特征層則作為公用特征層(Feature Map)輸入RPN 網(wǎng)絡(luò)和RoI pooling 層;卷積層5_x 由1 個卷積殘差塊(步長為2)和2 個恒等殘差塊順序連接構(gòu)成,構(gòu)成分類層(Classification),經(jīng)此處輸出的特征層用于分類和回歸,對行人進行檢測。
Caltech 數(shù)據(jù)集和Cityperson 數(shù)據(jù)集不僅標(biāo)注了行人的完整邊界框,而且標(biāo)注了行人可見區(qū)域的邊界框,能夠區(qū)別不同行人的遮擋程度,因此本文選擇這兩個數(shù)據(jù)集進行實驗并對實驗結(jié)果進行綜合評估。行人檢測中最常用的評價準(zhǔn)則之一是MR-FPPI(Miss rate against False positive per image)曲線和平均對數(shù)漏檢率MR-2(log-average miss rate)。其中FPPI(False positive per image)為橫坐標(biāo),表示平均每張測試圖片的誤檢數(shù)量,漏檢率為縱坐標(biāo),都采用對數(shù)刻度。若MR-FPPI 的曲線與X 軸之間的面積越小,表示整個算法漏檢率更小。通過MR-FPPI 曲線,可以在每張圖像誤檢數(shù)在[10-2,100]范圍內(nèi)均勻取9 個FPPI 對應(yīng)的漏檢率求平均值得到對數(shù)平均漏檢率MR-2。
本實驗是基于64 位windows10 操作系統(tǒng),中央處理器為Intel Core(TM)i5-10400F CPU@2.90GHz,內(nèi)存RAM 為16G,GPU 為GTX1080,顯存8G。python3.7,Pytorch1.2.0,Cuda 版本10.0,Cudnn 版本7.4.1.5。主要用到的第三方庫包括numpy,matplotlib,cupy,opencv,PIL,os 等。
本文提出的改進faster R-CNN 算法骨架網(wǎng)絡(luò)為ResNet50,在訓(xùn)練之前該骨架網(wǎng)絡(luò)在ImageNet 上經(jīng)過預(yù)訓(xùn)練,訓(xùn)練時使用預(yù)訓(xùn)練好的網(wǎng)絡(luò)權(quán)值作為骨架網(wǎng)絡(luò)ResNet50 的初始化權(quán)重。所有經(jīng)過改進之后新添加的網(wǎng)絡(luò)結(jié)構(gòu)均使用Xavier 方法[59]對權(quán)重進行初始化。整個網(wǎng)絡(luò)采用端到端的訓(xùn)練,整個網(wǎng)絡(luò)使用自適應(yīng)學(xué)習(xí)率的梯度下降方法Aadm 算法訓(xùn)練,動量(momentum)設(shè)為0.9,設(shè)置權(quán)重衰減系數(shù)為0.0005。在Caltech 數(shù)據(jù)集上,我們一共進行100 個世代(epoch)的訓(xùn)練,每個epoch 訓(xùn)練圖片為4250 張,前50 個世代凍結(jié)ResNet50 的預(yù)訓(xùn)練權(quán)重進行微調(diào),訓(xùn)練初始的學(xué)習(xí)率1×10-4,之后50 個世代解凍預(yù)訓(xùn)練權(quán)重訓(xùn)練,初始學(xué)習(xí)率設(shè)為1×10-5,學(xué)習(xí)率以指數(shù)方式衰減,系數(shù)為0.95。在Cityperson 數(shù)據(jù)集上,我們一共進行100 個世代的訓(xùn)練,每個epoch 的訓(xùn)練驗證圖片為2975 張圖片,前50 個世代凍結(jié)ResNet50的預(yù)訓(xùn)練權(quán)重進行微調(diào),訓(xùn)練初始的學(xué)習(xí)率為1×10-3,之后50 個世代解凍預(yù)訓(xùn)練權(quán)重訓(xùn)練,初始學(xué)習(xí)率設(shè)為1×10-4,學(xué)習(xí)率以指數(shù)方式衰減,系數(shù)為0.95。
本文針對遮擋問題引進了注意力機制并選擇遮擋程度不同的若干子集實驗。
如表1 所示為注意力機制Faster R-CNN 在Cityperson 數(shù)據(jù)集的實驗結(jié)果,表中數(shù)據(jù)表示對數(shù)平均漏檢率MR-2。引進注意力機制的方法在合理遮擋,嚴(yán)重遮擋,部分遮擋和幾乎無遮擋四個子集上MR-2分別降低了3.6%,8.8 %,4.5%,0.7%,表明基于注意力機制的特征融合網(wǎng)絡(luò)能夠有效改善網(wǎng)絡(luò)性能,尤其在行人遮擋嚴(yán)重的情況下。
表1 改進的Faster R-CNN 在Cityperson 數(shù)據(jù)集的MR-2 實驗結(jié)果
如表2 所示為注意力機制Faster R-CNN 在Caltech 數(shù)據(jù)集的實驗結(jié)果,檢測網(wǎng)絡(luò)在Caltech 數(shù)據(jù)集的檢測效果整體好于Cityperson,主要是因為Cityperson 相比于Caltech,數(shù)據(jù)集場景更加多樣,行人數(shù)量和行人密度更大,并且行人的遮擋程度更加嚴(yán)重,因此對檢測器性能的抗遮擋性能有更高要求。由表中數(shù)據(jù)可知,采用基于注意力機制網(wǎng)絡(luò)訓(xùn)練,在無遮擋、部分遮擋、嚴(yán)重遮擋子集上MR-2分別降低了2.6%,3.4%,6.5%,性能提升明顯。
表2 改進的Faster R-CNN 在Caltech 數(shù)據(jù)集的MR-2 實驗結(jié)果
本文以煤礦工作面遮擋行人為主要研究對象,基于Faster R-CNN 檢測框架,對提升遮擋行人檢測性能展開研究。針對遮擋行人可見區(qū)域有限,可見部分不完整,本文采用注意力機制模塊(CBAM)對遮擋行人的特征從空間維度和通道維度增強其權(quán)重分配。在此基礎(chǔ)上,將兩種方法結(jié)合起來提出基于注意力機制的特征融合模塊,增強遮擋行人的特征提取,獲得了更好的檢測效果。