当前位置 博文首页 > 微信号:Custom-Software:Conditional Convolutions for Instan

    微信号:Custom-Software:Conditional Convolutions for Instan

    作者:[db:作者] 时间:2021-07-10 15:58

    Conditional Convolutions for Instance Segmentation

    第1次记录

    介绍一篇ECCV 2020被评为Oral的论文,它也是目前单阶段实例分割方面的又一佳作,它就是由沈春华大佬团队出品的--CondInst,通过引入条件卷积到实例分割中去,实现了精度上比Mask R-CNN高一丢丢(约0.5个点),加上seg loss后可以涨一个点,从而超过Mask R-CNN;速度和Mask R-CNN差不多,稍好一点

    本文提出了一个简单而有效的实例分割框架,称为CondInst(用于实例分割的条件卷积)。效果最好的实例分割方法(例如Mask R-CNN)依靠ROI操作(通常为ROI Pool或ROI Align)来获取最终的实例mask掩码。相反,本文从新的角度解决实例分割问题,没有使用按实例的ROI作为固定权重网络的输入,而是采用了以实例为条件的动态实例感知网络。?CondInst具有两个优点:

    1)通过全卷积网络解决了实例分割,无需进行ROI裁剪和特征对齐;

    2)由于动态生成的条件卷积的容量大大提高,因此mask head可以非常紧凑(例如3个卷积层,每个仅具有8个通道),从而可以显着加快推理速度。

    在COCO数据集上,本文的方法优于一些最近的方法,包括经过调整的Mask R-CNN,同时无需更长的训练时间。CondInst中的的dynamic conv是亮点。

    本文的主要创新点:

    1、尝试从新的角度解决实例分割。为此,提出了CondInst实例分割框架,该模板实现了比Mask R-CNN等现有方法更高的实例分割性能,同时速度更快。

    2、CondInst是完全由卷积组成的,并且不依赖于ROI操作。无需调整特征图的大小即可获得具有更高精确度的高分辨率实例mask。

    3与以前的方法不同,CondInst的mask head中的卷积会动态生成并以实例为条件。由于仅要求卷积预测一个实例的掩码,因此极大地减轻了学习要求,从而减轻了卷积的负载。与边界框检测器FCOS相比,CondInst仅需要多花费约10%的计算时间,甚至可以处理每个图像的最大实例数(即100个实例)。

    网络结构设计

    最近做Instance Segmentation的论文,和PolarMask一样都是follow FCOS大的框架,不同于Mask RCNN出框crop然后做Seg的方式,该论文所提的方法更加类似FCN直接出,整个框架的设计感觉还是比较精巧的。CondInst证明了用append rel. coord. + 3层1x1 dynamic conv?(如下图)可以做。

    论文结构介绍如下:

    1、FCOS: 也就是上图的上半部分,整个pipeline和FCOS没啥差别,只是head层的输出略有不一样,那么对于FPN每一个layer的每一个pixel,主要出三个东西:Classification Head: 和原版FCOS含义一样;Center-ness Head:这个定义也是和原版FCOS一致的,用来抑制不太好的预测结果;Controller Head:这个就是本篇论文的核心了,他负责出Mask FCN Head的参数,假设Mask FCN Head的总参数量是X,那么Controller Head的维度就是X,论文中当X取169的时候性能就比较不错了。

    2、Mask FCN Head: Mask FCN Head是论文的核心点,上图下半部分,它的结构就是一般的FCN,但是它的特点在于FCN的参数是动态的,不同的instance有不同的参数,这就会造成多个Mask FCN Head的感觉,同时功能上也类似Mask RCNN出框的作用-区分Instance。Mask FCN Head接在P3 Layer之后, 经过几层Conv之后得到一个H x W x C的feature map, 论文中C = 8,作者claim C的取值对分割的性能影响不大. 甚至C = 2的时候性能也只是下降0.3%!因为Mask FCN Head负责出instance,而其参数又是由P3 - P7的head层所得,所以为了构建两者的联系,在Mask FCN Head输入层Fmask Concat了Fmask到P3 - P7的相对位移,假设Fmask的维度为H x W x C,Pi的维度为Hi x Wi x Ci, 那么把Fmask的每一个pixel映射到Pi,映射前后坐标的offset就会和原始的Fmask Concat到一起作为Mask FCN Head的输入。

    3、Mask FCN Head具有3个1×1卷积,每个卷积具有8个通道,并使用ReLU作为激活函数(最后一个除外),不使用诸如批处理归一化之类的归一化层,最后一层具有1个输出通道,并使用sigmoid来预测成为前景的概率

    实验结果

    从速度和精度综合来看,CondInst(35.9AP, 49ms)和Mask R-CNN(35.5AP, 49ms)基本持平(CondInst稍好一丢丢)。在加上segmentation loss之后,CondInst还可以涨一个点,超过了Mask R-CNN。

    ?

    ?

    个人认为CondInst和BlendMask一样,都属于YOLACT这个流派的,都是proto mask(或者叫base)+mask coeff的做法。而CondInst最大的亮点在于:dynamic conv的设计使得YOLACT之流摆脱了box的束缚!CondInst旗帜鲜明表明了,我可以不用box去crop最后的,而且在不借助box的情况下,光凭mask nms也能得到box?nms一样的精度,这说明它的dynamic conv filter确实学到家了。

    可视化效果

    第2次记录

    从速度和精度综合来看,CondInst(35.9AP, 49ms)和Mask R-CNN(35.5AP, 49ms)基本持平(CondInst稍好一丢丢)。 在加上segmentation loss之后,CondInst还可以涨一个点,超过了Mask R-CNN。

    CondInst和BlendMask一样,都属于YOLACT这个流派的,都是proto mask(或者叫base)+mask coeff的做法。而CondInst最大的亮点在于:dynamic conv的设计使得YOLACT之流摆脱了box的束缚!

    CondInst的dynamic conv的做法其实说不上多么新颖,因为很早就有论文这么做。而CondInst之所以敢把dynamic conv用到instance seg上,也要感谢YOLACT和BlendMask接连证明了用proto mask + mask coeff/attention map来represent instance mask的做法行得通。细想,CondInst只是将这种attention变成了conv filter的形式。而将attention map变成dynamic conv filter的好处在于:conv filter是适用于整个proto mask的!

    第3次记录

    实例分割是计算机视觉中一项基本但具有挑战性的任务,目前,实例分割的主要框架仍然是两阶段方法Mask R-CNN ,它将实例分割投射到两阶段的检测和分割任务中。使用目标检测器Faster R-CNN预测每个实例的边界框。然后针对每个实例,使用ROI Align操作从网络的特征图中裁剪出感兴趣区域(ROI)。为了预测每个实例的最终mask,将紧凑的全卷积网络(FCN)(即mask head)应用于这些ROI,以进行前景/背景分割。

    基于ROI的方法可能具有以下缺点:

    1. 由于ROI通常是轴对齐的边界框,对于形状不规则的对象,它们可能包含过多的不相关图像内容,例如在边界框内包含了背景和其他实例。通过使用旋转的ROI可以缓解此问题,但是其代价更高。
    2. 为了区分前景实例和背景实例,mask head需要相对较大的感受野来对足够大的上下文信息进行编码。因此,在mask head中需要大量的3×3卷积(例如在mask R-CNN中具有4个256通道的3×3卷积)。这大大增加了Mask head的计算复杂度,从而导致推理时间随实例数的变化而显着变化。

    ROIs通常大小不同。为了在深度学习框架中使用有效的批量计算,通常需要进行大小调整操作以将区域调整为相同大小的patch。例如,Mask R-CNN将所有裁剪区域的大小调整为14×14(使用反卷积将其上采样为28×28),这限制了实例分割的输出分辨率,因为大型实例需要更高的分辨率才能在边界保留细节。

    :CondInst利用实例感知的mask head预测每个实例的mask,即要预测的实例数。mask head中的卷积随不同实例而变化,这些实例是动态生成的并以目标实例为条件。在mask head中,除了最后一层卷积操作其余都使用ReLU作为激活函数,此处不使用诸如批归一化BN之类的归一化层。最后一次卷积层使用Sigmoid来预测mask前景的可能性。

    在计算机视觉中,最接近实例分割的任务是语义分割,在语义分割领域全卷积网络(FCN)表现出了巨大的成功。FCN在许多其他逐像素预测任务上也表现出色的性能。但是,几乎所有基于FCN的实例分割方法都落后于基于最新ROI的方法。为什么FCN在实例分割上的表现不令人满意?本文观察到将FCN应用于实例分割的主要困难在于,相似的图像外观可能需要不同的预测,但是FCN在实现这一目标方面遇到了困难。例如,如果输入图像中两个具有相似外观的人A和B,在预测A的实例mask时,则FCN需要将B预测为背景,这可能很难因为它们看起来相似。本质上,实例分割需要两种类型的信息:1)外观信息以对对象进行分类;2)位置信息以区分属于同一类别的多个对象。几乎所有方法都依赖于ROI cropping,这可以对实例的位置信息进行明确编码。相反,CondInst通过使用位置/实例敏感的卷积以及附加到特征图的相对坐标来利用位置信息。

    主要贡献:

    1、尝试从新的角度解决实例分割。为此,提出了CondInst实例分割框架,该模板实现了比Mask R-CNN等现有方法更高的实例分割性能,同时速度更快。

    2、CondInst是完全由卷积组成的,并且不依赖于ROI操作无需调整特征图的大小即可获得具有更高精确度的高分辨率实例mask。

    3、与以前的方法不同,CondInst的mask head中的卷积会动态生成并以实例为条件。由于仅要求卷积预测一个实例的掩码,因此极大地减轻了学习要求,从而减轻了卷积的负载。与边界框检测器FCOS相比,CondInst仅需要多花费约10%的计算时间,甚至可以处理每个图像的最大实例数(即100个实例)。

    第4次记录

    本文提出了一个简单而有效的实例分割框架,称为CondInst(用于实例分割的条件卷积)。效果最好的实例分割方法(例如Mask R-CNN)依靠ROI操作(通常为ROI Pool或ROI Align)来获取最终的实例mask掩码。相反,本文从新的角度解决实例分割问题,没有使用按实例的ROI作为固定权重网络的输入,而是采用了以实例为条件的动态实例感知网络。?CondInst具有两个优点:1)通过全卷积网络解决了实例分割,无需进行ROI裁剪和特征对齐。2)由于动态生成的条件卷积的容量大大提高,因此mask head可以非常紧凑(例如3个卷积层,每个仅具有8个通道),从而可以显着加快推理速度。在COCO数据集上,本文的方法优于一些最近的方法,包括经过调整的Mask R-CNN,同时无需更长的训练时间。

    简介

    实例分割是计算机视觉中一项基本但具有挑战性的任务,目前,实例分割的主要框架仍然是两阶段方法Mask R-CNN,它将实例分割投射到两阶段的检测和分割任务中。使用目标检测器Faster R-CNN预测每个实例的边界框。然后针对每个实例,使用ROI Align操作从网络的特征图中裁剪出感兴趣区域(ROI)。为了预测每个实例的最终mask,将紧凑的全卷积网络(FCN)(即mask head)应用于这些ROI,以进行前景/背景分割。

    但是,这种基于ROI的方法可能具有以下缺点:1)由于ROI通常是轴对齐的边界框,对于形状不规则的对象,它们可能包含过多的不相关图像内容,例如在边界框内包含了背景和其他实例。通过使用旋转的ROI可以缓解此问题,但是其代价更高。2)为了区分前景实例和背景实例,mask head需要相对较大的感受野来对足够大的上下文信息进行编码。因此,在mask head中需要大量的3×3卷积(例如在mask R-CNN中具有4个256通道的3×3卷积)。这大大增加了Mask head的计算复杂度,从而导致推理时间随实例数的变化而显着变化。3)ROIs通常大小不同。为了在深度学习框架中使用有效的批量计算,通常需要进行大小调整操作以将区域调整为相同大小的patch。例如,Mask R-CNN将所有裁剪区域的大小调整为14×14(使用反卷积将其上采样为28×28),这限制了实例分割的输出分辨率,因为大型实例需要更高的分辨率才能在边界保留细节。

    图1 CondInst利用实例感知的mask head预测每个实例的mask,即要预测的实例数。mask head中的卷积随不同实例而变化,这些实例是动态生成的并以目标实例为条件。在mask head中,除了最后一层卷积操作其余都使用ReLU作为激活函数,此处不使用诸如批归一化BN之类的归一化层。最后一次卷积层使用Sigmoid来预测mask前景的可能性

    在计算机视觉中,最接近实例分割的任务是语义分割,在语义分割领域全卷积网络(FCN)表现出了巨大的成功。FCN在许多其他逐像素预测任务上也表现出色的性能。但是,几乎所有基于FCN的实例分割方法都落后于基于最新ROI的方法。为什么FCN在实例分割上的表现不令人满意?本文观察到将FCN应用于实例分割的主要困难在于,相似的图像外观可能需要不同的预测,但是FCN在实现这一目标方面遇到了困难。例如,如果输入图像中两个具有相似外观的人A和B,在预测A的实例mask时,则FCN需要将B预测为背景,这可能很难因为它们看起来相似。本质上,实例分割需要两种类型的信息:1)外观信息以对对象进行分类;2)位置信息以区分属于同一类别的多个对象。几乎所有方法都依赖于ROI cropping,这可以对实例的位置信息进行明确编码。相反,CondInst通过使用位置/实例敏感的卷积以及附加到特征图的相对坐标来利用位置信息。

    cs