QDD检测框架系列(1)——Hybrid Task Cascade for Instance Segmentation(mmdetecton)

四月份很快就过去了,其实做了不少事,也看了不少论文,但是因为种种原因,一直没有做记录,这是个特别糟糕的事情,做检讨。重开一个专栏,QDD检测系列,这个系列里面打算着重介绍一些关于检测,实例分割,语义分割常用的框架。

今天给大家介绍一篇最近使用的实例分割框架,称为mmdetection,翻译过来又可以称为用于实例分割的级联任务框架。

实例分割(Instance Segmentation)是一个和物体检测(detection)非常相关,但是难度更大的问题。实例分割是物体检测的升级版本,他要求像素级对目标进行检测,这无疑大大增加了难度。

关于著名的detection框架RCNN系列大家肯定会有所耳闻,那么之后又有人提出来,我能不能通过对RCNN的输出结果进行多层级联,这样就等于对于输出bbox的框架进行了多级的回归,实验证明,这种串联的RCNN效果是出现了明显的提高的。

详情可以参考CVPR2018的这篇文章Cascade R-CNN: Delving into High Quality Object Detection

那么本文的作者就思考了,那我可不可以在mask rcnn的基础上,通过级联来实现提高性能的效果呢?当然可以,那怎么做呢?别急,让我慢慢给你来讲:

一  Cascade Mask R-CNN

这一步做的工作可以说是特别的简单,作者这样想,哎,你RCNN可以通过串联获得比较好的结果,那我就直接copy,(像海澜之家)一样,我就讲了,copy是一种文化,也不过是上了一回热搜,多好。

到底有多简单呢?各位看下面这张图

在这种实现里,每一个 stage 和 Mask R-CNN 相似,都有一个 mask 分支 和 box 分支。当前 stage 会接受 RPN 或者 上一个 stage 回归过的框作为输入,然后预测新的框和 mask。

试验结果表示,这种框架已经达到了超越mask rcnn的效果,但是还存在一个比较明显的弊端,就是在box AP 上提高了 3.5 个点,但是在 mask AP 上只提高了 1.2 个点。这是为什么呢,我们发现直接参与级联的只有box的结果,而且在这个结果的过程中,box和mask的结果并没有信息交互这样的过程。

二 Interleaved Execution

那么,就让他们交互呗,怎么交互又是一个比较直接的问题,我们也许会有这种各样的想法,文章中作者给出的是下面这个结构:

如上图所示,所谓的交互体现在了,每个stage的mask分支连接在这个分支的box分支通过一个pool之后,这样看来mask的产生就直接关联于box的结果。这样既增加了每个 stage 内不同分支之间的交互,也消除了训练和测试流程的 gap。作者发现这种设计对 Mask R-CNN 和 Cascade Mask R-CNN 的 mask 分支都有一定提升。

那么,能不能更好呢?

三  Mask Information Flow

我们回顾上面两种结构,我们发现不同stage之间的信息流主要只有一种,就是通过bbox这条支路传递的信息。让下一个 stage 的特征和学习目标和当前 stage 有关。在 cascade 的结构中这种信息流是很重要的,让不同 stage 之间在逐渐调整而不是类似于一种 ensemble。

然而不同 stage 之间的 mask 分支是没有任何直接的信息交互的,它只和当前 Bi  通过 RoI Align 有关联而与以一个stage的mask没有任何联系。作者就想,那么我们为什么不让他们联系起来呢?

于是有了下面这种结构:

那有人也许会有疑问了,mask层的信息该如何的融合呢?看下面这个结构:

我们将 Mi 的特征经过一个 1x1 的卷积做 feature embedding,然后输入到  Mi+1,这样 Mi+1  既能得到 backbone 的特征,也能得到上一个 stage 的特征。

四 Semantic Feature Fusion

如果,我再加入直接的语义信息呢?

这一步是作者尝试在第三步的基础上,再次引入语义分割的信息,目的是为了获得更好的 spatial context(位置信息)。因为语义分割需要对全图进行精细的像素级的分类,所以它的特征是具有很强的空间位置信息,同时对前景和背景有很强的辨别能力。通过将这个分支的语义信息再融合到 box 和 mask 分支中,这两个分支的性能可以得到较大提升。结构如下所示:

在具体设计上,为了最大限度和实例分割模型复用 backbone,减少额外参数,作者在 FPN 的基础上增加了一个简单的全卷积网络用来做语义分割。首先将 FPN 的 5 个 level 的特征图 resize 到相同大小并相加,然后经过一系列卷积,再分别预测出语义分割结果和语义分割特征。

结果:

通过上面的几步,在使用 ResNet-50 的 backbone 下,相对 Cascade Mask R-CNN 可以有 1.5 个点的 mask AP 提升,相对 Mask R-CNN 可以有 2.9 个点的提升。具体的实验对比结果如下所示:

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

实验代码:https://github.com/open-mmlab/mmdetection

好了,今天的这篇博客就到此结束了,谢谢大家

学术交流可以关注我的公众号,后台留言,粉丝不多,看到必回。卑微小钱在线祈求

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

与贰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值