字节跳动实习 性能超越:字节跳动实习生提出实例分割新方法

原创: 关注前沿科技 量子位
甘明·石三出生在奥菲坦普尔
量子位 报道 | 公众号 QbitAI
框架比较简单,但是比Mask R-CNN取得了更好的性能。
这是字节跳动实习生提出的实例分割新方法,名为SOLO。
核心在于通过引入“案例类别”的概念,将案例分割问题转化为分类问题。
与Mask R-CNN相比,架构更加简单,是一种单阶段实例分割的方法:

但它在性能上要强大得多。
COCO数据集上的实验结果显示,SOLO的效果普遍超过此前的单阶段实例分割主流方法,在一些指标上还超过了增强版的Mask R-CNN。
这篇论文发表后,也引起了业界的关注,获得了许多好评。
有人评价称:“这是一篇非常好的工作,不仅实现了single stage,精度也非常高……这些position variance的特性,一定会在物体检测与实体分割带来新的突破。本文则是一个非常好的尝试。”
也有人评论说:“我接触到一种真正意义上效果很好的单阶段实例分割法。”
总之,新颖简洁的框架,称得上突破性的工作。他们具体如何实现的?我们下面一一解读。
突破口在哪里?
以往的实例分割方法主要分为两种,即自上而下和自下而上的范例。
然而,这两种方法要么严重依赖于精确的边界盒检测,要么依赖于每个像素的嵌入学习和分组处理。
那么,是否存在一种方法,可以绕过这些条条框框来做实例分割呢?

事实上,这项研究类似于语义分割。
语义分割就是一个逐像素的语义类别分类任务。
那么案例分割就可以类比为逐像素的案例分类。
也就是预测每个像素所在的物体的实例类别。
在图片中,物体的位置和形状是用来区分例子的属性。
因此,根据量化中心位置和对象大小,就可以简单粗暴的做实例分割。
该方法被命名为solo:按位置分割对象。
先来看下SOLO的惊人效果。
SOLO使用随机梯度下降进行训练,在8个GPU上使用同步SGD。每批共有16张图片。
实验所采用的是COCO数据集。

与两阶段模型和单阶段模型相比,SOLO方法取得了最好的实验结果。

上图是SOLO的效果。
每一列上方的图片是实例分割的结果,可以看出图片中对象分割出来的效果还是非常精确的。
每列下方是相应的屏蔽激活图。


上图显示了SOLO方法在实例轮廓检测中的效果。
每张图中,不同实例的轮廓用不同的颜色来标记。
这也证明了SOLO不仅可以用于实例分割,还可以用于实例轮廓检测。
什么原理?
SOLO方法的核心思想是:
将实例分割问题重新定义为类别感知预测问题和实例感知掩码生成问题。
具体来说,输入到系统中的图像被均匀地分成S×S的网格
如果对象的中心落入网格单元,那么这个网格单元就负责预测语义类别以及分割该对象实例。

上图是SOLO的框架流程图。
不难看出,重点在于语义类别和实例掩码这两个步骤。
在语义分类过程中,对于每个网格,SOLO都会预测C维输出,用于表示语义类的概率。
其中,C是类的数量。
这些概率取决于网格单位。如果输入图像分成S×S网格,输出空将是S×S×C。
值得注意的是,这里假设S×S网格的每个单元必须属于一个单独的实例,也就是只属于一个语义类别。
在推理过程中,C维输出指示每个对象实例的类概率。
在语义类别预测的同时,SOLO还并行地生成相应的实例掩码。
对于一幅输入图像I,如果划分为S×S网格,最多有S2预测掩膜。

推荐阅读