论文阅读笔记 | 目标检测算法——Mask R-CNN算法

简介: 论文阅读笔记 | 目标检测算法——Mask R-CNN算法

paper:Mask R-CNN

作者:Kaiming He

image.png


摘要:


其实,这篇论文中,作者是设计用来解决对象实例分割问题的,所以文章的名字可能起得不算很好,请多包含。但是在Mask R-CNN算法中,可以有效的检测出图像中的对象,同时为每个实例生成高质量的分割掩码。


Mask R-CNN是在Faster R-CNN基础上进行拓展,通过增加一个预测对象掩码的分支,与现有的边界框回归分支并行。其甚至可以处理实例分割任务,目标检测任务,人体关节检测任务。


1. Introduction


作者在这项工作中的目标是为实例分割开发一个相对可行的框架。实例分割任务需要正确检测图像中的所有对象,同时还需要精确分割每个实例。因此,实例分割任务结合了目标检测与语义分割两大任务。前者是对单个对象进行分类,并使用边界框对每个对象进行定位。后者是将每个像素分类到一组固定的类别中,而不区分对象实例,也就是相同类别的内容用同一种像素点表示即可。


Mask R-CNN结果如图所示:

image.png

Mask R-CNN是Faster R-CNN的扩展版本,添加一个分支用于对每个感兴趣区域(RoI)进行预测分割掩码,与用于分类和包围盒回归的现有分支并行。这个mask分支由全卷积网络组成,以逐像素点(pixel-to-pixel)的方式对每一个感兴趣区域RoI预测分割掩码。


以上是一个比较直观的结构展示,正确构建掩码分支对于良好的结果至关重要。最重要的是,Faster RCNN不是为网络输入和输出之间的pixel-to-pixel对齐而设计的。这在用于处理实例的实际核心操作RoIPool时,如何执行特征提取的粗略空间量化中最为明显。为了修复错位,作者提出了一个简单的无量化层,称为RoIAlign,它忠实地保留了精确的空间位置。


其次,作者发现将掩码和类预测解耦至关重要。为此,作者独立地为每个类预测一个二进制掩码,类之间没有竞争,并依靠网络的RoI分类分支来预测类别。相比之下,FCNs通常执行每像素进行多类别分类,将分割和分类结合起来,基于实验这对于实例分割效果不佳。


2. Related Work


在RCNN有效性的驱动下,许多实例分割方法都是基于分割建议的(segment proposals)。早期的方法采用自下而上的分割。DeepMask和一些后续研究提出细分候选(segment candidates),然后由Fast R-CNN进行分类。在这些方法中,分割先于识别,这是缓慢且不太准确的。类似地,还有人提出了一种复杂的多级级联,该级联从包围盒候选框中预测分割候选框,然后进行分类。而在Mask R-CNN中,则是基于并行掩码预测与类标签预测,更简单且更灵活。


还有学者将某研究成果中的分割候选系统与目标检测系统结合起来,实现全卷积实例分割“fully convolutional instance segmentation” (FCIS)。其想法是由全卷积网络对一组位置敏感进行预测并输出一组channels,这些channels同时处理对象类、回归框和掩码,使系统速度更快。但是FCIS在重叠实例上表现出系统误差,并产生虚假边缘,表明它受到分割实例的根本困难的挑战。


实例分割的另一系列解决方案是由语义分割的成功驱动的。从每像素分类结果开始,这些方法试图将同一类别的像素切割成不同的实例。与这些方法的分段优先策略(segmentation-first strategy)相反,Mask R-CNN基于实例优先策略(instance-first strategy)。


3. Mask R-CNN


Mask R-CNN在概念上很简单:Faster R-CNN对每个候选对象都有两个输出,一个类标签和一个边界框偏移量,对此作者添加了第三个分支来输出对象掩码。但是额外的掩码输出不同于实例对象类标签和回归框输出,需要提取对象的更精细的空间布局。对于Faster R-CNN,其主要的缺失部分是pixel-to-pixel对齐。


3.1 Faster R-CNN

首先回顾一些Faster R-CNN结构。其包含两个步骤:

1)第一阶段称为区域建议网络(Region Proposal Network,RPN),提出候选对象边界框。

2)第二阶段本质上是Fast R-CNN,使用RoIPool从每个候选框中提取特征,并执行分类和包围盒回归。


两个阶段使用的特征可以共享,以便更快地推断。


详细的Faster R-CNN结构介绍,可以参考我另一篇笔记:目标检测算法——Faster R-CNN


3.2 Mask R-CNN

Mask R-CNN采用相同的两阶段程序:第一阶段相同(即RPN)。在第二阶段,在预测类和边界框偏移的同时,Mask R-CNN还为每个RoI输出一个二进制掩码。这与其他系统中分类依赖于掩码预测形成对比。Mask R-CNN遵循着Faster R-CNN的思想,并行应用包围盒分类和回归,在很大程度上简化了原始的 R-CNN多级处理流程。

image.png


3.3 Mask Representation

遮罩对输入对象的空间布局进行编码。因此,与类别标签或边界框偏移不可避免地被全连接层折叠成短输出向量不同,提取掩码的空间结构可以自然地通过卷积提供的pixel-to-pixel的对应来解决。


具体来说,作者对每一个RoI使用FCN来预测一个分辨率大小为m × m m \times mm×m的掩码。这允许掩码分支中的每个层保持显式的m × m m × mm×m对象空间布局,而不会将其折叠为缺少空间维度的矢量表示。不像以前的方法使用全连接层的掩码预测,Mask R-CNN使用全卷积表示需要更少的参数,更准确的实验证明。


对于处理后得到的RoI来说,是一个尺度比较小的特征图。而pixel-to-pixel的方式要求RoI特征能够很好的对齐,以清晰地保持每像素的明确空间对应。这促使作者开发了以下在掩码预测中起关键作用的RoIAlign层。


3.4 RoIAlign

在Faster RCNN中,RoIPool是将提取出的RoI进行统一池化为7x7尺度大小特征图的标准操作。RoIPool首先将一个浮点数RoI量化为特征图的离散粒度,然后将这个量化的RoI细分为空间仓,这些空间仓本身被量化,最后聚合每个仓覆盖的特征值(通常通过max pooling)。简单的说,RoIPool就是将w × h w \times hw×h的特征图,统一标准地池化为7x7大小的结果。这些量化在RoI和提取的特征之间引入了不对准。虽然这可能不会影响分类,分类对于小的转换是稳健的,但是它对预测像素精确的掩码有很大的负面影响。


为了解决这个问题,作者提出了一个RoIAlign层,它消除了RoIPool的苛刻量化,将提取的特征与输入适当对齐。作者避免对RoI边界或面元进行任何量化(即使用x/16而不是[x/16]),然后使用双线性插值计算每个RoI bin中四个规则采样位置的输入特征的精确值,并汇总结果(使用最大值或平均值)。


对于RPN网络输出的RoI,一般是会在特征图上进行了些许偏移如实现框所示,这个偏移的边界框同样会包含多个特征点。我的理解是,一般在对原目标映射在特征图上时会出现浮点数坐标,如图所示:

image.png

(图片来源于https://blog.csdn.net/gusui7202/article/details/84799535


由上可以看到,由于偏移后的边界框与RoI区域,一般都是随机性的,所以划分为kxk个bin的时候不一定能够整除,如图所示:

image.png

(图片来源于https://blog.csdn.net/gusui7202/article/details/84799535


对于量化严重的RoIpool可能会进行如下所示的操作:

image.png

这样就会出现量化误差,RoIAlign所做的其实很简单,只是保持原有的分区不变,而对于浮点坐标只是进行双线性插值进行处理而已。使得可以对分区进行均匀区分。而在池化时,提取出每个区域的中心点,使用双线性插值就可以得到此时区域的值。9个Bin格,9个中心点,9个特征值。


而作者注意到,只要不执行量化,结果对精确的采样位置或采样多少点不敏感。所以,也就是,不需要对每个区域的中心值进行采样,其他位置也可以,关键就是要不进行量化操作即可。在作者原文中,就使用双线性插值计算每个RoI bin中四个规则采样位置的输入特征的精确值,并汇总结果(使用最大值或平均值),如图所示:

image.png

RoIAlign带来了很大的改进,这证明了对齐的关键作用。


3.5 Network Architecture

Mask R-CNN的结构为:

1)卷积主干架构用于整个图像的特征提取。

2)边界框识别(分类与回归)和掩码预测的网络头,分别应用于每个RoI。


结构如图所示:

image.png


3.6 Implementation Details

按照现有的Fast/Faster R-CNN工作设置超参数,虽然是为了目标检测而设置,但是对于实例分割中同样有用。


3.6.1 Training

image.png

3.6.2 Inference

在推断时,候选框对于C4主干网是300,而对于FPN是1000。然后在这些候选框上运行box预测分支(包含分类与回归),然后是非最大抑制处理。然后将掩码分支应用于最高得分的100个检测框(这不同于训练中使用的并行计算),掩码分支可以预测每个RoI的k kk个掩码,但是这里只使用第k kk个掩码,其中k kk是分类分支预测的类。然后将m×m浮点数掩码输出调整到RoI大小,并在0.5的阈值下进行二进制化。


4. Result


  • 实例分割效果:

image.png

  • 目标检测效果:

image.png


总结:


在Faster R-CNN的基础上进行了改进使得可以处理实例分割任务。提出了RoIAlign来替换掉RoIPool,使得处理检测任务性能更好。


所以,个人认为,Mask R-CNN作为一种新的目标检测算法,其实只是改进了RoIPool,进一步强调了对其的重要性。


目录
打赏
0
0
0
0
21
分享
相关文章
基于PSO粒子群优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真
本项目展示了基于PSO优化的CNN-LSTM-SAM网络时间序列预测算法。使用Matlab2022a开发,完整代码含中文注释及操作视频。算法结合卷积层提取局部特征、LSTM处理长期依赖、自注意力机制捕捉全局特征,通过粒子群优化提升预测精度。适用于金融市场、气象预报等领域,提供高效准确的预测结果。
基于WOA鲸鱼优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB 2022a实现时间序列预测,采用CNN-GRU-SAM网络结构,结合鲸鱼优化算法(WOA)优化网络参数。核心代码含操作视频,运行效果无水印。算法通过卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征,全连接层整合输出。数据预处理后,使用WOA迭代优化,最终输出最优预测结果。
基于GA遗传优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真
本项目使用MATLAB 2022a实现时间序列预测算法,完整程序无水印。核心代码包含详细中文注释和操作视频。算法基于CNN-LSTM-SAM网络,融合卷积层、LSTM层与自注意力机制,适用于金融市场、气象预报等领域。通过数据归一化、种群初始化、适应度计算及参数优化等步骤,有效处理非线性时间序列,输出精准预测结果。
论文精度笔记(四):《Sparse R-CNN: End-to-End Object Detection with Learnable Proposals》
Sparse R-CNN是一种端到端的目标检测方法,它通过使用一组可学习的稀疏提议框来避免传统目标检测中的密集候选框设计和多对一标签分配问题,同时省去了NMS后处理步骤,提高了检测效率。
98 0
论文精度笔记(四):《Sparse R-CNN: End-to-End Object Detection with Learnable Proposals》
基于WOA鲸鱼优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真
本内容介绍了一种基于CNN-LSTM-SAM网络与鲸鱼优化算法(WOA)的时间序列预测方法。算法运行于Matlab2022a,完整程序无水印并附带中文注释及操作视频。核心流程包括数据归一化、种群初始化、适应度计算及参数更新,最终输出最优网络参数完成预测。CNN层提取局部特征,LSTM层捕捉长期依赖关系,自注意力机制聚焦全局特性,全连接层整合特征输出结果,适用于复杂非线性时间序列预测任务。
基于GWO灰狼优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a,展示了时间序列预测算法的运行效果(无水印)。核心程序包含详细中文注释和操作视频。算法采用CNN-GRU-SAM网络,结合灰狼优化(GWO),通过卷积层提取局部特征、GRU处理长期依赖、自注意力机制捕捉全局特征,最终实现复杂非线性时间序列的高效预测。
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a实现时间序列预测,采用CNN-GRU-SAM网络结构。卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征。完整代码含中文注释和操作视频,运行效果无水印展示。算法通过数据归一化、种群初始化、适应度计算、个体更新等步骤优化网络参数,最终输出预测结果。适用于金融市场、气象预报等领域。
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
基于PSO粒子群优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目展示了基于PSO优化的CNN-GRU-SAM网络在时间序列预测中的应用。算法通过卷积层、GRU层、自注意力机制层提取特征,结合粒子群优化提升预测准确性。完整程序运行效果无水印,提供Matlab2022a版本代码,含详细中文注释和操作视频。适用于金融市场、气象预报等领域,有效处理非线性数据,提高预测稳定性和效率。
基于贝叶斯优化CNN-GRU网络的数据分类识别算法matlab仿真
本项目展示了使用MATLAB2022a实现的贝叶斯优化、CNN和GRU算法优化效果。优化前后对比显著,完整代码附带中文注释及操作视频。贝叶斯优化适用于黑盒函数,CNN用于时间序列特征提取,GRU改进了RNN的长序列处理能力。
轻量级网络论文精度笔(一):《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》
《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》这篇论文提出了一种基于YOLOv3-Tiny的轻量级目标检测模型Micro-YOLO,通过渐进式通道剪枝和轻量级卷积层,显著减少了参数数量和计算成本,同时保持了较高的检测性能。
148 2
轻量级网络论文精度笔(一):《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等