SOLOv1
论文链接:https://arxiv.org/abs/1912.04488
项目地址:https://github.com/WXinlong/SOLO
SOLO贡献
- 端到端训练,且无后处理
- 只需要mask的标注信息,无需 bbox 标注信息
- 在 MASKCOCO 上实现了和 Mask R-CNN 基本持平的效果
- SOLO 只需要解决两个像素级的分类问题,类似于语义分割
- 本质上,SOLO 通过离散量化,将坐标回归转化为分类问题,可以避免启发式的坐标规范化和 log 变换,通常用于像 YOLO 这样的检测器中。
背景回顾
目前实例分割的两大类策略:
- 基于检测的实例分割:其实就是MaskRCNN系列,检测实例对象的边界框,然后在框内做语义分割,前后景区分。也就得到了实例分割结果。
- 基于像素编码的实例分割:就是对输入图像进行像素的编码,然后再通过聚类手段得到分割结果。
他们要么依赖于检测结果,要么需要后处理。繁琐,速度慢。
SOLO的思想
作者最初的思想是:我们知道语义分割将分割任务当成了分类任务,即对每个像素分类。那么实例分割可不可以也这么做呢?语义分割每个像素点都需要对应一个类别,我们可以利用通道数来表示像素每个类别的概率。但实例分割却不是每个像素都需要分配类别,那我们应该怎么、用什么来表示这个用分类的方式实现实例分割的想法呢?这也就是论文提出的“实例类别“的概念。
那么核心问题就是:
1、什么是物体的实例类别?
2、有了实例类别后,怎么来划分不同实例?
对于第一个问题作者是如何思考的:
物体的语义类别是由人为的定义来区分的,是由人来标注的。那图片里物体的什么属性可以用来区分实例呢?—— 位置和形状。我们可以自然而然的发现,不同实例对象的坐标位置天生就不同(不然他们就重叠了啊,人也难以区分出来啊),并且他们的形状也往往是不同的!作者首先对MSCOCO数据集的验证数据集进行了分析,发现36780个对象中98.3