前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVPR2019-实例分割Mask Scoring R-CNN

CVPR2019-实例分割Mask Scoring R-CNN

作者头像
OpenCV学堂
发布2019-05-28 20:36:44
1.8K0
发布2019-05-28 20:36:44
举报

点击上方↑↑↑“OpenCV学堂”关注我

欢迎留言,参与互动讨论,发表自己的看法 作者博客: https://blog.csdn.net/linolzhang

今年的Oral,在coco数据集表现超过了Mask RCNN,来自地平线的华科实习生。

提出背景

Mask RCNN 提出以来,一直是作为经典霸屏,但这里面一直存在一个严重的问题,那就是其score机制:由于沿用了 Faster RCNN 的 class和box,对应class是类别score,并不能代表mask的好坏,看下图:

算法框架

问题提出来,很简单的想法就是,我能否加一个分支预测mask部分的score呢?比如用IoU来度量。

思路很简单,在Mask head的基础上,加了一个分支,将ROI对齐后的特征与得到的Mask做了一个concat,然后通过卷积层+全连接层,得到IoU Score,最后通过score相乘得到最终的得分:

代码语言:javascript
复制
Smask = Scls ∗ Siou

来看网络是如何训练的?给几个key point:

  • 对于新增的IoU分支,训练样本是RPN的正样本(负样本只参与分类),与Mask分支一致;定义正样本为RPN的Box与Ground Truth的IoU大于0.5。
  • 针对得到的Mask结果,根据阈值(文中是0.5)做二值化,计算二值化结果 和 Ground Truth的mask IoU;当二值化mask结果与GT一致时,Loss = 1 - Mask IoU = 0这里的二值化可以考虑修改一下,比如采用soft mask的方案。
  • 3个head分支同时训练。

这里作者试验了多个head,根据试验效果最后选择当前head,这里也有改进的空间,大家可以好好分析一下。推理阶段

  • 对于输出的box做soft-NMS处理后,得到score top-k(文中k=100)的box;这一步和mask RCNN并无区别,根据输出box映射到mask 分支,获取对应的分割图。
  • 将得到的分割图送入mask IoU分支,计算对应得分;
  • 仅使用Mask IoU的score来矫正class core,能够整体反应分割的够不够好;

测试效果

测试效果很不错,请看下图:

在COCO 2017数据集上的表现(不同backbone上均有显著提升):

论文:Mask Scoring R-CNN

代码语言:javascript
复制
Paper URL: https://arxiv.org/abs/1903.00241
github URL: https://github.com/zjhuang22/maskscoring_rcnn
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenCV学堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档