CVPR2019 | Mask Scoring R-CNN 论文解读
Mask Scoring R-CNN
CVPR2019 | Mask Scoring R-CNN 论文解读
作者 | 文永亮
研究方向 | 目标检测、GAN
推荐理由:
本文解读的是一篇发表于CVPR2019的paper,来自华科和地平线,文章提出了Mask Scoring R-CNN的框架是对Mask R-CNN的改进,简单地来说就是给Mask R-CNN添加一个新的分支来给mask打分从而预测出更准确的分数。
源码地址:https://github.com/zjhuang22/maskscoring_rcnn
研究动机:
Mask R-CNN其实是何恺明大神在Faster R-CNN系列的延伸,Mask R-CNN和Faster R-CNN都是 two stages的,第一阶段是RPN(Region Proposal Network),产生一些候选的目标边界框,使用RoIAlign为每一个候选区域提取特征,生成分类、bbox回归还有mask的预测,其实就是在Faster R-CNN的基础上添加一个新的分支预测mask。
但是Mask R-CNN存在着一个问题,就是在实例分割的任务中,蒙版分割质量是由检测分支的分类置信度决定。然而,mask的质量(我们这里用instance mask和ground truth之间的IoU做评判)通常与分类置信度没有太强的关联。
相信大家都知道IoU是目标窗口和原来标记窗口的交叠率,如果Mask R-CNN的分类置信度能够决定分割蒙版的质量的话,也就是说其质量与分类分数呈现相关性,但是从图二(a)中可以看出,当分类分数高于0.5时(横坐标),甚至到达1时,MaskIoU参差不齐,可以说从0.5到1的质量分数都有,从而证实了Mask R-CNN的MaskIoU与分类置信度没有太强的关联。所以作者提出的Mask Scoring R-CNN,MS R-CNN中提出的框架其实很简单,就是在原有的Mask R-CNN框架的基础上添加一个额外的分支MaskIoU head模块,这个模块用来学习MaskIoU。这个框架得到的分数如图二(b)(c)的所示,可以明显看出分类分数高的同时蒙版质量也得到了提升。
Mask Scoring R-CNN:
·Mask Scoring:
既然我们发现了Mask R-CNN的问题,那么我们现在就来解决它,首先我们考虑蒙版的分数由什么决定?
从上面的动机中我们得知,MaskIoU可以来评价蒙版的质量,因为理想的mask应该是与Ground Truth完全重合的,所以我们必须考虑MaskIoU。除此之外,一个理想的评价mask的分数,除了与GT的重合率之外,这个实例分割只属于一个类,对于其他类的分数都为0。所以学习mask的分数就分解成两个任务,就是把mask分类到正确的类中以及把建议框的MaskIoU回归到目标前景中。
有如上公式,专注于对建议框进行分类,聚焦于回归MaskIoU。
·MaskIoU head:
整个MS R-CNN的改进就在于这个MaskIoU Head,MaskIoU Head模块的输入由两部分组成,一是ROIAlign得到的RoI feature map,二是Mask Head分支输出的mask。Mask经过MaxPooling之后与RoI feature map进行concat,然后经过3层卷积和2层全连接层,输出的就是MaskIoU。以下是其完整的架构,如图三:
·Training:
怎么训练MaskIoU Head?只把mask分支输出的mask与GT计算IoU作为target是不够的,因为mask分支输出的mask有好有坏,所以文章中做了阈值处理,使用RPN生成的proposals与GT的IoU大于0.5的mask称为binary mask,这个binary mask与GT的MaskIoU就作为MaskIoU的target。
·Inference:
RCNN Head输出的top-k(例如top100)分数的框,经过SoftNMS后,送入Mask Head,得到mask与ROI feature map进行concat送入MaskIoU Head得到MaskIOU,然后与分类结果得到的分数相乘得到mask score。
实验结果:
实验结果这里有很多种不同的AP,表示在不同scales时的AP,意思是使用了不同IoU阈值。作者用的数据集是COCO 2017val集。
Table 1表明了作者提出的Mask Scoring R-CNN对不同的backbone网络并不敏感,相比Mask R-CNN基本上AP有1点左右的提升。
Table 2表明无论是否使用FPN和DCN,MaskIoU head都在AP上有提升。
Table 3是跟目前的实例分割方法在COCO 2017 test-dev上做对比。
这是MS R-CNN和Mask R-CNN对比效果,评分得到了修正。
MaskIoU head的各种选择:
文章做了下面4种输入组合:
1.target mask和ROI feature concat
2.target mask和ROI feature 相乘
3.所有mask和ROI feature concat
4.target mask和高分辨率的ROI feature concat
还有一个问题就是,我们知道RoI内可能有很多种目标类别,我们应该让MaskIoU学习所有的类别,还是学习RoI内的所有出现的类别,抑或是选取RoI内分类得分高的类呢?
由此分成了三种情况:
- 只让MaskIoU学习target类别,target类别其实就是分类得到的top-k类别,其他类别的就直接忽略掉。
- 让MaskIoU学习所有类别。
- 让MaskIoU学习所有出现在RoI中的类别,其他没出现的类别忽略。
发现第二种情况学习所有类别的情况是最差的,甚至比原来Mask R-CNN的效果还差。而第三种学习所有正类的情况比学习target类别差的原因是学习所有正类会增加MaskIoU head的负担,所以文章选择了学习target类别的情况一。
点评:
作者认为分类置信度不能单纯的作为mask的得分,所以很简单的想法就是另外创建了一个MaskIoU分支学习MaskIoU,最后与分类分数相乘的到Mask Score。感觉与IoU-Net类似。但是这样就导致mask与检测分支相关,使mask受限于box。
CVPR2019 | Mask Scoring R-CNN 论文解读的更多相关文章
- CVPR2019论文解读:单眼提升2D检测到6D姿势和度量形状
CVPR2019论文解读:单眼提升2D检测到6D姿势和度量形状 ROI-10D: Monocular Lifting of 2D Detection to 6D Pose and Metric Sha ...
- CVPR2020论文解读:CNN合成的图片鉴别
CVPR2020论文解读:CNN合成的图片鉴别 <CNN-generated images are surprisingly easy to spot... for now> 论文链接:h ...
- 图像分割-Mask Scoring R-CNN
转载:https://zhuanlan.zhihu.com/p/58291808 论文链接:https://arxiv.org/abs/1903.00241 代码链接:https://github.c ...
- zz扔掉anchor!真正的CenterNet——Objects as Points论文解读
首发于深度学习那些事 已关注写文章 扔掉anchor!真正的CenterNet——Objects as Points论文解读 OLDPAN 不明觉厉的人工智障程序员 关注他 JustDoIT 等 ...
- 点云配准的端到端深度神经网络:ICCV2019论文解读
点云配准的端到端深度神经网络:ICCV2019论文解读 DeepVCP: An End-to-End Deep Neural Network for Point Cloud Registration ...
- CVPR2020论文解读:手绘草图卷积网络语义分割
CVPR2020论文解读:手绘草图卷积网络语义分割 Sketch GCN: Semantic Sketch Segmentation with Graph Convolutional Networks ...
- CVPR2020论文解读:3D Object Detection三维目标检测
CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...
- 论文解读(GraphMAE)《GraphMAE: Self-Supervised Masked Graph Autoencoders》
论文信息 论文标题:GraphMAE: Self-Supervised Masked Graph Autoencoders论文作者:Zhenyu Hou, Xiao Liu, Yukuo Cen, Y ...
- 论文解读(MGAE)《MGAE: Masked Autoencoders for Self-Supervised Learning on Graphs》
论文信息 论文标题:MGAE: Masked Autoencoders for Self-Supervised Learning on Graphs论文作者:Qiaoyu Tan, Ninghao L ...
随机推荐
- ajax点击加载更多图片
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- UT源码105032014098
(2)NextDate函数问题 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性 NextDate函数包含三个变量month.day和year,函数的输出为输入日期后一天的日期. ...
- Mirror--不同SQL Server版本使用的默认镜像端点加密算法不同
在搭建镜像时遇到一个小问题,搭建镜像时报错,排查好半天,对证书/用户/登陆/连接授权等方面都做了逐一排查,未发现异常,最后生成镜像端点创建脚本时,才发现问题原因: 镜像主节点(10.50.4276)的 ...
- WCF加密传输数据,b并且用户名+密码验证
在前2个文章的基础上,继续增加对client 端增加username+password的验证 host增加类Validator,需要添加引用 using System.IdentityModel.Se ...
- JS中同步显示并分割输入的数字字符串
题目比较晦涩,来张图来说明要表达的效果: 第一张图的效果就是,用户输入一个数字,上面就显示一个大层,然后显示输入的数字,并把数字用空格按照每四位分割出来.好像在建行的网上银行上面就有这种效果.第二个图 ...
- Asp.Net MVC记住用户登录信息 下次登录无需输入密码
有的时候做网站,就需要记住用户登录信息,下次再登录网站时,不用重复输入用户名和密码,原理是浏览器的cookie把状态给记住了! 那么具体是怎么实现的呢?下面博主将一部分代码贴出来,想要完整版的Demo ...
- 【文文殿下】NOIp2018游记
Day-1 本段更新于 2018年11月8日23:26:44 今天还在机房里面,无所事事吧.上午睡了一上午,出去理了一下发,花了20块钱 QAQ. 下午来到机房,复习了一下exgcd的东西. 发现自己 ...
- 【文文殿下】P3740 [HAOI2014]贴海报
题解 一开始想到离散化,然后暴力模拟.但是存在一种hack数据: [5,7] [1,5] [7,9] 这样会错误的认为第一个区间被覆盖了(因为两个端点被覆盖).所以我们设置一个玄学调参系数,在一个区间 ...
- [CTSC2008]网络管理(整体二分+树剖+树状数组)
一道经典的带修改树链第 \(k\) 大的问题. 我只想出三个 \(\log\) 的解法... 整体二分+树剖+树状数组. 那不是暴力随便踩的吗??? 不过跑得挺快的. \(Code\ Below:\) ...
- FileAttributeView出现空指针异常原因分析
问题? Java7新增了关于文件属性信息的一些新特性,通过java.nio.file.*包下面的类可以实现设置或者读取文件的元数据信息(比如最后修改时间,创建时间,文件大小,是否为目录等等).尤其 ...