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的尺寸和長寬比分別為${322,642,1282,2562,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全連接

  • 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.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM