当前位置 : 主页 > 编程语言 > java >

实例分割综述(单阶段/两阶段/实时分割算法汇总)

来源:互联网 收集:自由互联 发布时间:2022-10-15
简介 目标检测或定位是数字图像从粗到细的一个渐进过程。它不仅提供了图像对象的类,还提供了已分类图像中对象的位置。位置以边框或中心的形式给出。语义分割通过对输入图像中


简介

目标检测或定位是数字图像从粗到细的一个渐进过程。它不仅提供了图像对象的类,还提供了已分类图像中对象的位置。位置以边框或中心的形式给出。语义分割通过对输入图像中每个像素的标签进行预测,给出了较好的推理。每个像素都根据其所在的对象类进行标记。为了进一步发展,实例分割为属于同一类的对象的单独实例提供了不同的标签。因此,实例分割可以定义为同时解决目标检测问题和语义分割问题的技术。本文对实例分割的背景、存在的问题、技术、发展、流行的数据集、相关工作以及未来的发展进行了讨论。本文为想在实例分割领域进行研究的人们提供了有价值的信息。

背景

分类可被定义为预测图像中一个对象的类别,或根据其分类分数提供图像中对象的类别列表。目标检测或定位是一个从粗推理到精推理的渐进过程,它不仅提供了图像目标的类别,还以边界框或中心的形式给出了分类后的图像目标的位置。语义分割的目的是通过对图像中每个像素点的标签进行预测,得到精确的推理结果。每个像素都根据其所在的对象或区域进行分类标记。按照这个方向,实例分割为属于同一对象类的不同对象实例提供了不同的标签。因此,实例分割可以定义为寻找目标检测的任务同时解决语义分割。将每个分割后的对象分解为各自的子成分。下图描述了图像分割的演变过程。

实例分割综述(单阶段/两阶段/实时分割算法汇总)_卷积

问题

语义分割的思想是开发一种在分割精度和分割效率两个方面都表现良好的技术/算法。更好的分割精度包括精确的定位和识别物体的图像/框架,结果分类在实际场景相关的各种各样的对象可以区分,属于同一类的对象的实例受类内外观变化的影响,可能被局部化和识别(即更好的鲁棒性)。更好的分割效率是指分割算法的计算量。它指的是有效的实时计算成本(如可接受的内存/存储需求),以及对处理器的较小负担。

小对象的实例分割仍然是一个问题。CNN按层次计算特征,因此在默认情况下,特征层中的下采样层会形成一个内建的多尺度金字塔,进而生成不同分辨率的特征图。这会导致一些问题。例如,CNN层越深,接受域越广,对位姿、变形、光照等变化的鲁棒性越强,但分辨率越低,细节丢失。相对而言,较低的CNN层接收域较窄,细节更丰富,但分辨率更高,对语义的敏感性更低。对象的语义属性出现在不同的层中,而这些层又取决于对象的大小。因此,如果一个物体很小,它的细节在浅的CNN层中会更少,同样的细节在较高的层中几乎会消失。这个问题使得小对象检测非常具有挑战性。各种各样的技术已经被提出来解决这个问题,例如带孔卷积和提高特征的分辨率。然而,这些技术导致更高的计算复杂度。此外,如果对象很大,那么它的语义概念将在更高的层中得到反映。许多技术已经被开发出来,通过使用不同的CNN层来提高检测精度。

几何变换的处理问题。就几何变换而言,DCNNs本质上不能是空间不变的。DCNN层中的局部最大池化使网络具有某种程度的平移不变性。尽管如此,特征的中间映射实际上并不是变换不变的。

处理图像退化也是一个问题。现实图像中的噪声是一个问题。这通常是由照明问题、相机质量差、图像压缩等引起的。虽然低质量的图像往往降低其识别,ImageNet、Microsoft COCO、PASCAL VOC等图像数据库都使用高质量的图像,这就证明了这一点。

实例分割

实例分割已成为机器视觉研究中比较重要、复杂和具有挑战性的领域之一。为了预测对象类标签和特定于像素的对象实例掩码,它对各种图像中出现的对象实例的不同类进行本地化。实例分割的目的主要是帮助机器人,自动驾驶,监视等。

实例分割技术

Mask proposal分类

实例分割综述(单阶段/两阶段/实时分割算法汇总)_3d_02

如图所示. 掩模建议技术分类的一般框架

在深度学习流行之前,之前的技术依赖于自下而上的生成mask proposal。随后,被具有更高效结构的新技术所取代,如RCNN。尽管RCNN在分割精度上有一定的提高,但训练是一个基于多阶段的管道,这是缓慢的,很难优化,因为训练每个阶段需要分开。在CNN的每张图像中,每个方案都需要提取特征,这就分别导致了存储、时间和检测尺度的问题。测试也很慢,因为需要提取CNN的特征。随后,又出现了Fast RCNN和Faster RCNN,解决了它的问题。

1.先检测,然后分割

实例分割的流行方法包括使用一个边界框来检测对象,然后是对象框分割。下图展示了此类技术的一般框架。

实例分割综述(单阶段/两阶段/实时分割算法汇总)_目标检测_03

基于掩模的技术

在这方面最成功的技术之一是Mask RCNN。使用相对简单的Mask predictor扩展了更快的R-CNN检测算法。Mask RCNN易于训练,具有更好的泛化能力,只会给更快的R-CNN增加很小的计算开销。前者运行速度为5帧/秒。基于Mask R-CNN的实例分割方法在最近的实例分割挑战中显示了良好的结果。

其它技术(检测物体边界框)

滑动窗口技术

基于区域的技术

2.标记像素,然后聚类

对图像的每个像素进行分类标记。接下来是使用聚类算法将像素分组到对象实例中。下图显示了一般框架。

实例分割综述(单阶段/两阶段/实时分割算法汇总)_3d_04

该方法受益于语义分割,可以预测高分辨率的对象掩模。与分割检测跟踪技术相比,标签像素跟踪聚类方法在经常使用的基准上精度较低。由于像素标记需要密集的计算,通常需要更多的计算能力。

3.密集滑动窗口法

这类技术的一般框架如下图所示:

实例分割综述(单阶段/两阶段/实时分割算法汇总)_目标检测_05

张量掩模

与DeepMask和InstanceFCN不同,TensorMask涉及对多个类的分类,这是与预测mask并行完成的。这个特性对于实例分割非常有用。下表给出了值得注意的方法的分类。

实例分割综述(单阶段/两阶段/实时分割算法汇总)_目标检测_06

接下来说一说实例分割的演变

前面你说到实例分割不是一个孤立的任务,有目标检测和语义分割发展而来,时间轴如下图所示:

实例分割综述(单阶段/两阶段/实时分割算法汇总)_3d_07

RCNN:

实例分割综述(单阶段/两阶段/实时分割算法汇总)_目标检测_08

RCNN集成了AlexNet和使用选择性搜索技术的区域方案。RCNN模型的训练包括以下步骤。第一步涉及计算使用选择性搜索获得的类不可知区域建议。下一步是CNN模型微调,包括使用区域建议微调预先训练的CNN模型,如AlexNet。接下来,利用CNN提取的特征来训练一组类特异性支持向量机(SVM)分类器,该分类器取代了通过微调学习的softmax分类器。然后使用CNN获得的特征对每个对象类进行类特异性边界盒回归训练。

虽然RCNN取得了较高的目标检测质量,但它也存在一些明显的缺陷。例如,多阶段的训练是缓慢和困难的,因为每个阶段都必须单独训练。另外,分别训练SVM分类器和BBox回归器需要更多的资源和时间。最后,测试速度很慢,因为在没有共享计算的情况下,每个测试图像中的每个对象提案都需要从CNN中提取特征。

RCNN的这些问题激发了其他技术的发展,这导致了改进的检测框架的诞生,例如快速RCNN和更快的RCNN。

Fast RCNN

实例分割综述(单阶段/两阶段/实时分割算法汇总)_3d_09

Fast RCNN解决了RCNN的一些问题,从而提高了目标检测能力。Fast RCNN使用检测器的端到端训练。它通过同时学习softmax分类器和类特定的BBox回归简化了训练过程,而不是像RCNN那样单独训练模型的各个组件。快速RCNN共享区域方案的卷积计算,然后在最后一个卷积层和第一个全连接层之间添加一个ROI池化层,提取每个区域方案的特征。聚类利用特征层扭曲的概念来实现图像层扭曲。将ROI池化层特征分解为一组全连通层,最后分解为目标类别预测软最大概率和类别建议精细化偏移量两层。与RCNN相比,Fast RCNN在很大程度上提高了效率,训练速度提高了3倍,测试速度提高了10倍。

Faster RCNN

实例分割综述(单阶段/两阶段/实时分割算法汇总)_卷积_10

虽然Fast RCNN显著提高了检测速度,但它仍然依赖于外部区域建议,计算是Fast RCNN的速度瓶颈。此时,CNNs在卷积层中具有目标定位能力,而在全连接层中这种能力会减弱。因此,用CNN代替选择性搜索产生区域建议是可行的。Faster RCNN有区域建议网络(Region Proposal Network, RPN)用于生成区域建议,高效准确。采用相同的骨干网,从最后一个共享的卷积层中提取特征,完成RPN的区域划分和快速RCNN的区域分类。

Mask R-CNN

实例分割综述(单阶段/两阶段/实时分割算法汇总)_卷积_11

Mask R-CNN,一个相对简单和灵活的实例分割模型。该模型通过目标检测进行了实例分割,同时生成了高质量的掩模。通常,Faster R-CNN有一个用于识别物体边界框的分支。Mask R-CNN并行添加了一个对象蒙版预测分支作为改进。使用FPN主干的head架构如图所示。

实例分割综述(单阶段/两阶段/实时分割算法汇总)_3d_12

MaskLab

MaskLab改进了Faster R-CNN,并产生两个额外的输出,即语义分割和实例中心方向。Faster R-CNN给出的预测框将具有不同尺度的对象实例带入一个标准尺度,然后MaskLab在每个预测框内同时使用语义分割和方向预测进行前景和背景分割。为了区分不同语义类别的对象,采用了对分类数据进行像素级编码的语义分割预测方法。该技术消除了重复的背景编码。此外,方向预测还被用于具有共同语义标签的对象实例的分离。

Non-local Neural Networks

这个非局部神经网络可以说是图像里面Attention的鼻祖,它是第一篇把注意力机制应用到图像领域,随后就有了大家熟悉的SENet,SKNet,GCNet,Residual Attention Network, CAM, BAM等等。

实例分割综述(单阶段/两阶段/实时分割算法汇总)_目标检测_13

非局部意味着是一种滤波技术,它计算图像中所有像素的加权平均值。在这样做的时候,它允许在一个基于路径外观相似度的位置上,远距离像素对滤波响应做出贡献。这一想法是由块匹配3D (BM3D) (Block-matching 3D)相继发展起来的。长期依赖已通过图形模型来建模,例如条件随机场(CRF)。CRF中的平均场推理可以转化为递归网络,然后可以进行训练。与机器翻译中使用的自我注意方法有关。自我关注胶囊通过观察所有位置,然后在嵌入空间内取其加权平均值,计算出序列中某个位置的响应。自注意可以看作是一种非局部均值,因此可以将机器翻译中的自注意与机器视觉中适用于图像和视频问题的一般非局部过滤操作联系起来。

路径聚合网络(PANet)

提出了一种用于实例分割任务的基于框架,旨在提高信息的流动。改进了深层网络的特征层次,在底层使用与定位相关的特定信号。这个过程称为自底向上路径增强。它使得底层和深层网络顶层特征之间的信息路径更短。还提出了一种被称为自适应特性池的技术,它将特征网格和所有层次的特征联系起来。由于这种技术,在每一级特征的相关信息流到后续子网络用于产生建议。一个备用的分支段捕获各种提议视图,以增强生成掩码的预测。

实例分割综述(单阶段/两阶段/实时分割算法汇总)_3d_14

混合任务级联

最佳级联实例分割的关键是最大限度地利用对象检测和对象实例分割之间的反向关系。混合任务级联或HTC与传统级联在两个重要方面有所不同。首先,HTC并没有对这两个任务进行层叠处理,而是以组合的方式分多个阶段进行处理。其次,它使用一个完全卷积的片段来提供空间上下文。这有助于区分前景和嘈杂的背景。作者称,HTC能够学习更多有用的功能,通过整合功能,这些功能是互补的,逐步与每个阶段。

实例分割综述(单阶段/两阶段/实时分割算法汇总)_目标检测_15

GCNet

实例分割综述(单阶段/两阶段/实时分割算法汇总)_3d_16

由非局部网络建模的全局上下文对于整个图像的不同查询位置几乎是相同的。利用这一发现创建了一个基于独立查询公式的简单网络。提出的网络保持了非局部网络的准确性,但用更少的计算开销。GCNet的设计在结构上类似于挤压激发网络(SENet)。用一个三步的通用模型来建模全球上下文。在通用模型内部,已经设计了一个更有效的实例化,称为全局上下文(GC)块。该块是轻量级的,能够高效地建模全局上下文。轻量级的事实允许设计者在网络的多个层之间应用它,从而构建一个全局上下文网络(GCNet)。

Mask Scoring R-CNN

在Mask R-CNN上增加了一个额外的Mask Head模块,学习Mask-iou一致的Mask分数。Mask R-CNN与MaskIoU Head结合,结合实例特征和预测的Mask。这种安排用于预测输入掩模和ground truth掩模之间的损失。图下显示了Mask Scoring R-CNN架构。

实例分割综述(单阶段/两阶段/实时分割算法汇总)_目标检测_17

在COCO dataset数据集上的实验比较结果:

实例分割综述(单阶段/两阶段/实时分割算法汇总)_目标检测_18

总结

本文对实例分割进行了概述。图像分割从粗推理发展到细推理。随着计算能力和研究能力的提高,这种演变已经发展到实例分割,并将继续下去。本文讨论了重要的实例分割问题。从整体和个别的角度讨论了用于实例分割的各种技术。讨论了它们的分类、优缺点。讨论了实例分割中常用的数据集及实验结果。实例分割也是图像分割前沿的研究方向,任务更具有挑战性,天池大赛也有实例分割的赛题,现在已经进行到赛季2了,还有一些新的任务,比如视频全景分割更是很前沿和挑战的任务。


实例分割综述(单阶段/两阶段/实时分割算法汇总)_卷积_19

网友评论