【论文阅读笔记】Mask R-CNN(题目精简的一般都是神作,,,)

(一)论文地址:

https://arxiv.org/abs/1703.06870

(二)核心思想:

在这里插入图片描述

作者在 Faster-RCNN 目标检测网络的基础上提出了 Mask R-CNN,先检测出物体,再在检测框内对物体进行像素级的分割,可用于实例分割和 2D 姿态评估;

核心就是作者提出了一种新的 ROI 池化方式—— ROI Align,通过双线性插值的方法,改进了 ROI Pooling 像素不匹配的问题;

(三)Loss 函数:

这里定义了 Mask R-CNN 的 Loss 函数:

L = L c l s + L b o x + L m a s k L=L_{cls}+L_{box}+L_{mask}

其中前两项与 F a s t e r r c n n Faster-rcnn 相同, L c l s L_{cls} 是 softmax_cross_entropy_loss 函数, L b o x L_{box} 是 smooth_l1_loss 函数,第三项 L m a s k L_{mask} 是分割的损失函数;

对于每个 ROI,输出结果为使用 sigmoid 预测的大小为 m × m × K m×m×K ,代表 m × m m×m 个像素上 K K 个分类的二进制掩码;由于每个 ROI 都与一个分类为 k k 的真值框关联,因此这里定义 L m a s k L_{mask} 只与该分类框内像素点是否为第 k k 个分类有关,使用了 binary_cross_entropy_loss 函数,即二分类交叉熵损失函数;
在这里插入图片描述

(四)ROI Align:

4.1 ROI Pooling 的局限:

在这里插入图片描述

扫描二维码关注公众号,回复: 9764124 查看本文章

ROI Pooling 是 Faster R-CNN 提出的一种将不同大小的 ROI 量化到相同的 7×7 大小,从而能够用权值共享的全卷积层输出 ROI 区域的分类向量和回归值;

假设输出大小为 7×7,则量化过程为:

  1. 对边界取整,并将每个 ROI 区域划分成 7×7 个区域;
  2. 对每个区域分别进行最大池化操作;

这样导致的问题是会有特征信息的丢失,虽然对 ROI 检测的结果没有很大影响,但是对分割的结果影响很大;

4.2 ROI Align:

为了解决上述量化过程造成问题,作者提出了 ROI Align:
在这里插入图片描述

即使用双线性插值法计算映射区域的值,即对每个 ROI 区域平均分成 7×7 个区域,每个区域的中心点使用双线性插值计算,从而避免使用取整操作和最大池化操作;

(五)网络结构:

在这里插入图片描述
作者在这里延伸了如图的两种结构,其中下采样的卷积层都是 3×3 大小,预测层是 1×1 大小,上采样(反卷积)使用的是步长为 2 的 2×2 大小的反卷积;

(六)训练细节:

正样本阙值为 0.5,输入边最小长度为 800,其余跟 Faster R-CNN 相同;

(七)实验结果:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

发布了100 篇原创文章 · 获赞 142 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_44936889/article/details/104338556