Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

掩饰的基于区域的卷积神经网络

Mask R-CNN是一个概念上简单,灵活和通用的对象实例分割框架。 该方法能够高效地检测图像中的对象,同时为每个实例生成高质量的分割蒙版。 这种方法通过添加一个用于预测对象蒙版的分支来扩展R-CNN使之更快,该分支与现有的用于边界框识别的分支并行。

简介

Mask R-CNN 扩展自 Faster R-CNN。Faster R-CNN 是一个流行的目标检测框架,Mask R-CNN 将其扩展为实例分割框架。Mask R-CNN很容易实现和训练,因为它提供了Faster R-CNN框架,它为各种灵活的架构设计提供了便利。此外,Mask分支只增加了一个很小的计算开销,支持快速的系统和快速的实验。

Mask R-CNN是一个实例分割(Instance segmentation)算法,可以用来做“目标检测”、“目标实例分割”、“目标关键点检测”。它也可以增加不同的分支完成不同的任务,可以完成目标分类、目标检测、语义分割、实例分割、人体姿势识别等多种任务,如图所示:

image.pngimage.png1) 目标检测,直接在结果图上绘制了目标框(bounding box)。

2) 目标分类,对于每一个目标,需要找到对应的类别(class),区分到底是人,是车,还是其他类别。

3) 像素级目标分割,在每个目标中,需要在像素层面区分,什么是前景,什么是背景。

Mask R-CNN 主要由4个模块构建而成:

  1. 主体架构
  2. 区域建议网络(RPN)
  3. ROI 分类器和边界框回归器
  4. 分割掩码
  • 主体架构

如图是这是一个标准的卷积神经网络(通常来说是 ResNet50 和 ResNet101),作为特征提取器。底层检测的是低级特征(边缘和角等),较高层检测的是更高级的特征(汽车、人、天空等)。

经过主干网络的前向传播,图像从 1024x1024x3(RGB)的张量被转换成形状为 32x32x2048 的特征图。该特征图将作为下一个阶段的输入。

  • image.png

该主干网络经过如下图所示的特征金字塔网络(FPN)进行扩展,可以在多个尺度上更好地表征目标。

image.png

FPN 通过添加第二个金字塔提升了标准特征提取金字塔的性能,第二个金字塔可以从第一个金字塔选择高级特征并传递到底层上。通过这个过程,它允许每一级的特征都可以和高级、低级特征互相结合。因此,Mask R-CNN 使用的是 ResNet101+FPN 主干网络。

  • 区域建议网络(RPN)

RPN 是一个轻量的神经网络,它用滑动窗口来扫描图像,并寻找存在目标的区域。RPN 扫描的区域被称为 anchor,是在图像区域上分布的矩形。在不同的尺寸和长宽比下,图像上会有将近 20 万个 anchor,并且它们互相重叠以尽可能地覆盖图像。

RPN 扫描这些 anchor 的速度非常快。滑动窗口是由 RPN 的卷积过程实现的,可以使用 GPU 并行地扫描所有区域。此外,RPN 并不会直接扫描图像,而是扫描主干特征图。这使得 RPN 可以有效地复用提取的特征,并避免重复计算。通过这些优化手段,RPN 可以在 10ms 内完成扫描。在 Mask R-CNN 中,通常使用的是更高分辨率的图像以及更多的锚点(anchor),因此扫描过程可能会更久。

RPN 为每个锚点(anchor)生成两个输出:

  1. 锚点(anchor)类别:前景或背景(FG/BG)。前景类别意味着可能存在一个目标在 anchor box 中。
  2. 边框精调:前景 anchor可能并没有完美地位于目标的中心。因此,RPN 评估了 delta 输出(x、y、宽、高的变化百分数)以精调 anchor box 来更好地拟合目标。

image.png

通过 RPN 的预测可以选出最好地包含了目标的 anchor,并对其位置和尺寸进行精调。如果有多个 anchor 互相重叠,它将保留拥有最高前景分数的 anchor,并舍弃余下的。然后得到最终的区域建议,并将其传递到下一个阶段。

  • ROI 分类器和边界框回归器

这个阶段是在由 RPN 提出的 ROI 上运行的。正如 RPN 一样,它为每个 ROI 生成了两个输出:

  1. 类别:ROI 中的目标的类别。和 RPN 不同(两个类别,前景或背景),这个网络更深并且可以将区域分类为具体的类别(人、车、椅子等)。
  2. 边框精调:和 RPN 的原理类似,它的目标是进一步精调边框的位置和尺寸以将目标封装。

然而分类器并不能很好地处理多种输入尺寸。它们通常只能处理固定的输入尺寸。但是,由于 RPN 中的边框精调步骤,ROI 框可以有不同的尺寸。因此,我们需要用 ROI 池化来解决这个问题。

image.png ROI 池化是指裁剪出特征图的一部分,然后将其重新调整为固定的尺寸。这个过程实际上和裁剪图片并将其缩放是相似的。它使用 TensorFlow 的 crop_and_resize 函数来实现这个过程。

  • 分割掩码

经过以上三点可以得到的一个用于目标检测的 Faster R-CNN。分割掩码网络是 Mask R-CNN 的引入的附加网络。

image.png

掩码分支是一个卷积网络,取 ROI 分类器选择的正区域为输入,并生成它们的掩码。其生成的掩码是低分辨率的:28x28 像素。但它们是由浮点数表示的软掩码,相对于二进制掩码有更多的细节。掩码的小尺寸属性有助于保持掩码分支网络的轻量性。在训练过程中,将真实的掩码缩小为 28x28 来计算损失函数,在推断过程中,将预测的掩码放大为 ROI 边框的尺寸以给出最终的掩码结果,每个目标有一个掩码。

描述来源:

He, K., Gkioxari, G., Dollár, P., & Girshick, R. (2017, October). Mask r-cnn. In Computer Vision (ICCV), 2017 IEEE International Conference on (pp. 2980-2988). IEEE.

发展历史

描述

2014年,Girshick, R., Donahue, J., Darrell, T., & Malik, J. 提出R-CNN,将CNN用于对象检测。目标是分析图像,并正确识别图像中主要对象,通过边界框标出对象的具体位置。

但R-CNN网络的性能很好,但是实际上训练起来很慢,主要原因是:

1.单个图像的每个区域建议都需要利用AlexNet网络进行判断,每次判断大约需要2000次前向传播。

2.此网络必须单独训练三种不同的模型:提取图像特征的CNN网络,判断类别的分类器和缩小边框的回归模型。这样子很难训练这些网络。

因此2015年,R-CNN的创立者Ross Girshick解决了这两个问题,发明了新的网络Fast R-CNN。

即使Fast R-CNN的性能有了很大的改善,但是仍然存在一个短板 -- 区域建议生成方式(region proposer)。为了检测图像中对象位置,第一步是要产生一系列随机多尺度的边界框或是待测试的感兴趣区域。在Fast R-CNN中,通过选择性搜索方法创建这些区域,这是一个相当缓慢的过程,被认为是整个流程的短板。

因此在2015年至2016年,Ren, S., He, K., Girshick, R., & Sun, J. 提出了Faster R-CNN,几乎把边框生成过程的运算量降为0。

2017年,He, K., Gkioxari, G., Dollár, P., & Girshick, R. 提出了Mask R-CNN,扩展Faster R-CNN用于像素级分割。

主要事件

年份事件相关论文/Reference
2014Girshick, R., Donahue, J., Darrell, T., & Malik, J. 提出R-CNN,将CNN用于对象检测。Girshick, R., Donahue, J., Darrell, T., & Malik, J. (2014). Rich feature hierarchies for accurate object detection and semantic segmentation. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 580-587).
2015Ross Girshick发明了新的网络Fast R-CNN。Girshick, R. (2015). Fast r-cnn. In Proceedings of the IEEE international conference on computer vision (pp. 1440-1448).
2015 - 2016Ren, S., He, K., Girshick, R., & Sun, J. 提出了Faster R-CNN。Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster r-cnn: Towards real-time object detection with region proposal networks. In Advances in neural information processing systems (pp. 91-99).
2017He, K., Gkioxari, G., Dollár, P., & Girshick, R. 提出了Mask R-CNN。He, K., Gkioxari, G., Dollár, P., & Girshick, R. (2017, October). Mask r-cnn. In Computer Vision (ICCV), 2017 IEEE International Conference on (pp. 2980-2988). IEEE.

发展分析

瓶颈

He, K., Gkioxari, G., Dollár, P., & Girshick, R.指出Mask R-CNN的模型没有对速度进行优化,在训练时候会很慢,而且对同样的ROI使用同一个ROI align没有分开使用ROI align训练速度快。

同时在Mask R-CNN的基本架构Faster R-CNN中送给ROI align的候选区域数量很多,一般有100-300不等,这样其实需要学习的分割图数量上是很大的,所以导致分割分支不容易学到。而且在正常的Faster R-CNN测试流程中,真正输出的候选框是经过nms与分数过滤的,剩下的会很少。同时,在Mask R-CNN中,输出结果是以检测的结果为基准,在检测的结果内部给出该区域的分割结果。因此,真正需要进行像素级别语义分割的区域仅仅是检测最终结果的窗口内部区域,通常占roi区域不到十分之一或更少。

未来发展方向

Mask R-CNN预期达到的目标

  • 高速 
  • 高准确率(高的分类准确率、高的检测准确率、高的实例分割准确率) 
  • 简单直观 易于使用

Contributor: Tiange Wang 

简介