实例分割的进阶三级跳:从 Mask R-CNN 到 Hybrid Task Cascade
本文转载自知乎,介绍的Hybrid Task Cascade为ECCV 2020 大规模实例分割挑战赛LVIS Challenge冠军方案(成员来自同济、清华、商汤科技)的基线模型。已获作者授权转载。
https://zhuanlan.zhihu.com/p/57629509
CVPR 2019 运气还算比较好,这次一共有 3 篇 paper 被接收,分别在物体检测的 module、framework 和 training process 上有所探索。本文打算介绍一下 Hybrid Task Cascade,是 framework 层面的一篇工作,基于之前 COCO 比赛团队合作的成果。
背景
实例分割(Instance Segmentation)是一个和物体检测非常相关但是更难的问题,在物体检测的基础上,还要求分割出物体的像素,如下图所示。
实例分割这个问题近几年的发展在很大程度上是由 COCO 数据集和比赛推动的。从 MNC,FCIS 到 PANet,都是在 COCO instance segmentation track 上拿第一名的方法。Mask R-CNN 是个例外,因为 paper 公开得比较早,所以是 2017 年前几名队伍的基本方法。同理可知,Hybrid Task Cascade(HTC)在 COCO 2018 的比赛中也取得了第一名。
概述
级联是一种比较经典的结构,在很多任务中都有用到,比如物体检测中的 CC-Net,Cascade R-CNN,语义分割中的 Deep Layer Cascade 等等。然而将这种结构或者思想引入到实例分割中并不是一件直接而容易的事情,如果直接将 Mask R-CNN 和 Cascade R-CNN 结合起来,获得的提升是有限的,因此我们需要更多地探索检测和分割任务的关联。
在本篇论文中,我们提出了一种新的实例分割框架,设计了多任务多阶段的混合级联结构,并且融合了一个语义分割的分支来增强 spatial context。这种框架取得了明显优于 Mask R-CNN 和 Cascade Mask R-CNN 的结果。
方法
整个框架的演进可以用四张图来表示,其中 M 表示 mask 分支,B 表示 box 分支,数字表示 stage,M1 即为第一个 stage 的 mask 分支。
进阶准备:Cascade Mask R-CNN
由于 Cascade R-CNN 在物体检测上的结果非常好,我们首先尝试将 Cascade R-CNN 和 Mask R-CNN 直接进行杂交,得到子代 Cascade Mask R-CNN,如上图(a)所示。在这种实现里,每一个 stage 和 Mask R-CNN 相似,都有一个 mask 分支 和 box 分支。当前 stage 会接受 RPN 或者 上一个 stage 回归过的框作为输入,然后预测新的框和 mask。这也是实验中我们所比较的 baseline,从实验表格可以看到其实这个 baseline 已经很强了,但是仍然存在明显的问题,主要在于 Cascade Mask R-CNN 相比 Mask R-CNN 在 box AP 上提高了 3.5 个点,但是在 mask AP 上只提高了 1.2 个点。
进阶第一步:Interleaved Execution
Cascade R-CNN 虽然强行在每一个 stage 里面塞下了两个分支,但是这两个分支之间在训练过程中没有任何交互,它们是并行执行的。所以我们提出 Interleaved Execution,也即在每个 stage 里,先执行 box 分支,将回归过的框再交由 mask 分支来预测 mask,如上图(b)所示。这样既增加了每个 stage 内不同分支之间的交互,也消除了训练和测试流程的 gap。我们发现这种设计对 Mask R-CNN 和 Cascade Mask R-CNN 的 mask 分支都有一定提升。
进阶第二步:Mask Information Flow
这一步起到了很重要的作用,对一般 cascade 结构的设计和改进也具有借鉴意义。我们首先回顾原始 Cascade R-CNN 的结构,每个 stage 只有 box 分支。当前 stage 对下一 stage 产生影响的途径有两条:(1) 的输入特征是 预测出回归后的框通 RoI Align 获得的;(2) 的回归目标是依赖 的框的预测的。这就是 box 分支的信息流,让下一个 stage 的特征和学习目标和当前 stage 有关。在 cascade 的结构中这种信息流是很重要的,让不同 stage 之间在逐渐调整而不是类似于一种 ensemble。
然而在 Cascade Mask R-CNN 中,不同 stage 之间的 mask 分支是没有任何直接的信息流的, 只和当前 通过 RoI Align 有关联而与 没有任何联系。多个 stage 的 mask 分支更像用不同分布的数据进行训练然后在测试的时候进行 ensemble,而没有起到 stage 间逐渐调整和增强的作用。为了解决这一问题,我们在相邻的 stage 的 mask 分支之间增加一条连接,提供 mask 分支的信息流,让 能知道 的特征。具体实现上如下图中红色部分所示,我们将 的特征经过一个 1x1 的卷积做 feature embedding,然后输入到 ,这样 既能得到 backbone 的特征,也能得到上一个 stage 的特征。
进阶第三步:Semantic Feature Fusion
这一步是我们尝试将语义分割引入到实例分割框架中,以获得更好的 spatial context。因为语义分割需要对全图进行精细的像素级的分类,所以它的特征是具有很强的空间位置信息,同时对前景和背景有很强的辨别能力。通过将这个分支的语义信息再融合到 box 和 mask 分支中,这两个分支的性能可以得到较大提升。
在具体设计上,为了最大限度和实例分割模型复用 backbone,减少额外参数,我们在原始的 FPN 的基础上增加了一个简单的全卷积网络用来做语义分割。首先将 FPN 的 5 个 level 的特征图 resize 到相同大小并相加,然后经过一系列卷积,再分别预测出语义分割结果和语义分割特征。这里我们使用 COCO-Stuff 的标注来监督语义分割分支的训练。红色的特征将和原来的 box 和 mask 分支进行融合(在下图中没有画出),融合的方法我们也是采用简单的相加。
进阶结果
通过上面的几步,在使用 ResNet-50 的 backbone 下,相对 Cascade Mask R-CNN 可以有 1.5 个点的 mask AP 提升,相对 Mask R-CNN 可以有 2.9 个点的提升。在 COCO 2017 val 子集上的逐步对比试验如下表所示。
除了纯净版 HTC 之外,在 paper 里我们还给出了在 COCO Challenge 里面用到的所有步骤和技巧的涨点情况(良心买卖有木有)。
总结
多任务多阶段的混合级联结构
训练时每个 stage 内 box 和 mask 分支采用交替执行
在不同 stage 的 mask 分支之间引入直接的信息流
语义分割的特征和原始的 box/mask 分支融合,增强 spatial context
Code
已经 release 到 mmdetection:
https://github.com/open-mmlab/mmdetection
Arxiv
https://arxiv.org/abs/1901.07518
END
备注:分割
图像分割交流群
语义分割、实例分割、全景分割、抠图等技术,若已为CV君其他账号好友请直接私信。
我爱计算机视觉
微信号 : aicvml
QQ群:805388940
微博/知乎:@我爱计算机视觉
投稿:amos@52cv.net
网站:www.52cv.net
在看,让更多人看到
实例分割的进阶三级跳:从 Mask R-CNN 到 Hybrid Task Cascade相关推荐
- 何恺明、陈鑫磊新研究:提出实例分割新方法,效果比肩Mask R-CNN
https://www.toutiao.com/a6674769574212141579/ 何恺明大神的团队又有新研究了! 这一次,Facebook的陈鑫磊.何恺明等人,又从全新的角度,再次解决了实例 ...
- ECCV 2020 大规模实例分割挑战赛(LVIS Challenge)冠军方案
本文介绍 ECCV 2020 大规模实例分割挑战赛(LVIS Challenge)冠军方案,来自冠军团队 lvisTraveler 官方发布的报告:1st Place Solution of LVIS ...
- 速度超Mask RCNN四倍,仅在单个GPU训练的实时实例分割算法
这个带分割是25帧,有漏检. 速度超Mask RCNN四倍,仅在单个GPU训练的实时实例分割算法 原文:速度超Mask RCNN四倍,仅在单个GPU训练的实时实例分割算法 | 技术头条 https:/ ...
- Cascade R-CNN升级!目标检测制霸COCO,实例分割超越Mask R-CNN
点击我爱计算机视觉标星,更快获取CVML新技术 前天,arxiv上新出一篇论文<Cascade R-CNN: High Quality Object Detection and Instance ...
- 【CV】Mask R-CNN:用于目标实例分割的通用框架
论文名称:Mask R-CNN 论文下载:https://arxiv.org/abs/1703.06870 论文年份:2017 论文被引:18354(2022/05/03) Abstract We p ...
- 卷积神经网络——实例分割之Mask R-CNN论文翻译
论文链接 https://arxiv.org/abs/1703.06870 相关论文翻译链接 R-CNN:https://blog.csdn.net/itlilyer/article/details/ ...
- 有空就学学的实例分割1——Tensorflow2搭建Mask R-CNN实例分割平台
有空就学学的实例分割1--Tensorflow2搭建Mask R-CNN实例分割平台 学习前言 什么是Mask R-CNN 源码下载 Mask R-CNN实现思路 一.预测部分 1.主干网络介绍 2. ...
- 语义分割和实例分割_一文读懂语义分割与实例分割
以人工智能为导向的现代计算机视觉技术,在过去的十年中发生了巨大的变化.今天,它被广泛用于图像分类.人脸识别.物体检测.视频分析以及机器人及自动驾驶汽车中的图像处理等领域.图像分割技术是目前预测图像领域 ...
- Cascade R-CNN: High Quality Object Detection and Instance Segmentation(级联R-CNN:高质量目标检测与实例分割)
Cascade R-CNN: High Quality Object Detection and Instance Segmentation Zhaowei Cai, and Nuno Vasconc ...
最新文章
- android7.1默认背光亮度及编译调试
- 2015 年,我和华大基因立下一个小目标……
- Android资源分离,可分离Android操作系统报告:硬件环境检测文件(十)(分析)...
- C#并行编程(3):并行循环
- 从714里连续减去6减几次得0_数学干货 | 小学数学1—6年级基础知识整理 ,预习复习都能用...
- 团队任务2:冲刺前的准备
- 英语流利说 第32天
- java key锁_Java细粒度锁实现的3种方式
- protobuf反射详解及应用(pb/json相互转换)
- bp神经网络反向传播推导,bp神经网络的传递函数
- 利用PPT制作不一样的动态文字技巧
- Widows 环境下安装 ElasticSearch 并配置 ElasticSearch Head 插件
- 高数——隐函数与参数方程求导
- 阿里2021年面经汇总
- [转载]tensorflow二次开发
- FullCalendar说明文档
- 关于工厂类app的一些想法
- 在windows上安装 onlyoffice-documentserver.exefor Windows
- android反编译修改教程,反编译教程
- linux用户环境下进入uboot,嵌入式linux开发uboot移植(一)——uboot项目简介
热门文章
- 进程调度:优先数法与轮转法的实现
- 数据竞赛入门-金融风控(贷款违约预测)五、模型融合
- Golang指针,for循环
- Linux学习笔记10
- php socket 多次发送,php模拟socket 多次发送数据的实现方法
- php属性赋值吗,php – 设置类中属性的默认值
- matlab画直方图下标,matlab画二维数据直方图/画二维概率分布
- set column oracle,Oracle 用一个表字段更新另一个表字段三种方法
- java动态生成excel_java动态生成excel打包下载
- linux xmind无法运行,linux安装xmind的方法步骤