Paper Link: https://arxiv.org/abs/1911.06667
GitHub (PyTorch): https://github.com/youngwanLEE/CenterMask
Introduction
- 實例分割的經典代表,包括Mask-RCNN與YOLACT等;
- Mask-RCNN基於two-stage檢測框架,mask AP相對較高,但執行速度較慢;
- YOLACT基於one-stage檢測框架,執行速度快,但mask AP相對較低;
- 且Mask-RCNN與YOLACT都是anchor-based實現方式,具有以下劣勢:
- anchor相關的超參數設置相對敏感,較難適應樣本多樣性,例如尺度、形狀多變的場景;
- 爲了確保高召回率,密集的anchor覆蓋 (尤其是stride較小的檢測分支)容易導致class imbalance、過重的計算與訪存負擔;
- 爲了實現高效率、高mAP的實例分割模型,文章設計了CenterMask:
- 檢測框架爲one-stage anchor-free FCOS;
- backbone爲改進的VoVNet,能夠有效降低memory access cost;
- mask分支引入了spatial attention guidance;
- 達到了如下效果:
CenterMask
- Overall Framework:
- Adaptive ROI Assign Function:
- 將FCOS檢測的bbox分派到指定等級的FPN feature上:
- kmax=5,kmin=3;
- 提取FPN feature的ROIAlign area,送入SAG-Mask;
- Spatial Attention Guided Mask:
- 沿channel維度執行max-pooling與avg-pooling,並通過concat聚合特徵;
- 進一步通過3x3卷積、sigmoid函數提取spatial attention:
- spatial attention與ROI特徵相乘,實現聚焦學習;
- 相乘之後的特徵,通過up-sampling以及1x1 convolution,獲得包含語義分類的mask;
- VoVNet-V2 Backbone:
- Backbone的結構改進包括OSA module改進,以及SE module改進:
- OSA module:
- Memory access cost:
- DenseNet的輸入特徵維度,隨着concat的執行不斷線性遞增,導致訪存開銷增大;
- OSA module中每個layer的輸入/輸出特徵維度是相同的,可以節省MAC;
- 並且OSA module將所有layer的feature一次性聚合在output feature,有助於增強output feature的信息量;
- 類似於ResNet,文章進一步引入residual connection,有助於加深網絡;
- eSE module:
- 省去了SE module中負責維度壓縮的FC layer,可減少channel-wise信息損失,有助於獲得更好的channel-wise attention:
SE-module:
eSE-module:
channel-wise atttention:
- Training:
- Multi-task loss:
Experiments
- Mask-RCNN可以認爲是高精度instance segmentation的代表;
- YOLACT則是快速實例分割的代表;
- CenterMask的提出,與BlendMask具有相同的motivation,一是在允許提升模型複雜度的條件下,獲得SOTA表現;二是在分割精度與推理速度之間取得更好的折中,在同等精度表現下,期望獲得更快的速度;