【论文研读笔记---十】Mask-RCNN

论文研读系列汇总:

1.AlexNet论文研读
2.VGG论文研读
3.GoogLeNet论文研读
4.Faster RCNN论文研读
5.ResNet 论文研读
6.SENet 论文研读
7.CTPN 论文研读
8.CRNN 论文研读
9.EAST 论文研读
10.Mask-RCNN论文研读

在这里插入图片描述
作为一个best paper的6千star项目,会在读完对应论文的同时,更新对应的代码研读,希望比之前的CTPN更加全面详细,大家可以期待一下。
源代码解读视频
【流程原理介绍】
在这里插入图片描述

摘要

Mask RCNN可以看做是一个通用实例分割架构。主要流程为,在faster-rcnn提取的候选框内部,进行FCN的语义分割模块,以达到实例分割的效果
Mask RCNN以Faster RCNN原型,增加了一个分支用于分割任务。
Mask RCNN比Faster RCNN速度慢一些,达到了5fps。
可用于人的姿态估计等其他任务;

技术创新点:

  • 引入了RoI Align代替Faster RCNN中的RoI Pooling。因为RoI Pooling并不是按照像素一一对齐的(pixel-to-pixel alignment),也许这对bbox的影响不是很大,但对于mask的精度却有很大影响。使用RoI Align后mask的精度从10%显著提高到50%,第3节将会仔细说明。
  • 引入语义分割分支,实现了mask和class预测的关系的解耦,mask分支只做语义分割,类型预测的任务交给另一个分支。这与原本的FCN网络是不同的,原始的FCN在预测mask时还用同时预测mask所属的种类。

ROI Align

RoIAlign:RoIPool的目的是为了从RPN网络确定的ROI中导出较小的特征图(a small feature map,eg 7x7),ROI的大小各不相同,但是RoIPool后都变成了7x7大小。RPN网络会提出若干RoI的坐标以[x,y,w,h]表示,然后输入RoI Pooling,输出7x7大小的特征图供分类和定位使用。问题就出在RoI Pooling的输出大小是7x7上,如果RON网络输出的RoI大小是8*8的,那么无法保证输入像素和输出像素是一一对应,首先他们包含的信息量不同(有的是1对1,有的是1对2),其次他们的坐标无法和输入对应起来(1对2的那个RoI输出像素该对应哪个输入像素的坐标?)。这对分类没什么影响,但是对分割却影响很大。RoIAlign的输出坐标使用插值算法得到,不再量化;每个grid中的值也不再使用max,同样使用差值算法。

在这里插入图片描述

下面我们用直观的例子具体分析一下上述区域不匹配问题。如 图1 所示,这是一个Faster-RCNN检测框架。输入一张800800的图片,图片上有一个665665的包围框(框着一只狗)。图片经过主干网络提取特征后,特征图缩放步长(stride)为32。因此,图像和包围框的边长都是输入时的1/32。800正好可以被32整除变为25。但665除以32以后得到20.78,带有小数,于是ROI Pooling 直接将它量化成20。接下来需要把框内的特征池化77的大小,因此将上述包围框平均分割成77个矩形区域。显然,每个矩形区域的边长为2.86,又含有小数。于是ROI Pooling 再次把它量化到2。经过这两次量化,候选区域已经出现了较明显的偏差(如图中绿色部分所示)。更重要的是,该层特征图上0.1个像素的偏差,缩放到原图就是3.2个像素。那么0.8的偏差,在原图上就是接近30个像素点的差别,这一差别不容小觑。

在这里插入图片描述

mask分支

Network Architecture: 为了表述清晰,有两种分类方法

使用了不同的backbone:resnet-50,resnet-101,resnext-50,resnext-101;

使用了不同的head Architecture:Faster RCNN使用resnet50时,从CONV4导出特征供RPN使用,这种叫做ResNet-50-C4

作者使用除了使用上述这些结构外,还使用了一种更加高效的backbone——FPN.
在这里插入图片描述
在这里插入图片描述
该图是在roi_head部分,进行的添加示意图。由图可知,在roi_head部分以后,resnet版进行了两个卷积,然后接roi_head部分。而fpn版直接接入roi_head部分。对比上下两个图,可以大致理解接入mask部分的位置,以及对应操作
几个问题:

扫描二维码关注公众号,回复: 8772998 查看本文章
  • 为什么最后接141480? 通过上面的class_head部分,已经得到对应的80个类别,可以选择对应的特征图。然后resize到对应的检测框就行。
    mask分支图

参考文献:
【链接】

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

猜你喜欢

转载自blog.csdn.net/qq_35307005/article/details/102212994
今日推荐