Mask R-CNN 论文笔记

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的多任务损失函数 L l o s s = L c l s + L c o o r + L m a s k L_{loss}=L_{cls}+L_{coor}+L_{mask} Lloss=Lcls+Lcoor+Lmask,其中类别和坐标损失与Fastre R-CNN中的一致。Mask R-CNN中最后输出的mask的尺寸为 m ∗ m ∗ K m*m*K mmK(如 14 ∗ 14 ∗ 80 14*14*80 141480),通道数K表示目标类别数目。 计算 L m a s k L_{mask} Lmask时只使用RoI的真实类别的那一个通道的损失,其他通道均不贡献损失,具体计算时使用的是空间位置上所有点的sigmiod变换后的二元交叉熵损失的均值。
L m a s k = 1 m 2 ∑ i K ( 1 k ) ∑ 1 m 2 [ − y l o g ( s i g m o i d ( x ) ) − ( 1 − y ) l o g ( 1 − s i g m o i d ( x ) ) ] L_{mask}=\frac{1}{m^2}\sum_i^K(1^k)\sum_1^{m^2}[-ylog(sigmoid(x))-(1-y)log(1-sigmoid(x))] Lmask=m21iK(1k)1m2[ylog(sigmoid(x))(1y)log(1sigmoid(x))]
其中:

  • 1 k 1^k 1k 表示当第 k k k个通道对应目标的真实类别时为1,否则为0 ;
  • y y y表示当前位置的mask的label值,为0或1;
  • x x x当前位置的输出值, s i g m o i d ( x ) sigmoid(x) sigmoid(x)表示输出x经过sigmoid函数变换后的结果;
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值