Mask R-CNN

Mask R-CNN是一种目标实例分割框架,结合目标检测和语义分割,能为每个实例生成分割掩模。它从R-CNN系列演进而来,通过RPN提出候选框,使用RoIAlign提取特征,再进行分类、边框回归和掩模预测。在Faster R-CNN基础上,Mask R-CNN引入了解耦掩模和类预测,解决像素对齐问题,并用sigmoid损失函数避免类间竞争。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. segmentaion mask:分割掩模。 图像掩模的概念为用选定的图像、图形或物体,对待处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。用于覆盖的特定图像或物体称为掩模或模板。图像掩模主要用于:①提取感兴趣区,用预先制作的感兴趣区掩模与待处理图像相乘,得到感兴趣区图像,感兴趣区内图像值保持不变,而区外图像值都为0。即相当于特征的功能。
  2. Mask R-CNN
    简介
    它是一种目标实例分割框架,实例分割即是语义分割,也是目标检测,因此它能有效检测出图像中的目标,并同时为每一个实例生成高质量的分割掩模.
    这里写图片描述
    相关方法
    R-CNN:通过找到一定数量的候选目标区域(RoI),并且在每个RoI上单独执行CNN来进行边框目标检测。
    Fast R-CNN:使用RoIPool在特征图上选取Rols
    Faster R-CNN:使用RPN学习注意机制产生候选框。Faster R-CNN的思路为使用RPN(其baseline为FPN(Feature Pyramid Networks):特征金字塔网络)提出候选目标边框,然后使用RolPool从每个候选框中提取特征,并进行分类和边框回归。
    实现方法
    在Faster R-CNN的基础上,通过添加一个与现有边框识别(包括分类和边框回归)分支并行的,用于预测目标掩模的分支。掩模分支为作用于每个感兴趣区域(RoI)的小全卷积神经网络(FCN),以像素到像素的方式进行预测。分类最终取决于掩模的类别,分类输出类标签,计算损失函数,但是掩模分支生成了K个掩模,在边框中挨个去试,因此也叫解耦掩模和类预测。但测试时根据类预测,只试对应的那一个掩模。

    推理流程
    RPN(Region Proposal Network):提出候选目标边框(RoL)
    RolAlign:从每个候选框中提取特征,并进行分类和回归。且并行为每一个RoL输出一个二进制掩模。
    Loss Function:L=Lcls+Lbox+Lmask
    基于Faster R-CNN的改进
    网络输入和输出之间的像素不对齐:将特征提取方法RoIPool改为RolAlign。RolAlign的过程为:
    1:避免对Rol边界或块进行量化
    2:选取每个Rol分块中的四个常规位置,使用双线性插值来计算每个位置的精确值
    3:使用最大或平均池化对结果汇总
    解耦掩模和类预测,使AP提高:在没有类间竞争的情况下,为每个类独立的预测二进制掩模,并且依赖于网络的Rol分类分支来预测类别。
    为了不会产生类间竞争:损失函数定义为sigmoid(二值分类,掩模只需要二值,要么背景,要么目标,所以可以多个点均为目标,大家都可以为1,所以不存在类间竞争),Lmask定义为平均二进制交叉熵损失,而不是softmax和多项式交叉熵损失。(而softmax为多分类,只选出最大的一个点,自然类间竞争,但是人体关键点只需要检测一个,不需要检测一大片。)
    Mask R-CNN用于人体姿势估计
    目标:预测K个掩模(只有一个像素被标记为前景),每个对应K种关键点类型之一(比如左肩,右肘)
    建模:将K个关键点的位置建模为one-hot掩模
    损失函数定义为softmax输出上的交叉熵函数(驱使一个点被检测到)

Mask RCNN 是基于Kaiming 之前的工作 FPN (Feature Pyramid Network) 很形象地说就是用FPN产生的检测结果, 后面加了一个分割的网络. 文章中用到了 Top-Down + Bottom-Up 最近很流行的多层网络, 因为最开始Faster-RCNN只是在最后一层上面检测, 很容易丢掉小目标物体, 并且对细节遮挡也很不敏感. 最近的趋势就是结合多层 特征, 答主孔涛就很早发现了这个insight, 做出了HyperNet 并中了CVPR roal!!!作者:Oh233 链接:https://www.zhihu.com/question/57403701/answer/153060743 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 Mask R-CNN 这个结果确实很强,但要同时注意它主要是加上了许多(都是很有用的)engineering techniques 。 比如说 anchor 从 12 增加到了15个,图像 size 从600变成了800,还有ROI batch size变到了512,从FPN那篇paper来看,这些 better practice 会有对性能十分明显的提升 (table 3 baseline: AP=26.3 -> 31.6)。而我们组16年的coco分割竞赛冠军 ,Fully Convolutional Instance-aware Semantic Segmentation (FCIS)的代码昨晚终于开源了。限于计算资源,我们并没有加上这些改进。这些改进应该是比较 general 的,也会适用于 FCIS。欢迎大家试用一波。FCIS 提供了一种简单高效的框架去解决 instance segmentation 的问题。跟之前 COCO 2015 的冠军 MNC 相比,它的主要不同在于 mask estimation 和 detection 是共同做的,而不是先估计 mask 再做 detection。在 FCIS 中 detection/mask estimation 之间通过 inside/outside score map 互相影响,利用了这两个紧密相连 task 之间的共性。现在 release 版本基于支持多卡训练的MXNet,msracver/FCIS。实际上大概今年一月份我们就已经写出了外面可以使用的Caffe版本,但是当时官方 Caffe 只支持单卡做复杂任务的训练,对于COCO这种大规模数据集来说用单卡训练的话一下子几周的时间就过去了。考虑到大家用起来会非常蛋疼,最后还是决定没有release这个版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值