ThunderNet :像閃電同樣,曠視再出超輕量級檢測器,高達267fps | ICCV 2019

論文提出了實時的超輕量級two-stage detector ThunderNet,靠着精心設計的主幹網絡以及提升特徵表達能力的CEM和SAM模塊,使用不多的計算量就能超越目前的one-stage detectors,在ARM平臺也達到了實時性,GPU的速度更是達到267fps

來源:【曉飛的算法工程筆記】 公衆號

論文: ThunderNet: Towards Real-time Generic Object Detection算法

Introduction


  one-stage detector和two-stage detector分別有着實時優點和準確率優點。two-stage detector實時性較差,幾乎不能在移動設備上運行,儘管已經有了light-head版本,但對於小主幹網絡而言,這依然是過分設計的。而one-stage因爲缺乏ROI-wise的特徵提取,準確率一直較差 微信

  爲此,論文提出TunderNet,一個超輕量級的two-stage detector。在綜合考慮輸入分辨率,主幹網絡和detection head後,總體架構如圖2,主要有兩部分創新:網絡

  • Backbone part,提出輕量級主幹網絡SNet
  • Detection part,參考Light-Head R-CNN的設計,對RPN和R-CNN子網進一步壓縮。對於小主幹和小特徵圖產生的性能退化問題,提出兩個高效的block:Context Enhancement Module(CEM),組合多尺寸的特徵圖來整合本地和全局上下文信息;Spatial Attention Module(SAM),使用RPN中的上下文信息來優化RoI warping的特徵分佈

  ThunderNet準確率比目前的輕量級one-stage detector都要高,且僅用了不多的計算量,在ARM和x86設備上分別達到了24.1fps和47.3fps架構

ThunderNet


Backbone Part

  • Input Resolution

  two-stage detector的輸入一般都很大,爲了減小計算量,ThunderNet使用$320\times 320$的輸入分辨率。須要注意,輸入分辨率應該與主幹網絡的能力匹配函數

  • Backbone Networks

  因爲圖像分類和圖像檢測須要主幹網絡用不一樣的屬性,簡單地直接應用圖像分類的網絡做爲主幹不是最優的:性能

  1. Receptive field:感覺域是卷積網絡中很重要的特性,大的感覺域能更有效地利用更多的上下文信息以及處理遠距離的像素間關係,這對定位任務至關重要,特別是大目標
  2. Early-stage and late-stage features:主幹網絡的early-stage特徵圖較大,低層特徵能表達空間細節,而late-stage的特徵圖較小,高層特徵更具區分能力。通常定位任務對低層特徵更敏感,高層特徵對分類任務更重要。在實際中發現,在大網絡中定位任務比分類任務要難,代表低層特徵對定位更重要,而太小的網絡因爲弱表達能力限制了兩種任務的準確率,代表低層和高層特徵都是重要的

  目前的輕量級主幹網絡都不符合上面的因素:ShuffleNetV1/V2限制了感覺域的大小(121 pixels vs. 320 pixels,(這裏的計算方法暫時不瞭解,另外下面說V2爲121 pixels,跟這裏不一致,但願瞭解的讀者能留言告知)),ShuffleNetV2和MobileNetV2則缺乏了early-stage的特徵,而Xception則沒有足夠的高層特徵 測試

  基於以上的觀察,論文改造ShuffleNetV2,設計了輕量級主幹網絡SNet用於實時檢測,共3個版本: SNet49更快速推理;SNet535更準確;SNet146是耗時和準確率的折中,結構如表1所示,主要改進以下:優化

  • 將全部3x3的深度卷積替換成5x5的深度卷積,擴大感覺域(121 to 193 pixels)但不會帶來過多額外的計算
  • 對於SNet146和SNet535,移除Conv5,而後增長early-stage的層的channel數,這樣能不帶來過多額外的計算的狀況下提供更多低層特徵
  • 對於SNet49,將conv5壓縮到512維,而後增長early-stage的層的channel數,這樣能很好地平衡低層特徵和高層特徵

Detection Part

  • Compressing RPN and Detection Head

  Light-Head R-CNN雖然已經夠輕量級了,可是相對於小主幹網絡,仍然是過分設計的。爲了解決這一問題,論文將256-channel 3x3卷積壓縮爲5x5深度卷積和256-channel 1x1卷積的組合,加大卷積核大小來增長感覺域,而anchor box的尺寸和長寬比分別爲$\{32^2,64^2,128^2,256^2,512^2\}$和$\{1:2,3:4,1:1,4:3,2:1\}$
  對於detection head,Light-Head R-CNN在RoI warping前生成很精簡特徵圖(thin feature map)大小$\alpha\times p\times p$ ,$\alpha=10$,$p=7$爲池化大小。因爲主幹網絡更小,縮小$\alpha=5$來移除多餘的計算,用PSRoI align($(p\times p\times c)\times w\times h$ to$c\times p\times p$)進行RoI warping,將245-d的RoI特徵輸出爲$\alpha$-d,以後在R-CNN子網接一個1024-d全鏈接spa

  • Context Enhancement Module(CEM)

  Light-Head R-CNN使用Global Convolutional Network(GCN)來產生精簡特徵圖,GCN使用$k\times 1 + 1\times k$和$1\times k + k\times 1$卷積代替$k\times k$卷積,這樣能提高感覺域,但會帶來兩倍的計算量,不能採用。所以,論文借鑑FPN的思想,提出了Context Enhancement Module(CEM)來整合多尺度的局部上下文信息和全局的上下文信息 設計

  CEM融合$C_4$,$C_5$和$C_{glb}$,其中$C_{glb}$爲global average pooling的全局特徵,而後用1x1卷積將每組特徵圖壓縮至$\alpha\times p\times p=245$,再$C_5$和$C_{glb}$進行2x上採樣和直接複製(broadcast),最後進行融合。經過利用局部和全局信息,CEM可以有效地擴大感覺域和改善精簡特徵圖的表達能力。對比FPN,CEM精算量至關小

  • Spatial Attention Module

  因爲ThunderNet使用了更小的主幹網絡和輸入分辨率,這增長了檢測的難度。論文提出Spatial Attention Module(SAM),在空間維度對RoI warping前的特徵圖進行re-weight,核心思想是利用RPN的信息來優化特徵圖的特徵分佈

  RPN可以識別目標區域,所以,RPN的中間特徵能用來區分前景特徵。SAM接受RPN的中間特徵$\mathcal{F}^{RPN}$和來自CEM的特徵$\mathcal{F}^{CEM}$,輸出$\mathcal{F}^{SAM}$。總體流程如圖4,$\theta$爲維度轉化函數,將特徵圖轉化爲特定channel,通常用1x1卷積,最後的Sigmoid將數值限制在$[0,1]$

  SAM包含兩個函數,第一個是推理函數,用來增強前景特徵同時抑制背景特徵。另外一個是反向傳播函數,由於SAM增長了額外的R-CNN梯度到RPN,須要穩定RPN的訓練,RPN特徵$i$與所有SAM特徵$j$相關

Experiments


Implementation Details

  每張圖訓練和測試分別有2000和200 RoIs,輸入分辨率爲$320\times 320$,使用多尺寸訓練$\{240,320,480\}$,使用SSD的數據加強,在VOC和COCO分別訓練62.5K和375K,使用OHEM和Soft-NMS

Results on PASCAL VOC

  能夠看到,ThunderNet能達到SOTA,並且相對於同準確率的模型,計算量下降了不少

Results on MS COCO

  MS COCO數據集包含不少小物體,儘管ThunderNet輸入分辨率和主幹網絡都較小,可是準確率依然能在大幅減小參數量的狀況下達到目前的SOTA

Ablation Experiments

  • Input Resolution

  能夠看到,小主幹網絡與大輸入分辨率和大主幹網絡和小輸入分辨率都達不到最優的結果,二者須要match

  • Backbone Networks

  論文將SNet146和SNet49做爲baselines,對主幹網絡的設計進行實驗對比:

  1. 5×5 Depthwise Convolutions,對比$5\times 5$深度卷積和$3\times 3$卷積。從5(b)和5(c)能夠看出,$5\times 5$卷積提供的大感覺域對目標檢測很重要
  2. Early-stage and Late-stage Features,對比early-stage和late-stage特徵的平衡關係。從5(d)、5(f)和5(g)能夠看出,高層特徵對分類有不少做用,可是對目標檢測則不必定做用。所以,須要平衡高低層特徵

  1. Comparison with Lightweight Backbones,將SNet與其它輕量級主幹網絡進行對比,SNet檢測準確率是最好的
  • Detection Part

  論文將壓縮後的Light-Head R-CNN with SNet146做爲baseline,對ThunderNet的detection part的設計進行對比:

  1. Baseline,性能達到21.9AP
  2. RPN and R-CNN subnet,用5x5深度卷積代替RPN中的3x3卷積,減小28%參數量,保持了差很少的準確率(7b)。將R-CNN子網的全鏈接輸出減半至1024,減小13%參數量,準確率下降0.2AP(7c)
  3. Context Enhancement Module,將CEM應用到RPN和RoI warping,對比7c能提高1.7AP(7d)

  1. Spatial Attention Module,僅使用SAM能提高1.3AP和增長5%計算量(7c),圖6可視化了7c和7e RoI warping前的特徵圖,SAM明顯能增強前景特徵
  2. 最後同時加入CEM和SAM,對比baseline能提高1.7AP(7f)
  • Balance between Backbone and Detection Head

  論文對比了主幹網絡和head的關係,large-backbone-small-head的準確率要高點,可能因爲small-backbone-large-head的主幹網絡的特徵太弱了,致使head過分設計

  • Inference Speed

  論文對比了不一樣設備上的不一樣網絡的推理速度,Yhunder with SNet49在ARM和CPU上都能達到實時性,而全部的網絡在GPU上都大於200fps,速度至關勁爆

CONCLUSION


  論文提出了實時的輕量級two-stage detector ThunderNet,在backbone部分,使用一個精心設計的目標檢測專用的輕量級網絡SNet,在detection部分,採用極度精簡的detection head和RPN,提出Context Enhancement Module和Spatial Attention Module用於加強特徵表達能力,最後對輸入分辨率、backbone和detection head進行了縮減和平衡。ThunderNet使用不多量的計算量超越了目前的one-stage detectors,在ARM平臺也達到了實時性,GPU的速度更是達到267fps

參考內容



寫做不易,未經容許不得轉載~
更多內容請關注 微信公衆號【曉飛的算法工程筆記】

work-life balance.

相關文章
相關標籤/搜索