什么是M2Det
M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid Network
本文的目標是構建更加高效的特征金字塔,以提高不同尺寸目標的檢測準確率。
特征金字塔被廣泛應用于目標檢測中(one-stage的DSSD、RetinaNet、RefineDet和two-stage的Mask R-CNN、DetNet),主要解決物體檢測中的目標多尺度問題,簡而言之,特征圖的感受野是一定的,在這種感受野下只適合檢測對應感受野大小的目標。如果圖片中目標比感受野小,則很難被檢測到。
傳統解決這個問題的思路包括:
(1). 多尺度訓練和測試,也稱圖像金字塔。就是將同一張圖片,分成大小不同的圖像金字塔,將這些圖片喂到同一個網絡中,由于圖片經歷過的網絡的步長都是相同的,最終形成的特征圖大小也不一樣,但是由于步長相同,所以感受野也相同。小圖像中的大目標被調整到感受野大小后,其特征圖就容易被檢測到。同樣大圖相中的小目標也被調整到感受野大小后,其特征圖也容易檢測到對應的目標。但是這樣的方法成本太高,難以在實際中應用。
(2). 特征分層,即一張圖片產生多個特征后,分別在這些特征上進行預測。淺層的特征圖相對較大,感受野較小,適合檢測小目標。而深層的特征圖相對較小,感受野較大,適合檢測大目標。SSD框架就采用了類似的思想。但是深層和淺層所學到的信息是不同的,淺層學到的是特征細節,而深層學到的是語義特征。一刀切的從感受野層面解釋是欠妥的。
(3). 特征金字塔FPN,將深層的語義信息和淺層的特征細節信息結合(concat),然后對融合信息后的特征圖進行預測。一般來說,深層的特征圖更適合分類任務,淺層的特征圖更適合物體位置的回歸,所以將深層的信息融合進淺層特征圖中更有利于檢測到目標。除此之外,低層特征更適合檢測簡單外形的目標,深層特征更適合檢測復雜外形的目標。即使圖片中大小相同的物體,其復雜度都是不一樣的(比如近處的紅綠燈和遠處的行人),所以沒有深層語義信息,僅靠淺層特征圖檢測到復雜物體的難度要較大一些。作者對FPN能提高小物體的準確率的解釋為:小物體不僅需要更高分辨率的特征圖所對應的感受野,同時還需要深層的全局上下文信息判斷目標的存在以及獲得目標所在位置。
盡管FPN取得了不錯的效果,但是只是簡單的進行不同尺度的融合。金字塔結構特征的backbone是專門為分類任務設計的。
針對這個問題,本文作者提出了新的不同尺度融合的方法Multi-Level Feature Pyramid Network (MLFPN)。
首先,融合骨干網絡抽取出來的多級特征作為基本特征。
然后,我們將基本特征輸入到一組U型模塊(TUM)和特征融合模塊(FFM),其中U型模塊的解碼器層作為檢測對象的特征。
最后,收集解碼器層用于構建特征金字塔。
為了驗證MLFPN的效果,作者整合了MLFPN和SSD,構建了one-stage目標檢測模型M2Det。
MLFPN由三個模塊組成,Feature Fusion Module(FFM)、Thinned U-shape Module(TUM)、Scale-wise Feature Aggregation Module(SFAM)。MLFPN結構如下圖所示:
M2Det使用Backbone的多級特征經過FFM1后形成了基本特征,每個U型模塊都會產生一組多尺度特征圖。然后使用FFMv2將前一層TUM產生的多級特征圖中最大輸出特征圖和基本特征融合,形成的融合特征圖作為下一層TUM的輸入。最終形成多級多尺度的特征圖(本文使用了8級6個尺度)。最后SFAM將特征聚合成多級特征金字塔。
注:第一個TUM并沒有其他TUM產生的特征圖,所以它的唯一學習來源就是基礎特征圖。
MLFPN的多級多尺度特征計算過程可用公式來描述:
其中:XbaseX_{base}Xbase?表示基本特征圖,xilx_i^lxil?表示第lll層TUM的第iii大尺寸的特征圖(按大小升序)。LLL表示TUM的數量,TlT_lTl?表示第lll個TUM處理過程,FFF表示FFM的處理過程。
三大核心模塊的介紹:
FFM:
Feature Fusion Module特征融合模塊,用于融合多層特征圖。FFMv1和FFMv2的參與對象和操作都不同。FFMv1的輸入是backbone產生的多個不同大小的特征圖,不同大小的兩個特征圖經FFMv1融合流程如下圖所示:
解釋:上面的特征圖通道數為1024,長和寬為2020。下面的特征圖通道數為512,長和寬為4040。經過11的卷積層改變特征圖的通道數。上面的特征圖通道數改為512,下面的特征圖通道數改為256. 將較小的特征圖上采樣后變為與較大特征圖同樣長寬。然后進行concat操作后變成了通道數為512+256=768,長寬為4040的特征圖。
FFMv2的操作流程如下圖所示:
解釋:FFMv2的輸入是基礎特征圖(768通道,長寬4040)和上一層TUM中最大尺寸的特征圖(128通道,長寬4040)。基礎特征圖經11的卷積層改變通道數為128,然后和上一層TUM中最大尺寸的特征圖進行concat操作,形成通道數為256,長寬4040的特征圖。
TUM:
Thinned U-shape Module(TUM),U型模塊。結構如下圖所示:
綠色框是編碼器,是一系列33步長是22的卷積層。紅色框是解碼器,是一系列33步長為11的卷積層。由于編碼器的步長比解碼器的大,所以編碼器的輸出長寬比解碼器的輸出長寬大。所以先對編碼器內容上采樣后再按元素位置相加。按元素相加后是有信息損失的,所以這里可以改成concat操作。然后接1*1的卷積層改變通道數。TUM所在層次越深,則其輸出的特征圖信息也越深。
SFAM:
Scale-wise Feature Aggregation Module(SFAM),SFAM的結構如下圖所示:
SFAM分兩個階段,第一個階段是將相同大小的特征圖concat,第一階段的輸出可以表示成X=[X1,X2,…,Xi]X=[X_1,X_2,\dots ,X_i]X=[X1?,X2?,…,Xi?],表示不同大小的特征圖組,其中iii表示第i大的特征圖,Xi=Concat(xi1,xi2,…,xiL)X_i=Concat(x_i^1,x_i^2,\dots,x_i^L)Xi?=Concat(xi1?,xi2?,…,xiL?),表示所有L層中第i大的特征圖的concat。第二階段是對特征圖通道采用SE注意力機制。SE注意力模塊簡而言之就是為特征圖的通道附加權重。SE注意力模塊可由下圖來表示:
輸入的特征圖大小為W*H通道數為C,先經過壓縮操作(全局平均池化)變成了1*1*C的特征圖z∈RCz\in R^Cz∈RC。然后經過激勵操作得到各個通道的權重。激勵操作具體如下圖所示:
即通過一個(全連接層1,激活函數1,全連接層2,激活函數2)。其中SERadio是個調整通道數量以對應全連接層的神經元個數的比例。s=σ(W2δ(W1z))s=\sigma (W_2\delta(W_1z))s=σ(W2?δ(W1?z))其中σ\sigmaσ表示ReLU激活函數,δ\deltaδ表示sigmoid激活函數。
其中,r表示縮放比例,本文r=16。
然后利用權重sss對輸入XXX附加權重。
c表示第c個通道,最終附加權重的特征圖組
作者的檢測器采用的是SSD架構,即為特征圖的每個像素點產生密集錨框,每個像素點對應原圖中的感受野,如果感受野內有目標,則取置信度最大的錨框和置信度超0.7的錨框作為候選框。SSD架構的運行效率并不比YOLOv3的高,所以這里可以作為改進點,將檢測器改成YOLOv3的框架。
討論:
作者認為,M2Det能夠超過SOTA的原因是MLFPN。一方面融合backbone中多層特征圖作為基本特征,然后從基本特征中抽取出多層多級特征圖用于目標檢測比起FPN僅利用單層特征進行目標檢測更具有代表性。既考慮到了特征圖的感受野,也考慮到了不同層的語義信息。
作者還做了特征的可視化實驗,如下圖所示:
比起圖像金字塔僅考慮scale層面,和比起特征分層僅考慮level層面,FPN和MLFPN要更加合理,但是FPN主要還是考慮scale層面,MLFPN兼顧了兩者。
參考文獻:
1. Hu, Jie, Li Shen, and Gang Sun. “Squeeze-and-excitation networks.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.
總結
- 上一篇: matlab小波分析工具箱,matlab
- 下一篇: FGSM。。。