梁禮明, 錢艷群, 熊 文, 藍智敏
(江西理工大學 電氣工程與自動化學院,江西 贛州 341000)
近年來,卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)在圖像分類、目標定位與檢測等計算機視覺領(lǐng)域取得了顯著的成就。與分類任務(wù)不同,目標檢測在范圍很廣的尺度上定位和檢測多個目標時存在著自身的挑戰(zhàn)。目前最先進的單級目標檢測器(DSSD[1],RetinaNet[2]和RefineDet[3])和兩級目標檢測器(Mask R-CNN[4]和DetNet[5])普遍使用特征金字塔來處理不同物體尺度變化的問題。盡管這些檢測器取得令人振奮的檢測效果,但面對目標檢測中尺度范圍太廣,對各個不同范圍的目標檢測效果不明顯這一難點,仍然不能很好地解決。造成這種現(xiàn)象的原因主要是:1)檢測器中所設(shè)計的特征金字塔原用于分類識別任務(wù),對于檢測任務(wù)來說特征表示能力不足;2)特征金字塔中每個預(yù)測的特征圖僅來自一個或兩個層,不能充分地利用各個層的特征[6]。
本文提出一種基于多級特征金字塔網(wǎng)絡(luò)結(jié)構(gòu)的目標檢測算法。網(wǎng)絡(luò)通過將主干網(wǎng)絡(luò)的特征不斷進行深層提取,融合不同尺度的特征進行檢測。通過實驗表明,本文所提出的算法模型能夠更好地解決目標檢測中的尺度變化所帶來的問題。
網(wǎng)絡(luò)由3個不同的模塊組成(如圖1所示),分別是特征融合模塊、8個U型模塊以及尺度特征聚合模塊。
圖1 多級特征金字塔網(wǎng)絡(luò)的目標檢測模型
首先,特征融合模塊1融合主干網(wǎng)絡(luò)提取的特征形成基礎(chǔ)特征,這些特征具有豐富的信息和代表性;其次,每個U型模塊通過生成一組多尺度特征,與特征融合模塊2交替連接,融合的特征送入下一個U型模塊,進行更深層地提取特征;最后,尺度特征聚合模塊通過尺度級聯(lián)的特征操作和自適應(yīng)的注意機制將不同等級的特征按照相同的尺度進行合并,集成為多層次的特征金字塔網(wǎng)絡(luò)。
如圖2(a)所示,特征融合模塊1從主干網(wǎng)絡(luò)中融合了不同層次的特征。采用VGG的Conv4_3和Conv5_3兩種不同尺度的特征作為輸入,使用1×1卷積層來進行通道降維,并通過2x上采樣操作將深度特征重新縮放到相同的尺度,使用連接操作來聚合這些特征形成基礎(chǔ)特征。特征融合模塊2如圖2(b)所示,與特征融合模塊1的操作類似,每個U型模塊的最大輸出特征映射與基礎(chǔ)特征作為輸入,融合的特征送入到下一個U型模塊。
圖2 特征融合模塊
如圖3所示,本文設(shè)計的U型模塊采用一種比FPN[7]更細化的結(jié)構(gòu),原始的FPN[2]選擇ResNet[8]主干中每個階段最后一層的輸出,編碼層為一系列步長為2的3×3卷積層,本文設(shè)計在解碼層分支上進行上采樣和Element-wise sum[9]操作后,添加1×1卷積層,以增強學習能力并保持特征的平滑。
圖3 U型模塊
8個U型模塊的輸出形成了多層次、多尺度的特征。每個U型模塊與特征融合模塊2交替疊加,產(chǎn)生多個具有不同尺度的特征圖。特征融合模塊2將前一個U型模塊的最大輸出特征圖與基礎(chǔ)特征融合,融合后的特征圖被輸入到下一個U型模塊。第一個U型模塊沒有任何其他U型模塊的先驗知識,所以它只向Xbase學習。輸出的多級多尺度特征計算如下
圖4 尺度特征聚合模塊
在第二階段中,使用SE[9]注意力機制以自適應(yīng)的方式聚合特征,將引入一個信道關(guān)注模塊,以鼓勵特性將注意力集中在它們最受益的通道上。使用全局平均池在Squeeze[9]步驟中生成Channel-wise[9]來統(tǒng)計z∈RC。為了完全捕獲信道依賴,其激勵步驟通過兩個完全連接的層來學習注意機制
s=Fex(z,W)=σ(W2σ(W1z))
(2)
針對正負樣本數(shù)量不平衡的問題,本文在訓練中不使用所有的負樣本包圍盒,而是將負樣本的損失進行排序,將損失最大的負樣本作為最后預(yù)測的樣本,最終的正負樣本比例控制在3∶1[10]。但是為了減少負樣本的數(shù)量,與SSD(single shot multibox detector)模型不同的是,在預(yù)測前會對網(wǎng)絡(luò)預(yù)測產(chǎn)生的包圍盒進行前景和背景的二分濾除。損失函數(shù)為
本文實驗環(huán)境為Ubuntu16.04。 CPU型號為Intel I7—7800,選用 NVIDIA Titan X的GPU。采用VGG16網(wǎng)絡(luò)來提取圖像的特征,模型加載時使用預(yù)訓練權(quán)重。整個模型包含8個U型模塊,在檢測階段,對6個金字塔特征分別添加2個卷積層,分別實現(xiàn)位置回歸和分類,6個特征圖的默認框的檢測范圍按照原始SSD模型進行設(shè)置。本文選用MS COCO[11]數(shù)據(jù)集和PASCAL VOC數(shù)據(jù)集。訓練階段使用COCO2014train中圖片進行訓練,包含82 738張圖像。COCO2014val作為驗證集,用于在每一輪迭代之后對模型的驗證,用COCO2015進行測試,測試結(jié)果提交服務(wù)器。COCO數(shù)據(jù)集根據(jù)不同的IOU進行評價,并對圖像分為3個規(guī)模大小進行評價。測試結(jié)果與其他主流的目標檢測算法對比如表1所示,輸入圖像為320×320時,本文所提出的模型的AP為33.2 %,APS為14.1 %,APM為37.6 %,不但總體準確率相對于其他模型有明顯提升,對中、小目標的檢測效果也相對較好。從測試集中隨機選取幾張包含各個尺度的目標的圖片進行測試,結(jié)果如圖5所示。
表1 MS COCO數(shù)據(jù)集檢測結(jié)果
圖5 測試圖對比
PASCAL VOC數(shù)據(jù)集共包含20類目標,本文采用PASCAL VOC07+12的訓練驗證集對模型進行聯(lián)合訓練(共16 551張圖片),并在PASCAL VOC2007測試集中進行測試(4 952張圖片),使用平均準確率(mAP)作為評價指標。輸入的圖片大小為512×512,批處理大小為16,初始學習率為10-3迭代60K次,再將學習率降為10-4迭代40K次,最后將學習率降為10-5迭代20K次,使用隨機梯度下降法優(yōu)化參數(shù),動量和權(quán)重衰減參數(shù)分別為0.9和0.000 5。表2給出了PASCAL VOC07數(shù)據(jù)集中一些中小目標對比結(jié)果,從表2中可以看出,尤其是對像鳥、船、瓶子這類小目標檢測的準確率有明顯的提升。
表2 PASCAL VOC07中小目標測試結(jié)果對比(IOU=0.5)
針對目標檢測廣泛的尺度變化問題,本文提出了一個有效的特征金字塔網(wǎng)絡(luò)來對不同尺度的目標進行檢測。整個網(wǎng)絡(luò)模型以端到端的方法進行訓練,并且在PASCAL VOC和MS COCO上進行了實驗。相比于SSD模型,檢測出了遠方的小人和小車,對于一些中、小目標的物體檢測有所幫助。但是,由于多個U型模塊增大了模型的計算量,使得檢測速度有所降低。因此,不斷優(yōu)化模型的結(jié)構(gòu),降低特征信息冗余將是今后主要的研究任務(wù)。