CenterMask : Real-Time Anchor-Free Instance Segmentation
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表现;二是在分割精度与推理速度之间取得更好的折中,在同等精度表现下,期望获得更快的速度;