Mask R-CNN 论文笔记

本文详细介绍了Mask R-CNN的工作原理,包括ROI Align操作如何改进坐标精度,以及如何通过全卷积分支实现物体分割。Mask R-CNN在Faster R-CNN基础上增加了一个分支,用于预测物体的掩模,使用多任务损失函数结合类别、坐标和掩模损失进行训练。

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

Mask R-CNN

arXiv : https://arxiv.org/pdf/1703.06870.pdf
github: https://github.com/matterport/Mask_RCNN
conf & anthor: ICCV17,Kaiming He et. al
intro: ROI Align, FCN

主要内容:
Mask R-CNN通过在Faster R-CNN的基础上,在RPN网络得到RoI之后,增加一个分支FCN网络,实现对BBox中的物体进行实体分割。
在这里插入图片描述

基本思路:
Faster R-CNN中通过RPN可以得到一些RoI,这些区域通过RoI pooling之后,再经过全连接网络计算目标的类别和坐标。在Mask R-CNN中,在RoI的基础上,新增一个全卷积分支网络,以实现目标的分割任务。
(1) ROI Align: Fast R-CNN中使用的ROI pooling操作,首先要确定region在最后的feature map上的位置,这一步需要将像素坐标转换到feature map坐标上,比如 x / 16 x/16 x/16然后取整;然后需要将feature map上的区域划分为 n ∗ n n*n nn(如 7 ∗ 7 7*7 77)的格子,做pooling操作;这两步操作需要进行quantization(量化),会造成坐标精度的损失。因此,Mask R-CNN中提出了RoIAlign操作,避免了由于量化操作带来的坐标精度的损失。具体的做法如下图:在将像素坐标转换到feature map坐标这一步上,不进行取整,得到的是带小数位的feature map上的坐标,然后将该AlignBox划分为n*n的格子,每个格子中均匀采样四个点,每个点的值通过在feature map上进行双线性插值得到。最后在每个格子中通过平均或者最大池化得到输出。 在TensorFlow中,RoIAlign可以通过tf.image.crop_and_resize() 函数简化实现,简化的方面是将格子中心的插值结果最为输出,而不是取四个点再做池化。
在这里插入图片描述
在这里插入图片描述

(2) 分支网络:Mask R-CNN中在ROIAlign之后增加了一条全卷积的分支网络,用于Mask的预测。文章中对以ResNet和FPN为主干网络分别设计了两种分支结构。以ResNet为例,如下图,经过deconv扩大feature map的尺寸,最后输出的mask的尺寸为 14 ∗ 14 ∗ 80 14*14*80 141480,通道数目为80是为每一个类别预测了一个mask(coco数据集的类别数目为80)。
在这里插入图片描述
(3) 损失函数: Mask R-CNN中使用了类别+坐标+mask的多任务损失函数

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这个版本。
### 关于 Mask R-CNN论文下载 Mask R-CNN 是一种在目标检测领域具有重要影响力的模型,其核心思想是在 Faster R-CNN 的基础上增加了用于预测实例分割掩码的分支[^3]。该方法通过引入全卷积网络(FCN),针对每个感兴趣区域(Region of Interest, RoI)生成 \(m \times m\) 的二值掩码[^4]。 通常情况下,获取学术论文可以通过以下几种方式: 1. **官方出版平台** Mask R-CNN 的原始论文发表在 IEEE 的会议 ICCV 2017 上。可以访问 IEEE Xplore 或 ArXiv 网站直接搜索论文标题 “Mask R-CNN”。IEEE 提供高质量的 PDF 文件,但可能需要注册账户或支付费用。 2. **ArXiv 平台** 很计算机视觉领域的研究者会选择将预印本上传到 ArXiv。可以在 ArXiv 中输入关键词 “Mask R-CNN” 进行检索。例如,可以直接访问链接:[https://arxiv.org/abs/1703.06870](https://arxiv.org/abs/1703.06870),这是 Mask R-CNN 论文的一个公开版本。 3. **Google Scholar** 使用 Google Scholar 搜索引擎可以帮助找到更可用资源。输入论文名称或者作者名 Kaiming He 可能会返回个来源,包括免费和付费选项。 4. **科研社区分享网站** 如果无法通过上述渠道获得全文,还可以尝试一些科学文献共享平台,比如 ResearchGate 或 Academia.edu。这些平台上可能存在其他研究人员上传的合法副本。 以下是实现 Mask R-CNN 的一段简化代码框架示例: ```python import torch.nn as nn class MaskRCNN(nn.Module): def __init__(self, backbone, rpn, roi_heads, mask_head): super(MaskRCNN, self).__init__() self.backbone = backbone self.rpn = rpn self.roi_heads = roi_heads self.mask_head = mask_head def forward(self, images, targets=None): features = self.backbone(images.tensors) proposals, proposal_losses = self.rpn(images, features, targets) detections, detector_losses = self.roi_heads(features, proposals, images.image_sizes, targets) if self.training: losses = {} losses.update(detector_losses) losses.update(proposal_losses) return losses masks = self.mask_head(detections['boxes'], features) detections['masks'] = masks return detections ``` #### 注意事项 - 在使用第三方博客或其他非正式资料时,请注意版权问题并确认信息准确性[^1]。 - 对于 ECCV 和 ICCV 等顶级会议中的最新研究成果,也可以关注相关解读文章了解背景知识[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值