馮磊FENG Lei;李斌LI Bin;何勇HE Yong
(①國家能源集團新疆能源有限責任公司,烏魯木齊 830000;②中國煤炭科工集團太原研究院,太原 030006)
行人檢測技術作為目標檢測領域的重要應用方向,一直以來都是研究人員關注的熱點問題。行人檢測的任務本質是在識別行人的同時對行人位置進行定位。也就是說,行人檢測技術就是計算機對于給定的視頻和圖像,判斷出其中是否有行人存在,同時標記出行人位置。
實際應用場景中,由于行人的非剛性特點,外觀特征易受姿態,形狀,視角,衣著等變化因素影響,并且在外界光照,遮擋,背景環境變化時,檢測精度也易受到影響。因此,行人檢測性能的提升是目標檢測中極具挑戰性的課題。而這其中,行人遮擋是亟待解決的重要問題。由于行人遮擋往往造成漏檢和誤檢,影響行人檢測的準確率和精確率,因此對于行人檢測技術而言,研究行人遮擋對于行人檢測性能提升意義重大。本文以不同遮擋程度的行人為研究對象,采用基于深度學習算法的雙階段檢測器Faster RCNN 為基礎架構,設計了一種基于注意力機制的網絡,從而降低行人檢測的漏檢率,增強了遮擋行人的檢測魯棒性。
Faster R-CNN 的主要結構包括主干特征提取網絡(ResNet50),候選區域網絡(RPN),池化層網絡(RoI pooling 層),分類網絡(Classification 層)等。
Faster R-CNN 的主要原理如下:①首先將輸入圖像預處理,然后用主干特征提取網絡提取圖片特征,輸出對應的特征圖(Feature Map);②接著將特征圖(Feature Map)輸入RPN 網絡,經過3×3 卷積之后分別執行18 通道和36通道的1×1 卷積,輸出一系列候選框(Proposal);③然后將特征圖,候選框,原圖相關信息等輸入候選框特征池化層,經過分塊池化操作,輸出大小一致的候選框特征圖;④最后將大小一致的候選框特征圖輸入分類網絡,并經過分類全連接網絡和回歸全連接網絡對候選框識別與定位。
ResNet 是殘差網絡(Residual Network) 的縮寫,ResNet50 表示網絡層數為50 的深度殘差網絡。
Faster R-CNN 主干網絡采用ResNet50,ResNet50 表示網絡層數為50 的深度殘差網絡。殘差網絡ResNet50 由兩個基本的模塊組成,分別命名為卷積殘差塊(Conv Block)和恒等殘差塊(Identity Block)。由卷積殘差塊和恒等殘差塊構成的ResNet50 結構如圖1 所示,第一個模塊由1 個卷積層構成(如圖1 第二個模塊),第二個網絡模塊由3×3 個卷積層構成(如圖1 第三個模塊),第三個模塊由3×4 個卷積層構成(如圖1 第四個模塊),第四個模塊由3×6 個卷積層構成(如圖1 第五個模塊),第五個模塊由3×3個卷積層構成(如圖1 第六個模塊),最后再加一個全連接層,一共是1+3×3+3×4+3×6+3×3+1=50 層。

圖1 ResNet50 網絡結構
Faster R-CNN 不再使用選擇搜索算法生成候選區域,而是直接用卷積神經網絡(RPN)生成候選區。具體操作流程如下:首先生成feature Map 對應的錨框(anchor),每個feature Map 上的特征點對應9 個anchor;其次對feature Map 進行3×3 卷積,然后分別進行18 通道和36 通道的1×1 卷積,分別表示9 個anchor 對應的前景背景得分和回歸系數;然后分別對anchor 進行回歸微調和對anchor 是否為前景或背景打分,最終獲得候選框(proposal)。
RoI pooling 的作用是將尺寸各異的輸入特征轉化為尺寸一致的輸出特征。RoI 處理流程:首先計算Feature Map 與輸入圖片的尺度比例,然后將RoI 各個坐標除以該比例獲得Feature Map 對應的坐標,最后將Feature Map 中對應的區域分塊進行最大值池化或者平均值池化操作,獲得尺寸一致的特征圖輸出。
通過RoI 對公用特征層截取并經過RoI pooling 層之后,RoI pooling 層輸出的特征層是對應RoI 區域尺寸大小一致的特征層,然后對特征層卷積操作和平均池化,最后將其結果進行回歸操作和softmax 分類操作。
注意力機制(Attention)的核心思想是更多關注局部信息,比如圖像中的某一空間區域或者某一通道維度。計算機視覺中的注意力機制,主要靈感來源于人類的生物視覺系統。其核心思想與人類視覺注意類似,也是為了使計算機視覺針對當前任務能夠更高效準確地提取出圖像中的關鍵信息。注意力機制按照作用原理角度可分為三類:通道注意力模型,空間注意力模型,空間和通道注意力機制的融合模型。
CBAM 是典型的融合空間和通道注意力機制的網絡,CBAM 注意力機制模塊主要作用原理是將中間特征層與集成了空間和通道兩個維度的注意力模塊結合在一起,然后通過訓練學習對應維度的注意力權重,并將權重與原特征層相乘來對特征層進行自適應調整。
整個CBAM 的注意力機制模塊如圖2 所示,其具體計算流程為:

圖2 CMAB 注意力機制模塊
①輸入特征圖F;
②F 進入通道注意力機制模塊Mc(F),Mc(F)中的參數與對應通道相乘,得到通道加權的F’;
③F’繼續進入到空間注意力機制模塊Ms(F’),Ms(F’)中參數與對應的空間特征點相乘,得到空間加權的F”
其對應的公式為(1):

其中Ms表示空間注意模塊,Mc表示通道注意模塊。
CBAM 之所以要用AvgPool 和MaxPool 兩條并行的池化路徑,是因為AvgPool 更多注意宏觀上的信息,而MaxPool 更多注意局部的信息,同時使用兩種方法并行池化有利用網絡獲得魯棒性。
本文選用ResNet50 為骨架網絡。針對遮擋行人特征不足的問題,本文將CBAM 加入到ResNet50 中,形成新的特征提取網絡,將Faster R-CNN 主干網絡與CBAM 進行有效的結合。原理如圖3 所示。

圖3 CBAM 在Resnet50 中的原理圖
ResNet50 的兩個基本組成模塊為卷積殘差塊(Conv Block)和恒等殘差塊(Identity Block),其整體結構是由若干基本組成模塊卷積殘差塊和恒等殘差塊有序堆疊而成。
由于ResNet50 整體網絡層數較深,為了整個網絡的簡潔高效,本文不選擇在每個卷積殘差塊和恒等殘差塊之后都加一個CBAM,而是選擇在每一次特征維度發生變化時加入CBAM,其網絡的整體結構如圖4 所示。

圖4 ResNet50 結合CBAM 結構圖
在基于注意力機制CBAM 的ResNet50 結構中,卷積層1_x 采用了一個7×7,64 通道,步長為2 的卷積;在進入卷積層2_x 之前要使用一個3×3,步長為2 的最大值池化操作,之后增加一個CBAM 模塊;卷積層2_x 由1 個卷積殘差塊和2 個恒等殘差塊順序連接構成,之后增加一個CBAM 模塊;卷積層3_x 由1 個卷積殘差塊(步長為2)和3 個恒等殘差塊順序連接構成,之后增加一個CBAM 模塊;卷積層4_x 由1 個卷積殘差塊(步長為2)和5 個恒等殘差塊順序連接構成,之后增加一個CBAM 模塊,之后增加一個CBAM 模塊,經此處輸出的特征層則作為公用特征層(Feature Map)輸入RPN 網絡和RoI pooling 層;卷積層5_x 由1 個卷積殘差塊(步長為2)和2 個恒等殘差塊順序連接構成,構成分類層(Classification),經此處輸出的特征層用于分類和回歸,對行人進行檢測。
Caltech 數據集和Cityperson 數據集不僅標注了行人的完整邊界框,而且標注了行人可見區域的邊界框,能夠區別不同行人的遮擋程度,因此本文選擇這兩個數據集進行實驗并對實驗結果進行綜合評估。行人檢測中最常用的評價準則之一是MR-FPPI(Miss rate against False positive per image)曲線和平均對數漏檢率MR-2(log-average miss rate)。其中FPPI(False positive per image)為橫坐標,表示平均每張測試圖片的誤檢數量,漏檢率為縱坐標,都采用對數刻度。若MR-FPPI 的曲線與X 軸之間的面積越小,表示整個算法漏檢率更小。通過MR-FPPI 曲線,可以在每張圖像誤檢數在[10-2,100]范圍內均勻取9 個FPPI 對應的漏檢率求平均值得到對數平均漏檢率MR-2。
本實驗是基于64 位windows10 操作系統,中央處理器為Intel Core(TM)i5-10400F CPU@2.90GHz,內存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 算法骨架網絡為ResNet50,在訓練之前該骨架網絡在ImageNet 上經過預訓練,訓練時使用預訓練好的網絡權值作為骨架網絡ResNet50 的初始化權重。所有經過改進之后新添加的網絡結構均使用Xavier 方法[59]對權重進行初始化。整個網絡采用端到端的訓練,整個網絡使用自適應學習率的梯度下降方法Aadm 算法訓練,動量(momentum)設為0.9,設置權重衰減系數為0.0005。在Caltech 數據集上,我們一共進行100 個世代(epoch)的訓練,每個epoch 訓練圖片為4250 張,前50 個世代凍結ResNet50 的預訓練權重進行微調,訓練初始的學習率1×10-4,之后50 個世代解凍預訓練權重訓練,初始學習率設為1×10-5,學習率以指數方式衰減,系數為0.95。在Cityperson 數據集上,我們一共進行100 個世代的訓練,每個epoch 的訓練驗證圖片為2975 張圖片,前50 個世代凍結ResNet50的預訓練權重進行微調,訓練初始的學習率為1×10-3,之后50 個世代解凍預訓練權重訓練,初始學習率設為1×10-4,學習率以指數方式衰減,系數為0.95。
本文針對遮擋問題引進了注意力機制并選擇遮擋程度不同的若干子集實驗。
如表1 所示為注意力機制Faster R-CNN 在Cityperson 數據集的實驗結果,表中數據表示對數平均漏檢率MR-2。引進注意力機制的方法在合理遮擋,嚴重遮擋,部分遮擋和幾乎無遮擋四個子集上MR-2分別降低了3.6%,8.8 %,4.5%,0.7%,表明基于注意力機制的特征融合網絡能夠有效改善網絡性能,尤其在行人遮擋嚴重的情況下。

表1 改進的Faster R-CNN 在Cityperson 數據集的MR-2 實驗結果
如表2 所示為注意力機制Faster R-CNN 在Caltech 數據集的實驗結果,檢測網絡在Caltech 數據集的檢測效果整體好于Cityperson,主要是因為Cityperson 相比于Caltech,數據集場景更加多樣,行人數量和行人密度更大,并且行人的遮擋程度更加嚴重,因此對檢測器性能的抗遮擋性能有更高要求。由表中數據可知,采用基于注意力機制網絡訓練,在無遮擋、部分遮擋、嚴重遮擋子集上MR-2分別降低了2.6%,3.4%,6.5%,性能提升明顯。

表2 改進的Faster R-CNN 在Caltech 數據集的MR-2 實驗結果
本文以煤礦工作面遮擋行人為主要研究對象,基于Faster R-CNN 檢測框架,對提升遮擋行人檢測性能展開研究。針對遮擋行人可見區域有限,可見部分不完整,本文采用注意力機制模塊(CBAM)對遮擋行人的特征從空間維度和通道維度增強其權重分配。在此基礎上,將兩種方法結合起來提出基于注意力機制的特征融合模塊,增強遮擋行人的特征提取,獲得了更好的檢測效果。