Mask R-CNN 笔记

前言
1.本文重点是RoIAlign以及分割掩码分支的损失函数,尽量用较少篇幅表达清楚论文算法,其他一些不影响理解算法的东西不做赘述
2.博客主要是学习记录,为了更好理解和方便以后查看,当然如果能为别人提供帮助就更好了,如果有不对的地方请指正(论文中的链接是我经过大量搜索,个人认为讲解最清楚的参考)

论文链接
代码链接
论文翻译

创新点
1.提出RoIAlign代替普通RoI Pooling来解决特征图与原始图像的不对准(mis-alignment)
2.用sigmoid代替softmax对每个像素输出二值掩码,避免引入类间竞争以提升算法性能

从Faster R-CNN到Mask R-CNN
Mask R-CNN是在Faster R-CNN基础上得到的,可以用来检测,也可以用来分割,只需要并行分类和回归再添加一个全卷积分支输出像素掩码就可以了,原理上是这样,但是分割需要精确到像素级,而Faster R-CNN不是为网络输入和输出之间的像素到像素对齐而设计的,即特征图与原始图像是不对准的(mis-alignment),这是生成RoI和进行RoI Pooling时取整造成的,会影响算法精度。综上,Mask R-CNN重点就是RoIAlign以及分割掩码分支的损失函数
在这里插入图片描述
1.Mask R-CNN网络架构
就是在以ResNet+FPN为提取特征网络的Faster R-CNN基础之上,把RoI pooling改为RoIAlign,然后在RoIAlign后面(和分类回归并行)添加卷积分支预测像素掩码
在这里插入图片描述
2.RoIAlign
2.1 先来看一下RoI pooling怎么就不行了
在这里插入图片描述
可以看到原图尺寸800×800,小狗的框尺寸665×665;经过卷积网络原图变为800/32=25(整除),框尺寸变为665/32=20.78,此时无法整除为了方便将20.78取整为20;接着通过RoI pooling,假设要求输出7×7,那么20/7=2.86,又是浮点数,还得取整。经过这两次取整,如果候选框在RoI pooling后面的特征图上有1个像素的偏差,那映射到原图上就已经有了几十个像素的偏差了,这就是mis-alignment

2.2 RoIAlign原理
既然是取整带来的问题,那不取整保留小数就行了呗,问题是小数坐标的像素点上的像素值怎么确定,这就是RoIAlign要解决的
在这里插入图片描述
如图所示,虚线部分表示feature map,实线表示ROI,这里将ROI切分成2x2的单元格。如果采样点数是4,那我们首先将每个单元格子均分成四个小方格(如红色线所示),每个小方格中心就是采样点。这些采样点的坐标通常是浮点数,所以需要对采样点像素进行双线性插值(如四个箭头所示),就可以得到该像素点的值了。然后对每个单元格内的四个采样点进行maxpooling,就可以得到最终的ROIAlign的结果。需要说明的是,在相关实验中,作者发现将采样点设为4会获得最佳性能,甚至直接设为1在性能上也相差无几。事实上,ROI Align 在遍历取样点的数量上没有ROIPooling那么多,但却可以获得更好的性能,这主要归功于解决了misalignment的问题(此部分来自知乎,其中双线性插值讲的也很清楚)

3.掩码分支的损失
Mask R-CNN损失函数为
在这里插入图片描述
其中分类和回归部分和Faster R-CNN没啥区别。重点是掩码分支的损失 L m a s k L_{mask} Lmask,假设一共有k个类别,那mask分支的输出维度就是kxmxm,对于mxm中的每个点都会输出k个二值掩码,二值掩码又sigmoid输出。计算loss的时候,并不是每个类别的sigmoid输出都计算二值交叉熵损失,而是该像素属于哪个类,哪个类的sigmoid输出才要计算损失(如图红色方形所示)。而类别则是由分类分支确定,这就是类别预测和掩码预测的解耦(FCN方法是对每个像素进行多类别softmax分类,然后计算交叉熵损失,这种做法是会造成类间竞争影响算法性能)

其他
由于Mask R-CNN是从Faster R-CNN基础上得到的,除了文中的两个改动外,其他部分可以参考Faster R-CNN

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值