Conditional Convolutions for Instance Segmentation

用于实例分割的条件卷积

摘要

提出了有效的实例分割架构,叫做CondInst。目前表现优秀的实例分割方法如Mask-RCNN依赖于ROI操作来获得最终的实例mask。相反,我们从一个新的视角解决实例分割。取代使用实例化的RoIs作为固定权重网络的输入,我们使用一个动态的实例感知网络,基于实例。CondInst有两个优势:1)使用全卷积网络解决实例分割问题,无需RoI裁剪和特征对齐。2)由于动态生成的条件卷积大幅提升了容量,mask head可以变得十分紧凑(如3三个卷积层,每个只有8个通道),导致显著更快的推理。我们证明了一个更简单的实例分割方法可以得到准确率和推理速度都提升的表现。无需更长的训练方案,超过了一些近期的方法。

介绍

实例分割是一个基础且有挑战性的任务在计算机视觉中,需要预测每个像素的mask和一个类别标签,为图片中每一个感兴趣的实例。尽管最近有一些工作被提出,但实例分割的主要框架仍然式两阶段的方法MaskRCNN,将实例分割任务转换成两阶段的检测和分割任务。Mask Rcnn首先采用一个目标检测器Faster RCNN预测每一个实例的bounding box。然后,对于每一个实例,RoIs从网络特征中映射使用RoIAlign操作。为了预测每个实例的最终masks,一个FCN用于这些ROIs来执行前景或背景的分割。然而,基于RoI的方法有以下缺点:1)因为Roi通常是轴对齐的bounding boxes,对于任意形状的目标,他们可能包括过多的不相关图片内容包括背景和其他实例,这个问题可以通过rotated ROIs缓和,但是需要一个复杂的pipeline。2)为了区分前景或者背景,mask head需要一个相对更大的感受野来充分编码大量的上下文信息。作为结果:需要一个3X3的卷积层的堆叠在mask head,这增加了mask head的计算复杂度,到导致推理时间随实例数量的变化而显著变化。3)RoI通常是不同尺寸的。为了在现代的深度学习网络中进行有效的batch计算,一个改变尺寸的操作通常需要将被裁剪的区域映射到相同尺寸。例如,Mask RCNN重置了所有裁剪区域到14X14,限制了实例输出的分辨率,因为更大的实例需要更高分辨率来保留边界的细节。
在计算机视觉中,最接近实例分割的任务是语义分割,全卷积神经网络体现了巨大的成功。FCNS通常表现出极好的效果在像素级预测任务上从低层次的图像处理如去噪,超分辨率,到中层次的任务如光流估计和轮廓检测到高层次任务如最近的single-shot目标检测,单眼深度估计和计算。然而,几乎所有基于FCN的实例分割方法都落后于最好的基于RoI的方法。为什么万能的FCNS在实力分割上表现不令人满意?我们观察了在实例分割上应用FCNs的主要困难是相似的图像外观可能出现不同的预测但是FCNs很难实现。例如,如果两个人A和B有相似的外观在输入图片中,当预测实例A时,需要把B预测为背景,因为他们外观很相似,所以这是困难的。因此,一个RoI操作用于裁剪人物A,过滤掉人物B。本质上,实例分割需要两种信息:1)外观信息用于分类目标。2)位置信息用于区分相同类别的多个目标。几乎所有的方法都依赖于RoI裁剪,这精确编码了实例的位置信息。相反,CondInst使用实例敏感的卷积过滤器利用位置信息和附加到特征图的相对坐标。
因此,我们提出了一种新的实例注意FCNs用于实例mask预测。换句话说,不使用标准的使用固定卷积过滤集合的卷积网络作为mask head预测所有实例,网络参数根据被预测的实例自适应。受dynamic filtering network和CondConv启发,对于每一个实例,一个控制器子网络动态生成mask FCN网络参数(以实例的中心区域为条件),用于预测实例的mask。期望网络参数能够编码该实例的特征(例如相对位置、形状和外观),并且只对该实例的像素点进行触发,从而绕过了上述困难,这些条件性的mask head应用于整个特征图,无需RoI操作。初一看,当一些图片包含许多实例时,这个方法可能不会效果很好因为逐实例的mask head可能会产生大量的网络阐述。然而,我们展示了一个非常紧凑的FCN mask head使用动态生成的过滤器可以超过先前的基于ROI的Mask RCNN,相比于MaskRCNN,每个实例的计算复杂度大大降低。
我们总结我们的贡献如下:
1)我们尝试从一个新的角度来解决实例分割。为此,我们提出了CondInst实例分割框架,该框架比掩模R-CNN等现有方法的实例分割性能有所提高,同时速度更快。据我们所知,这是第一次一个新的实例分割框架在精度和速度上都优于最近的最新技术。
2)CondInst是完全卷积的,并避免了前面提到的在许多现有方法中使用的调整大小的操作,不依赖于RoI操作。不调整特征图的大小使得高分辨率的实例mask有更准确的边界。
3)不同与先前的方法,mask head中的过滤器在一次训练时对于所有实例都是固定的,我们的mask head是动态生成的依据实例。由于过滤器只被要求预测一个实例的mask,这减少了学习需求,很大程度减轻了过滤器的负担。作为结果,mask head十分轻量级很大程度减少了实例的推理时间。相比于bounding box检测器FCOS,CondInst只需要增加10%的计算时间,甚至处理每张有最大实例数量的图片。
4)无需依靠更长的训练方案,CondInst实现了最好的性能和更快的推理,我们期望CondInst成为一个强大的可选择的方案用于实例分割任务。
此外,CondInst可以被直接用于全景分割由于其灵活的设计。我们相信通过最小的改动,所提出的CondInst可以用于解决所有实例级的识别任务,先前使用基于RoI方法解决的。

相关工作

回顾一些与我们相关的工作
1.条件卷积Conditional Convolutions:不同于传统的卷积层,在一次训练中有固定的过滤器,条件卷积的过滤器依据输入条件,通过其他的网络(如控制器)动态生成。这一思想在之前的动态滤波网络[20]和CondConv[41]中已经被探讨过,主要是为了提高分类网络的容量。在此工作中,我们扩展了这一思想,以解决实例分割这一更具挑战性的任务。
2.实例分割:目前为止,实例分割的主导框架仍然是Mask RCNN。MaskRCNN首先采用了一个目标检测器来检测实例的边框。通过这些边框,ROI操作用于裁剪实例从特征图上。最后,一个紧凑的FCNhead用于获得期望的实例masks。许多工作基于MaskRCNN实现了TOP级的表现。此外,许多工作尝试使用FCNs进行实例分割。InstanceFCN是第一个使用全卷积神经网络的实例分割方法。InstanceFCN提出预测位置蜜柑的scoremaps通过vanilla FCNs。之后,这些score maps通过组合获得预期的实例masks。InstanceFCN很难处理重叠实例。其他方法尝试首先执行分割,然后通过组装相邻的像素形成实例。Nocotny提出了一种部分卷积操作使得FCNs适用于实例分割。据我们所知,到目前为止,在公共的COCO基准数据集上,这些方法都不能在精度和速度上超过Mask R-CNN。
最近的YOLACT和BlendMask可以看作是Mask RCNN的重构,解耦了ROI预测和特征图用于mask预测。Wang提出了一种简单的基于FCN的实例分割方法,展示出了有竞争力的表现。PolarMask开发了一种新的简单的mask表示用于实例分割,扩展了boundingbox检测器FCOS。EmbedMask学习实例和像素编码,组合像素成为一个实例基于他们的编码相似度。
近期,AdaptIs提出使用FiLM解决全景分割问题。这个想法与CondInst有一些相似之处,,实例被由FiLM生成的系数进行编码。AdaptIS需要一个大的mask head来实现更好的表现。相反,CondInst直接编码他们到maskhead的卷积过滤器,因此有更大的容量。作为结果,即使使用一个非常紧凑的mask head,我们相信CondInst可以实现AdaptIS不可能达到的准确率。

使用CondInst进行实例分割

2.1 总览
给定一个输入图像,实例分割的目标是预测像素级的mask和图片中每一个实例的类别。ground-truth定义为{(Mi,ci)},Mi是第I个实例的mask,ci是类别。C在MS-COCO上有80类。不同于语义分割,一张图片只需要预测一个mask,实例分割需要预测不定数量的mask,依赖于图片中的实例数量。这给使用传统FCN进行实例分割带来了挑战。在这个工作中我们的核心思想是对于具有K个实例的图片,K个不同的mask head动态生成,每一个mask head在其过滤器中包含其对应实例的属性。结果,当mask用于输入时,它只关注该实例的像素,因此产生了这个实例的mask预测,如图1。
回想一下MaskRCNN采取目标检测器预测输入实例的boundingbox。boungdingbox也是maskrcnn表示实例的方法。相似的,CondInst采取实例注意的过滤器来表示实例。换句话说,不将编码实例概念为boundingbox,CondInst直接将其隐式编码为mask head的参数,这是一种更灵活的方式。例如,他可以更容易的表示不规则的形状,这是bounding-box无法表示的。这是CondInst相比于其他基于ROI方法的一个优势。
相比于基于ROI的方法获得boundingboxes,实例注意的过滤器也可以通过一个目标检测器获得。在这个工作中,我们基于流行的目标检测器FCOS构建CondInst由于它的简易性核灵活性。FCOS无需anchor-boxes也可以节省CondInst的参数和计算量。如图3所示,根据FCOS,我们使用特征金字塔的特征图{P3,P4,P5,P6,P7},他们的降采样比率分别为8,16,32,64,128,如图3所示,在FPN的每一个特征层级一些功能层用于实例相关的预测。例如,目标实例的类别和为该实例动态生成的过滤器。从这个意义上来说,CondInst与MaskRCNN相同,都是先关注图像中的实例,然后预测实例的像素级mask。
除了检测器,如图3所示,还有一个mask分支,它提供特征图作为我们生成的mask head的输入预测期望的实例mask,特征图为
在这里插入图片描述
Mask分支与FPN的P3相连,因此他的输出分辨率是1/8的原图像分辨率。mask分支在最后一层之前有四个128通道的3X3卷积层。之后为了减少生成的参数数量,最后一层将通道数减小为8。令人惊讶的是,使用Cmask = 8已经可以获得更好的性能,而使用更大的Cmask在这里(例如,16)并不能提高性能,正如我们的实验所示。更激进的是,使用Cmask = 2只会在mask AP中降低约0.3%的性能。此外,如图3所示,Fmask链接了一个坐标map,他们是Fmask上所有位置到(x,y)的相对映射(即生成mask head的过滤器)。然后,这个组合被送入mask head用于预测实例mask。相对坐标提供了一个强线索对于预测实例mask,如我们的实验所示。此外,一个单独的sigmoid层用于最后的mask head输出,因此mask head预测是不知道类别的。实例的类别通过与控制器并行的分类head预测。
初始mask预测的分辨率与Fmask的分辨率相同,都是输入图像分辨率的1/8。为了产生高分辨率的实例mask,采用双线性上采样的方法上采样mask预测4倍,得到1/2分辨率的特征图。我们在实验中将表述这个上采样对于最终的实例分割是至关重要的。注意mask的分辨率远大于Mask RCNN的分辨率。
2.2网络输出和训练对象
与FCOS相似FPN特征图Pi上的每一个位置与一个实例相关,因此成为一个正样本,或者被认为是一个负样本。s作为放缩比例,x,y可以被映射回原图像,如果映射的位置位于原实例的中心,这个位置可以被认为对于该实例时可靠的。中心区域被定义为方框的(cx-rs,cy-rs,cx+rs,cy+rs),Cx,Cy表示实例的质心,s是Pi的降采样比率,r是一个恒定的标量,在FCOS中被设置为1.5。如图3所示在Pi的位置(x,y),CondInst有以下输出head。
Classification head:分类head预测与该位置相关的实例类别。ground truth是实例的类别ci或0。在FCOS中,网络预测一个C维向量Px,y用于分类,每一个元素对应于一个二分类器,C是类别的数量。
Controller head:Controller head与classification head有相同的架构,用于预测该位置实例的mask head的参数。这个mask head预测这个特定的实例的mask。这是我们工作的核心部分。为了预测参数,我们连接过滤器的所有参数(权重和偏置)作为一个N维向量theta(x,y)N是所有参数的数量。相应的,controller head有N个输出通道。mask head是一个非常紧凑的FCN架构,有3个1X1的卷积层,每个有8个通道,并且使用ReLU作为激活函数除了最后一个。这里没有使用Normalization层,例如batch normalization。最后一个层有1个通道,使用sigmoid预测前景的概率。mask head有169个参数一共(权重:(8+2)x8+8x8+8x1 ,偏执8+8+1)正如之前所提到的,生成的过滤器包含该位置实例的信息,因此,理想情况下,mask head使用该过滤器会只关注实例像素,即使使用整个feature maps作为输入。
Center-ness and Box heads。这部分与FCOS相同,我们推荐读者到FCOS中阅读细节。
概念上讲,CondInst可以消除box head因为CondInst不需要RoI,然而,我们发现,如果我们利用基于box的NMS,推理时间会更短。因此,我们在CondInst中仍然预测boxes。我们想强调的是,预测boxes只用于NMS,并不涉及ROI操作。如表5所示,box预测可以被消除如果NMS使用no box used。这与先前的基于ROI的方法有本质上的不同,基于ROI的方法box预测是强制性的。
2.3损失函数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Oxy是Fmask上所有位置到x,y的相对坐标(也就是生成过滤器的位置)
Mxy是像关于(x,y)的实例。Ldice是dice loss。用于克服前景和背景的不平衡。我们在这里不使用focal loss因为他需要特殊的初始化。注意
为了计算预测mask与ground truth mask 的loss,他们需要有相同的大小。正如之前所提到的,预测被上采样4倍因此最终预测的分辨率是ground-truth的一半。我们降采样M
xy2倍使尺寸相等。这个操作在公式二中被略去。
此外,如YOLACT所示,实例分割任务可以受益于联合语义分割任务。因此,我们也进行了联合语义分割任务进行实验。然而,除非有明确的规定,否则本文所有的实验都没有语义分割任务。如果使用了,语义分割loss将增加到Loverall中。
2.4推理
对于一个输入图片,我们通过网络向前传播获得输出包括分类置信度,center-ness scores,box prediction tx,y和生成参数theta x,y。我们首先根据FCOS中的步骤获得box预测。之后基于Box的NMS,使用0.6为阈值用于消除重复检测,接下来top 100的boxes用于计算masks。不同于FCOS,这些boxes也连接由controller生成的过滤器。让我们假设在NMS过后有K个boxes剩余,因此我们有K组生成的过滤器。K组过滤器用于产生K个实例独特的mask heads。实例独特的mask heads以FNCs的方式进行应用,对于F~x,y,预测实例的masks。因为mask head使一个很紧凑的网络,mask的计算开销非常小。例如,100次检测,mask head只需不到5毫秒,只增加了10%的计算开销相对于基础的FCOS。相反,Mask RCNN的head有4个3x3的卷积网络,256个通道,因此有超过2.3M个参数,需要更长的计算时间。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值