摘要
实例分割的任务是为图像中每个感兴趣的实例预估一个带有类别标签的像素掩码。目前实例分割的主流框架是两阶段方法Mask R-CNN[3],它将实例分割转换为两阶段检测和分割任务。Mask R-CNN首先使用一个更快的R-CNN目标检测器来预测每个实例的bounding-box。文章提出了一个简单而有效的实例分割框架,称为CondInst(条件卷积实例分割)。CondInst没有使用基于实例的ROI作为固定权重的网络的输入,而是使用基于实例的动态实例感知网络。
论文地址:Conditional Convolutions for Instance
Segmentation
CondInst有两个优点:
(1)实例分割采用全卷积网络,消除了ROI裁剪和特征比对的需要。
(2)由于动态生成条件卷积的容量大大提高,掩模前端可以非常紧凑(例如,3个卷积层,每个只有8个通道),从而大大加快推理速度。CondInst是一种更简单的实例分割方法,它可以在准确性和推理速度上都得到提高。在COCO数据集上,CondInst表现优于一些最近的方法,包括调优的Mask R-CNN,而不需要更长的训练时间。
方法
实例分割的目的是预测可变数量的mask及其类别
M
i
,
c
i
M_i,c_i
Mi,ci 。如果说Mask R-CNN用bounding box来表示实例,那么CondInst则是用滤波器的参数来表示实例。它相比于规则的box能处理任意形状的实例。与Mask R-CNN类似表示实例的滤波器也能想学box一样从检测其中学出。CondInst和Mask R-CNN一样都是instance-first,先出instance后出mask。
CondInst利用感知实例的掩模头来预测每个实例的掩模。K是要预测的实例数。掩码头中的过滤器因实例的不同而不同,这些实例是动态生成并根据目标实例设置的。对于掩模头的非最后的conv层,使用ReLU作为激活函数。最后的conv层使用sigmoid来预测前景掩模的概率。
核心思想
对于一个有K个实例的图像,将动态生成K个不同的掩模头,每个掩模头将在其过滤器中包含其目标实例的特征。因此,当掩码应用于输入时,它将只对实例的像素触发,从而生成实例的掩码预值。过程如图1所示。
图1
利用FPNs的特征图 {p3, p4, p5, p6, p7},其下采样比分别为8,16,32,64和128。在FPN的每个特征层上,使用一些功能层(在缓冲box中)进行实例相关的预测。例如,目标实例的类和实例的动态生成的过滤器。CondInst可以看作是Mask R-CNN,两者都首先关注图像中的实例,然后预测实例的像素级掩码(即像素级掩码)。
除了检测器,如图2所示,还有一个掩模分支,它提供了生成的掩模头将其作为输入来预测所需实例掩模的特征图。掩码分支连接到FPN的p3,因此它的输出分辨率是输入图像分辨率的1/8。掩码分支在最后一层之前有4个3×3卷积的128通道。之后,为了减少生成的参数的数量,掩码分支的最后一层将通道数量从128个减少到8个。
图2
损失函数的设置
整体损失函数表示如图3:
图3
实验
在MS-COCO test-dev数据集上的对比结果如图4:
图4
与其他方法的比较如图5:
图5