郭啟帆, 劉 磊, 張 珹, 徐文娟, 靖穩(wěn)峰,?
(1- 西安交通大學(xué)數(shù)學(xué)與統(tǒng)計學(xué)院,西安 710049; 2- 中鐵第一勘察設(shè)計院集團有限公司,西安 710043)
卷積神經(jīng)網(wǎng)絡(luò)CNN 能夠?qū)W習(xí)圖像的高級特征表示,在計算機視覺中得到廣泛應(yīng)用.自2012 年一種有效的CNN―AlexNet[1]出現(xiàn)之后,卷積神經(jīng)網(wǎng)絡(luò)得到了快速發(fā)展,基于CNN 的VGGNet[2]、Inception[3]等網(wǎng)絡(luò)在工程圖像分類中取得了優(yōu)異的表現(xiàn).隨著ResNet 殘差網(wǎng)絡(luò)[4]的提出,CNN 向更深層次的網(wǎng)絡(luò)邁進,其圖像處理的性能不斷提升,已經(jīng)在視覺檢測領(lǐng)域顯現(xiàn)出巨大的優(yōu)勢.
近年來,圖像分類、目標(biāo)檢測等計算機視覺算法隨著CNN 的改進快速發(fā)展.Girshick等提出了基于CNN 的R-CNN[5]用于目標(biāo)檢測,使得兩階段的目標(biāo)檢測成為主流.He 等人提出了SPPNet[6],有效解決了候選區(qū)域計算冗余的問題.Girshick 提出了Fast RCNN[7],實現(xiàn)了一種多任務(wù)學(xué)習(xí)方式,對目標(biāo)分類和包圍框回歸的同步訓(xùn)練.Ren 等人在Faster R-CNN[8]中提出RPN,將區(qū)域推薦階段和CNN 分類融到了一起,實現(xiàn)了一個完全意義上的端到端的CNN 目標(biāo)檢測模型.Redmon 等人提出的YOLO[9]是第一個單階段卷積網(wǎng)絡(luò)檢測算法,僅通過一次前向傳播直接得到目標(biāo)包圍框的位置和目標(biāo)的類別,有著非??斓臋z測速度,但是其精度較差.Liu 等人接著提出SSD 算法[10],吸收了YOLO 速度快和RPN 定位精準的優(yōu)點,采用了RPN 中的多參考窗口技術(shù),并進一步提出在多個分辨率的特征圖上進行檢測.為了提高單階段方法的檢測精度,Lin 等人提出了RetinaNet[11]檢測模型,對傳統(tǒng)的交叉熵損失函數(shù)進行修正,提出了“Focal Loss”,極大的提高了檢測精度.
特征金字塔網(wǎng)絡(luò)FPN[12]是傳統(tǒng)CNN 網(wǎng)絡(luò)對圖片信息進行表達輸出的一種有效方法,通過對不同層的特征圖進行特征融合,使用多尺度的特征圖進行預(yù)測.特征金字塔對多尺度特征圖的融合在目標(biāo)檢測網(wǎng)絡(luò)中得到了廣泛應(yīng)用,并取得了顯著的效果提升.然而,F(xiàn)PN 沒有將存在于低層特征圖準確定位信號反饋到高層語義特征圖,同時各層級之間的特征傳遞僅限于相鄰層級,導(dǎo)致了特征融合的不平衡性.在Liu 等人的Path Aggregation Network[13]中,引入bottom-up path augmentation 結(jié)構(gòu),利用網(wǎng)絡(luò)淺特征對FPN 特征進行融合.
針對FPN 的不足,本文提出基于特征金字塔的多尺度特征融合網(wǎng)絡(luò)模型(Muti-scale Feature Fusion Network, MSFFN).MSFFN 包含了混合特征金字塔(Mixed Feature Pyramid, MFP)和金字塔融合模塊(Pyramid Fusion Block, PFB).MFP 在FPN 的基礎(chǔ)上增加了自底向上的路徑,把FPN 中低層的細節(jié)信息傳遞到高層的語義特征圖,PFB 引入特征注意力機制,將不同層級的特征進行直接融合,同時保留其語義和位置信息,以此來平衡所有用來進行預(yù)測的層級.針對MSFFN,本文在MSCOCO 2014 和PASCAL VOC 2012 數(shù)據(jù)集上進行實驗,驗證了本文提出的MSFFN 方法的有效性.
特征金字塔網(wǎng)絡(luò)將低分辨率、高語義信息的高層特征和高分辨率、低語義信息的低層特征進行自上而下地側(cè)邊連接,使得所有尺度下的特征都有豐富的語義信息,其結(jié)構(gòu)如圖1 所示.通過利用常規(guī)CNN 模型從底至上各個層對同一圖片不同維度的特征表達結(jié)構(gòu),可有效在單一圖像視圖下生成對其的多維度特征表達,其核心思想包括兩部分:自下至上的通路即自下至上的不同維度特征生成;自上至下的通路即自上至下的特征補充增強.
自下而上的部分是卷積神經(jīng)網(wǎng)絡(luò)的前向過程.在前向過程中,特征圖的大小在經(jīng)過一些層后會改變,而在經(jīng)過其他一些層的時候不會改變,將不改變特征圖大小的層歸為一個階段,因此每次抽取的特征都是每個階段的最后一個層的輸出,這樣就能構(gòu)成特征金字塔.具體地說,使用了ResNet 網(wǎng)絡(luò)Conv2-x、Conv3-x、Conv4-x 和Conv5-x 各階段的最后一個殘差結(jié)構(gòu)的特征激活輸出.自上而下的過程采用上采樣,通過內(nèi)插值方法,即在原有圖像像素的基礎(chǔ)上在像素點之間采用合適的插值算法插入新的元素,從而擴大原圖像的大小.通過對特征圖進行上采樣,使得上采樣后的特征圖具有和下一層的特征圖相同的大小.
圖1 特征金字塔結(jié)構(gòu)
注意力機制是在特征提取的時候,著重關(guān)注圖像信息最顯著的組成部分.即讓網(wǎng)絡(luò)更關(guān)注有效特征,具體實施時一般在通道維度加入注意力. Hu 等人[14]提出了探索通道間關(guān)系的SE 注意力模塊,通過全局池化特征計算每個通道的注意力,SE 注意力模塊的結(jié)構(gòu)如圖2 所示.
圖2 SE 注意力模塊
首先對進入SE 注意力模塊的特征圖F 進行卷積操作,生成特征圖F1, F1∈RH×W×C,SE 注意力模塊在通道維度關(guān)注輸入特征圖的有用部分,通過將特征圖F1全局平均池化生成一維注意力圖Favg,其中全局平均池化為了得到每個通道所有元素的反饋,再經(jīng)過共享的多層感知機得到注意力特征圖,經(jīng)過sigmoid 函數(shù)激活生成權(quán)重特征圖M, M ∈R1×1×C,即為通道注意力特征圖,公式表示為
其中σ 為sigmoid 函數(shù).
將帶有注意力的權(quán)重M 加入網(wǎng)絡(luò),M 與特征圖F1進行元素相乘得到SE 注意力模塊輸出特征圖F2,公式表示為
針對傳統(tǒng)特征提取網(wǎng)絡(luò)只能依靠深層語義信息來進行預(yù)測,而忽略網(wǎng)絡(luò)低層細節(jié)信息的不足,本文提出了多尺度特征融合網(wǎng)絡(luò)MSFFN,其結(jié)構(gòu)如圖3 所示.MSFFN 在FPN主干網(wǎng)絡(luò)的基礎(chǔ)上,為了用低層細節(jié)信息增強特征金字塔,創(chuàng)建了自下而上的路徑,以增強低層細節(jié)信息到高層的傳遞.同時,MSFFN 對各層級的特征進行了融合,并反過來作用于相應(yīng)層級的特征,來平衡各層級間的差異性,同時增強了有用特征的表達.本節(jié)首先介紹MSFFN 的用來路徑增強的混合特征金字塔網(wǎng)絡(luò),然后描述金字塔融合模塊.
圖3 MSFFN 網(wǎng)絡(luò)結(jié)構(gòu)
混合特征金字塔MFP 在FPN 的基礎(chǔ)上,增加了自底向上的路徑,將FPN 中低層的細節(jié)信息傳遞到高層的語義特征圖.圖3 中矩形虛線框為MFP 的結(jié)構(gòu),N2~N5為自底向上的路徑增強.MFP 使用ResNet 作為基礎(chǔ)的特征提取網(wǎng)絡(luò),使用ImageNet 上訓(xùn)練好的權(quán)重作為預(yù)訓(xùn)練模型,采用ResNet 網(wǎng)絡(luò)Conv2-x、Conv3-x、Conv4-x 和Conv5-x 各階段的最后一個殘差結(jié)構(gòu)的特征激活輸出.根據(jù)FPN 的定義,將四種不同尺度的輸出生成與相同層空間維度大小一致的特征圖,記為{C2,C3,C4,C5}.
在此基礎(chǔ)上,本文設(shè)計了從低層到最高層的路徑.從C2開始一直到C5,空間尺寸逐漸采取下采樣.該過程新生成的與{C2,C3,C4,C5}相對應(yīng)的特征圖記為{N2,N3,N4,N5}.圖4 描述了從Ni產(chǎn)生Ni+1的結(jié)構(gòu),每個Ni首先通過一個3×3,步長為2 的卷積層來減小尺寸,產(chǎn)生與Ci+1尺寸相同的特征圖.之后Ci+1與下采樣的特征圖元素相加.加和后的特征圖經(jīng)過另外一個3×3 的卷積操作產(chǎn)生Ni+1.生成Ni+2的操作由Ni+1重復(fù)上述過程.圖4 結(jié)構(gòu)的公式表示如下
圖4 從底向上的路徑增強
MFP 中的路徑增強將低層細節(jié)信息和深層語義信息進行了傳遞.但是,這種傳遞僅限于相鄰層級,最高層的信息傳遞到最低層會變得較為微弱,造成了各層級之間信息的不平衡性.為了解決這個問題,本文提出了一個金字塔融合模塊PFB,將不同層級的特征進行直接融合,同時保留其語義和位置信息,以此來平衡所有用來進行預(yù)測的層級.PFB 的結(jié)構(gòu)如圖3 中右邊的虛線框部分所示.首先將不同層級的特征{N2,N3,N4,N5}通過插值或最大池化重構(gòu)為N4的尺寸大小,得到{F2,F(xiàn)3,F(xiàn)4,F(xiàn)5},之后,取其均值得到平衡語義特征Fb.在l 層分辨率的特征記作Fl,最低層及最高層特征的索引記作lmin, lmax.Fb的公式如下
其中L 為金字塔的層數(shù).
為減少平衡語義特征的信息冗余,進一步增強特征表達,本文采用了SE 注意力模塊[14],利用注意力機制對融合特征圖的有效特征進行了加強,并加入了殘差連接,其結(jié)構(gòu)如圖5 所示.通過提取特征圖的通道維度的注意力,關(guān)注信息最顯著的組成部分,可以有效地增強平衡語義特征的特征表示.
圖5 殘差注意力機制模塊
這里σ 表示sigmoid 函數(shù),W0∈RC/r×C, W1∈RC×C/r,表示通道注意力分支中MLP 的權(quán)重參數(shù).在上述操作之后,本文將得到注意力圖Mc作用于SE 注意力模塊的輸入特征圖Fb,得到經(jīng)過注意力機制增強特征表示的A,公式如下
為了將平衡后語義特征信息反饋到每一個層級,將SE 注意力模塊的輸出A 使用相同但相反的過程,重構(gòu)到與各層級對應(yīng)相同的尺寸,得到{A2,A3,A4,A5},與{C2,C3,C4,C5}進行加和操作,得到{P2,P3,P4,P5}.其公式表示如下
{P2,P3,P4,P5}與{C2,C3,C4,C5}相比,平衡了各層級間的差異性,增強了各層的原始特征.用于后續(xù)的目標(biāo)檢測中,流程和FPN 相同.
本文實驗計算環(huán)境:CPU 為Xeon E5-2664 v4 Gold,主頻3.2 GHz,16 核;GPU 為NVIDIA Tesla P100,16 GB 顯存,3584 個核心.采用深度學(xué)習(xí)開源框架Pytorch1.1.0 進行深度網(wǎng)絡(luò)模型訓(xùn)練和測試.
本實驗在PASCAL VOC 2012 和MS COCO 2014 數(shù)據(jù)集對本文提出的多尺度特征融合網(wǎng)絡(luò)進行測試.PASCAL VOC 2012 具有21 個類,訓(xùn)練集包含5717 張圖像,驗證集包含5823 張圖像.MS COCO 2014 具有81 個類,訓(xùn)練集包含82783 張圖像,驗證集包含40504 張圖像.
1) 訓(xùn)練過程
本實驗使用Faster R-CNN 作為基礎(chǔ)目標(biāo)檢測結(jié)構(gòu),使用ResNet 作為特征提取網(wǎng)絡(luò),對所提出的多尺度特征融合網(wǎng)絡(luò)進行訓(xùn)練.在PASCAL VOC 2012 數(shù)據(jù)集上,本文設(shè)置了12 個epoch,betchsize 大小為16,初始學(xué)習(xí)率為0.02,分別在第8 和第11 個epoch,學(xué)習(xí)率減小為原來的0.1 倍.在MS COCO 2014 數(shù)據(jù)集上,除了將初始學(xué)習(xí)率設(shè)置為0.01,其他設(shè)置與PASCAL VOC 2012 數(shù)據(jù)集相同.
2) 模型評估
本文使用MAP(Mean Average Precision)來評估所提出方法的性能,其公式如下
這里Recall(R)是召回率,Precision(P)是精確率,TP 為正樣本被分為正樣本的數(shù)量,F(xiàn)N 為正樣本被錯誤地分為負樣本的數(shù)量,F(xiàn)P 為負樣本被錯誤地分為正樣本的數(shù)量.TP +FN 為全部正樣本數(shù)量,TP +FP 全部被分為正樣本的數(shù)量.
TP 和FP 根據(jù)IOU(Intersection Over Union)閾值來判斷,IOU 公式如下
這里A 表示GT Box,B 表示檢測模型預(yù)測的anchor.假設(shè)IOU 閾值為0.5,如果IOU >0.5,則樣本為TP,否則為FP.
在PASCAL VOC 2012 數(shù)據(jù)集的性能實驗中,本文使用Faster R-CNN 作為基礎(chǔ)檢測器,ResNet 作為特征提取網(wǎng)絡(luò),來評估所提出的模型,使用5717 張圖像訓(xùn)練模型,5823 張圖像進行測試.表1 顯示出MAP 值在三種深度的ResNet 上均得到了一定的提升,ResNet50、ResNet101 和ResNet152 分別提升1.1%、0.9%和0.6%.MSFFN 與FPN 的識別效果對比如圖6 所示,圖6(b)的小鳥和遠處的船只均被MSFFN 識別,而圖6(a)中FPN 則未檢測出,圖6(c)中左側(cè)的酒瓶被FPN 識別出兩個目標(biāo)框,而圖6(d)中MSFFN 則準確地檢測出酒瓶.實驗說明本文使用注意力機制對FPN 各層特征進行了有效的融合.
為進一步驗證所提方法的性能,本文在MS COCO 2014 數(shù)據(jù)集上對模型進行測試.MS COCO 2014 數(shù)據(jù)集包含80 個類,超過80,000 張圖像用于訓(xùn)練.表2 描述了本文使用ResNet50 和ResNet101 得到的檢測器在驗證集的性能表現(xiàn).使用ResNet50 時MSF FN 比FPN 在AP@IOU=0.5 上高1.8%,AP@IOU=0.7 上高1%以及AP@IOU=0.5:0.95上高1.2%.使用ResNet101 時MSFFN 比FPN 在AP@IOU=0.5 上高1.6%,AP@IOU=0.7 上高1.2%以及AP@IOU=0.5:0.95 上高1.1%.總的來說,這個數(shù)據(jù)集上的實驗顯示了所提出的方法在Faster R-CNN 目標(biāo)檢測網(wǎng)絡(luò)中所起到的性能提升作用.
表1 PASCAL VOC 2012 數(shù)據(jù)集實驗結(jié)果
表2 MS COCO 2014 數(shù)據(jù)集實驗結(jié)果
圖6 MSFFN 與FPN 效果對比
針對傳統(tǒng)的特征金字塔網(wǎng)絡(luò)只能依靠深層語義信息來進行預(yù)測,而忽略網(wǎng)絡(luò)低層細節(jié)信息的不足,本文提出了基于特征金字塔的多尺度特征融合網(wǎng)絡(luò)MSFFN.MSFFN 在FPN主干網(wǎng)絡(luò)的基礎(chǔ)上,設(shè)計了混合特征金字塔MFP 和金字塔融合模塊PFB.為了用低層的細節(jié)信息增強特征金字塔,MFP 創(chuàng)建了自下而上的路徑增強.同時,PFB 對各層級的特征進行了融合,并反過來作用于相應(yīng)層級的特征,來平衡各層級間的差異性,增強了有用特征的表達.之后,在PASCAL VOC 2012 和MS COCO 2014 兩個數(shù)據(jù)集上進行的實驗證明了MSFFN 對特征融合的有效性.本文提出的多尺度特征融合網(wǎng)絡(luò)可以作為提升目標(biāo)識別與跟蹤、異常檢測和圖像分割等圖像處理與視頻分析算法性能的基本模塊.