在计算机视觉领域,实例分割是一个很重要的研究主题,在地理信息系统、医学影像、自动驾驶、机器人等领域有着很重要的应用技术支持作用,具有十分重要的研究意义。
本文综述基于实例分割的最新进展和发展历程,首先介绍了实例分割的基本逻辑,总结了目前主要研究方法及其原理和网络架构,对已发表的主流实例分割方法进行分析,最后对实例分割任务目前面临的问题以及未来的发展趋势做出了分析,并针对所面临的问题提出了一些切实可行的解决思路。
一、实例分割的介绍
图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域内表现出一致性或相似性,而在不同区域间表现出明显的不同。如下图所示:
目标检测是识别图像中存在的内容和检测其位置,如下图,以识别和检测人(person)为例:
语义分割是对图像中的每个像素打上类别标签进行分类,如下图所示:
实例分割是目标检测和语义分割的结合,在图像中将目标检测出来(目标检测),然后对每个像素打上标签(语义分割),如下图所示:
实例分割目的是将输入图像中的目标检测出来,并且对目标的每个像素分配类别标签。实例分割能够对前景语义类别相同的不同实例进行区分,这是它与语义分割的最大区别。相比语义分割,实例分割发展较晚,因此实例分割模型主要基于深度学习技术,但它也是图像分割一个重要的组成部分。随着深度学习的发展,实例分割相继出现了 SDS(Simultaneous detection and segmentation)、DeepMask、MultiPath network 等方法,分割精度和效率逐渐得到提升。
问题和难点
a.小物体分割问题。深层的神经网络一般有更大的感受野,对姿态,形变,光照等更具有鲁棒性,但是分辨率( resolution)比较低,细节也丢失了;浅层的神经网络的感受野比较窄,细节比较丰富,分辨率比较大,但缺少了语义上的信息。因此,如果一个物体比较小时,它的细节在浅层的CNN层中会更少,同样的细节在深层网络中几乎会消失。解决这个问题的方法有dilated convolution和增大特征的分辨率。
b.处理几何变换( geometric transformation)的问题。对于几何变换,CNN本质上并不是空间不变的( spatially invariant)。
c.处理遮挡( occlusions)问题。遮挡会造成目标信息的丢失。目前提出了一些方法来解决这个问题,如 deformable ROI pooling,deformable convolution和 adversarial network。另外,也可能可以使用GAN来解决这个问题。
d.处理图像退化( image degradations)的问题。造成图像退化的原因有光照,低质量的摄像机和图像压缩等。不过目前大多数数据集(如ImageNet,COCO和PASCAL VOC等)都不存在图像退化的问题。
二、实例分割的基本流程
实例分割模型一般由三部分组成:图像输入、实例分割处理、分割结果输出。图像输入后,模型一般使用 VGGNet、ResNet 等骨干网络提取图像特征,然后通过实例分割模型进行处理。模型中可以先通过目标检测判定目标实例的位置和类别,然后在所选定区域位置进行分割,或者先执行语义分割任务,再区分不同的实例,最后输出实例分割结果。
1、实例分割的主要技术路线
实例分割的研究长期以来都有着两条线,分别是自下而上的基于语义分割的方法和自上而下的基于检测的方法,这两种方法都属于两阶段的方法。
(1)自上而下的实例分割方法
思路是:首先通过目标检测的方法找出实例所在的区域(bounding box),再在检测框内进行语义分割,每个分割结果都作为一个不同的实例输出。通常先检测后分割,如FCIS, Mask-RCNN, PANet, Mask Scoring R-CNN;
自上而下的密集实例分割的开山鼻祖是DeepMask,它通过滑动窗口的方法,在每个空间区域上都预测一个mask proposal。这个方法存在以下三个缺点:
-
mask与特征的联系(局部一致性)丢失了,如DeepMask中使用全连接网络去提取mask
-
特征的提取表示是冗余的, 如DeepMask对每个前景特征都会去提取一次mask
-
下采样(使用步长大于1的卷积)导致的位置信息丢失
(2)自下而上的实例分割方法
将每个实例看成一个类别;然后按照聚类的思路,最大类间距,最小类内距,对每个像素做embedding,最后做grouping分出不同的instance。Grouping的方法:一般bottom-up效果差于top-down;
思路是:首先进行像素级别的语义分割,再通过聚类、度量学习等手段区分不同的实例。这种方法虽然保持了更好的低层特征(细节信息和位置信息),但也存在以下缺点:
-
对密集分割的质量要求很高,会导致非最优的分割
-
泛化能力较差,无法应对类别多的复杂场景
-
后处理方法繁琐
单阶段实例分割(Single Shot Instance Segmentation),这方面工作其实也是受到了单阶段目标检测研究的影响,因此也有两种思路,一种是受one-stage, anchor-based 检测模型如YOLO,RetinaNet启发,代表作有YOLACT和SOLO;一种是受anchor-free检测模型如 FCOS 启发,代表作有PolarMask和AdaptIS。
2、实例分割方法的发展历程
主要脉络图如下:
3、实例分割方法主要网络架构方法分类
主要有四种:掩模建议分类法、