2020-07-18 01:26:06

本文解读的是ECCV 2020 Oral 论文《Conditional Convolutions for Instance Segmentation》,是沈春华团队在实例分割领域的又一力作。本论文解读首发于“AI算法修炼营”。

作者 | SFXiang

编辑 | 丛 末

论文地址:https://arxiv.org/pdf/2003.05664.pdf

代码地址(非官方):https://github.com/Epiphqny/CondInst

代码地址(含各类方法):https://github.com/aim-uofa/AdelaiDet/

本文提出了一个简单而有效的实例分割框架,称为CondInst(用于实例分割的条件卷积)。效果最好的实例分割方法(例如Mask R-CNN)依靠ROI操作(通常为ROI Pool或ROI Align)来获取最终的实例mask掩码。

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

1

简介

实例分割是计算机视觉中一项基本但具有挑战性的任务,目前,实例分割的主要框架仍然是两阶段方法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通过使用位置/实例敏感的卷积以及附加到特征图的相对坐标来利用位置信息。

主要贡献:

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

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

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

2

FCOS:检测中心点 + 到框的四个距离

论文地址:https://arxiv.org/abs/1904.01355

代码地址:https://github.com/tianzhi0549/FCOS

通过消除预定义的锚框,FCOS避免了与锚框相关的复杂计算,例如在训练期间计算重叠等,并且显著减少了训练内存。更重要的是,FCOS还避免了设定与锚框相关的所有超参数,这些参数通常对最终检测性能非常敏感。FCOS算法凭借唯一的后处理:非极大值抑制(NMS),实现了优于以前基于锚框的one-stage检测算法的效果。

FCOS的网络结构还是FPN的结构,就是在生成p3~p7的时候,没有在C5上采样得到P6,而是直接用P5采样得到P6。

网络的输出有三个branch,classification branch输出每个点的类别,regression branch输出每个点的四个值, (l,t,r,b)。其实这两个branch都和keypoint detection思想很像,网络最主要的贡献在于提出了centernet-ness branch这个方法。以下分别介绍:

1.逐像素回归预测

YOLOv1中也使用了无anchor策略,但基于YOLOv1在预测边界框的过程中,提出的cell概念,导致YOLOv1只预测了目标物体中心点附近的点的边界框。这很显然预测的框少,召回率自然也就低了。基于此,FCOS算法为了提升召回率,则对目标物体框中的所有点都进行边界框预测。当然这种逐像素的边界框预测肯定会导致最终预测得到的边界框质量不高,因此作者在后续还会提出弥补策略。FCOS目标检测算法在边界框预测中使用的策略和YOLOv1有所不同,F提出的预测策略如下:

如上两张图所示,FCOS算法在对目标物体框中所有的点进行目标框回归时,用到各个边的距离长度来计算损失。之所以使用这种策略,而不使用主流目标检测算法的策略,其主要原因是为了后续使用center-ness准备

由于FCOS算法是基于目标物体框中的点进行逐像素回归的,因此执行回归的目标都是正样本,所以作者使用了exp函数将回归目标进行拉伸,可以此操作是为了最终的特征空间更大,辨识度更强。最后,逐像素回归预测除了能够带来更多的框以外,更重要的是利用了尽可能多的前景样本来训练回归器,而传统的基于anchor的检测器,只考虑具有足够高的IOU的anchor box作为正样本。作者认为,这可能是FCOS优于基于anchor的同类检测器的原因之一。

2. 多尺度策略

对于基于anchor的检测算法,由于较大的降采样操作而导致的低召回率可以通过降低正anchor所需的IOU阈值做一定程度上的补偿,进行召回率的提升。然而对于FCOS算法,如果降采样的尺度过大,那么网络不可能回忆起一个在最终特征图上没有位置编码的对象的初始框的,基于此作者提出了基于FPN的多尺度策略。(虽然作者在文中说,即使没有FPN策略,逐像素检测网络在召回率上表现的也不逊色基于anchor的网络)

如上图所示,FCOS算法那使用了{P3, P4, P5, P6, P7}这五个尺度的特征映射。其中P3、P4、P5由主干CNNs网络的特征层 C3、C4、C5经过一个1*1的卷积得到的,而,P6、P7则是接着P5进行了步长为2的卷积操作得到的(相当于降采样,看注解)。最终对这五个尺度都做逐像素回归。

当然,为了能够更好的利用这种多尺度特征,在每一个尺度的特征层都限定了边界框回归的范围。具体步骤如下:

  1. 计算当前层级中的回归目标:l、t、r、b

  2. 判断max(l, t, r, b) > mi 或者 max(l, t, r, b) < mi -1是否满足。

  3. 若满足,则不对此边界框进行回归预测。

  4. mi是作为当前尺度特征层的最大回归距离。

而且这种约束带来的额外的效果在于,由于不同尺寸的物体被分配到不同的特征层进行回归,又由于大部分重叠发生在尺寸相差较大的物体之间,因此多尺度预测可以在很大程度上缓解目标框重叠情况下的预测性能

3. center-ness

由于FCOS算法使用了逐像素回归策略,在提升召回率的同时,会产生许多低质量的中心点偏移较多的预测边界框。基于此,作者提出了一个简单而有效的策略center-ness来抑制这些低质量检测到的边界框,且该策略不引入任何超参数。

如上图所示,center-ness策略在每一个层级预测中添加了一个分支,该分支与分类并行,相当于给网络添加了一个损失,而该损失保证了预测的边界框尽可能的靠近中心。

具体来说,FCOS添加单层分支,与分类分支并行,以预测Center-ness位置。

从图中可以看出,box的中心处响应值最高, 随后逐次降低,值的范围在0~1之间。centet-ness branch中每个featuremap位置上的值计算是根据回归计算得到的(l, t, r, b), 可以看出, 越是中间位置, centerness值就越高, 越偏离中心处,centerness值就会越低,centerness-branch的loss用BCE来计算。

center-ness(可以理解为一种具有度量作用的概念,在这里称之为中心度,中心度取值为0,1之间,使用交叉熵损失进行训练。并把损失加入前面提到的损失函数中。测试时,将预测的中心度与相应的分类分数相乘,计算最终得分(用于对检测到的边界框进行排序)。因此,中心度可以降低远离对象中心的边界框的权重。因此,这些低质量边界框很可能被最终的非最大抑制(NMS)过程滤除,从而显着提高了检测性能。

3

本文的方法:Instance Segmentation with CondInst

图3. CondInst的网络结构图。C3,C4和C5的是主干网络(例如ResNet-50)的特征图。P3到P7是FPN特征图。Fmask是mask分支的输出。分类head预测位置(x,y)处目标实例的类别概率p(x,y),与FCOS中相同。controller head(在虚线框中)应用于P3···P7。mask head是实例感知的,其转换每种情况下都会动态生成卷积核θx,y,并且将其应用于Fmask的次数与图像中实例的数量相同(请参见图1)。

可以看出,整体结构可分为两大部分:

一、FCOS:上半部分,整个pipeline和FCOS没啥差别,只是head层的输出略有不一样,那么对于FPN每一个layer的每一个pixel,主要输出:

1、Classification Head: 和原版FCOS含义一样

2、Center-ness Head:这个定义也是和原版FCOS一致的,用来抑制不太好的预测结果

3、Controller Head:具有与Classification Head相同的架构,是本篇论文的核心了,负责生成Mask FCN Head的参数,假设Mask FCN Head的总参数量是X,那么Controller Head的维度就是X,论文中当X取169的时候性能就比较不错了。

二、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,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的输入。

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

损失函数

4

实验与结果

1、消融实验

2、对比实验

3、可视化实验

更多细节可参考论文原文。

参考:

[1]http://libanghuai.com/2020/03/13/Conditional-Convolutions-for-Instance-Segmentation/

[2] 攻克目标检测难点秘籍六,释放Anchor的Anchor-Free算法

ECCV 2020 Oral | 沈春华团队新作,将条件卷积引入实例分割相关推荐

  1. ECCV 2020 oral | CondInst:沈春华团队新作,将条件卷积引入实例分割

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 这是沈春华团队在实例分割领域的又一力作,被收录于ECCV2020 oral. 论文地址:https:/ ...

  2. 单阶段实例分割又一佳作!出自沈春华团队

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要7分钟 Follow小博主,每天更新前沿干货 [导读]今天给大家介绍一篇ECCV 2020被评为Oral的论文,它也是目前单阶段实例分割方面的 ...

  3. ECCV 2020 Oral | 可逆图像缩放:完美恢复降采样后的高清图片

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文介绍的是ECCV 2020 Oral论文<Inverti ...

  4. ECCV 2020 Oral 中谷歌论文盘点,点云与3D方向工作居多

    ECCV2020 已经结束,官方放出了所有论文: ECCV 2020 论文合集下载,分类盘点进行中 谷歌作为人工智能研究领域工业界的领头羊,其工作是非常值得参考的. 本文汇总其入选 ECCV 2020 ...

  5. 少样本学习新突破!创新奇智入选ECCV 2020 Oral论文

    点击上方"机器学习与生成对抗网络",关注"星标" 获取有趣.好玩的前沿干货! 转自 创新奇智 近日,创新奇智有关少样本学习(Few-shot Learning) ...

  6. ECCV 2020 Oral | BorderDet : 用边界特征做检测

    本文转载自知乎,介绍了今天新公布的目标检测算法BorderDet,作者为旷视科技算法工程师马宇宸. https://zhuanlan.zhihu.com/p/163044323 加入旷厂科(ban)研 ...

  7. Invertible Image Rescaling 可逆图像缩放:完美恢复降采样后的高清图片(ECCV 2020 Oral )

    论文地址:https://arxiv.org/pdf/2005.05650.pdf 开源代码:https://github.com/pkuxmq/Invertible-Image-Rescaling( ...

  8. ECCV 2020 oral | 基于语义流的快速而准确的场景解析,在Cityscapes上达到80.4%mIoU,26 FPS...

    论文地址: https://arxiv.org/abs/2002.10120 代码地址: https://github.com/donnyyou/torchcv 该论文提出了一种有效且快速的场景解析方 ...

  9. [Condinst]Conditional Convolutions for Instance Segmentation(ECCV. 2020 oral)

    Conditional Convolutions for Instance Segmentation 如果对你帮助的话,希望给我个赞~ 文章目录 Conditional Convolutions fo ...

最新文章

  1. 微软网站打不开_强烈建议收藏,微软出了自家「协作白板」应用
  2. 关于iOS知识的提升
  3. android tween动画效果
  4. java结果集分页太慢_巨大结果集的分页错误
  5. 干货!隐马尔科夫模型
  6. 列表-使用del关键字从列表删除数据
  7. 晟数学院 oracle,Oracle 控制文件存储解析
  8. Acwing1069. 凸多边形的划分
  9. Python | 展示一个break语句示例
  10. linux增加端口失败,端口没被占用,怎么会bind失败呢?
  11. JVM内存溢出时快照转存HeapDump到文件
  12. 又到了充钱的时候!苹果AirPods 3最快下月发布
  13. c++ 打印条码_条码标签打印软件快捷键指南
  14. 将本地文件push到gitee上面
  15. 轻量级的java HTTP Server——NanoHttpd
  16. 桌面版linux装哪个版本好用,linux桌面版哪个版本好用?
  17. 粒子群matlab工具箱,Matlab粒子群算法工具箱使用方法及实例演示
  18. 【Proteus】动态数码管显示
  19. html语音合成text2audio讯飞,python讯飞语音合成
  20. odoo 12 : 附件(ir.attachment)——同一模型多个附件字段

热门文章

  1. 计算机在音乐教学的应用论文,信息技术音乐论文,关于现代信息技术在音乐教学中的应用相关参考文献资料-免费论文范文...
  2. 转-xmind7破解方法
  3. 侵犯公民个人信息罪怎么判刑
  4. 利用老毛桃WinPE制作启动U盘安装系统
  5. 装机i5-10400、华硕主板B460M-PLUS
  6. 十分钟手把手教你学会用HTML制作一个静态学术简历
  7. EasyUI-DataGrid下数据库数字替换成文本信息显示以及不同状态显示不同颜色
  8. MODBUS功能码15测试报文
  9. 眼动研究论文如何写?
  10. android手机如何到导出电话号码,手机通讯录怎么导入到新手机?三种方法,快速迁移!...