bottom-up:不需要先做检测
SOLO:Segmentation Objects by Locations
根据数据集特点想出的方法,例如coco数据集中,任何一张图像中,两个实例(两个物体)的要么有不同的中心位置,要么有不同的大小。
SOLO框架
步骤:
- 图片通过backbone提取feature map,画一个S×S的网格(例如5×5个格子)。
- 输入FCN。分别通过分类分支和Mask分支。
- 分类分支:主要预测每个网格需要去预测哪个物体,用ground true来引导训练,每个物体都去预测语义类别。即预测C维(类别数)输出以指示每个网格的语义类概率。损失函数:Focal loss。
- Mask分支:mask 的大小为H×W,有S²个网格,所以有S²个通道。4组3×3卷积。损失函数: dice loss。类似于IoU loss。
问题:格子到底预测什么?根据ground truth来算,如果网格中有一个物体的ground truth的中心刚好落在格子中,则这个格子负责预测该物体的类别和mask。
- 组合分类分支和Mask分支,得到实例分割结果
具体细节参考论文
论文链接:https://arxiv.org/abs/1912.04488
代码链接:https://github.com/WXinlong/SOLO