关于程序员:两阶段目标检测指南RCNNFPNMask-RCNN

50次阅读

共计 6642 个字符,预计需要花费 17 分钟才能阅读完成。

动动发财的小手,点个赞吧!

Source

多阶段(Two-stage)物体检测

计算机视觉中最根本和最宽泛钻研的挑战之一是指标检测。该工作旨在在给定图像中绘制多个对象边界框,这在包含主动驾驶在内的许多畛域十分重要。通常,这些指标检测算法能够分为两类:单阶段模型和多阶段模型。在这篇文章中,咱们将通过回顾该畛域一些最重要的论文,深入探讨用于对象检测的多阶段管道的要害见解。

物体检测器的一个分支是基于多阶段模型。源自 R-CNN 的工作,一个模型用于提取对象区域,第二个模型用于分类并进一步细化对象的定位。家喻户晓,此类办法绝对较慢,但十分弱小,但最近的停顿(例如共享特色)改良了 2 级检测器,使其具备与单级检测器类似的计算成本。这些工作高度依赖于以前的工作,并且大多建设在以前的管道作为基线的根底上。因而,理解两级检测器中的所有次要算法十分重要。

这篇文章的论文抉择次要基于考察。

R-CNN

2014 年的论文提出了基于 CNN 的两阶段检测算法的奢侈版本,该算法在以下论文中失去了改良和减速。如上图所述,整个流水线由三个阶段组成:

  1. 生成区域倡议:模型必须在图像中绘制候选对象,独立于类别。
  2. 第二阶段是一个全卷积神经网络,计算每个候选区域的特色。
  3. 最初阶段是全连贯层,在论文中示意为 SVM。

Region proposals 能够应用多种办法生成,本文抉择应用 selective search 来与之前的工作进行比拟。尽管如此,该管道仍与大多数区域提案办法兼容。此处和本演示文稿中提供了选择性搜寻的具体阐明。

为了总结选择性搜寻,将宰割算法利用于图像,并依据宰割图绘制区域倡议(边界框)。宰割图被迭代合并,更大的区域倡议从细化的地图中提取,如下图所示。此处具体阐明了合并和框绘制的工作原理。

第二阶段和第三阶段一起能够看作是解决裁剪区域提案的传统 CNN。该论文应用 AlexNet 的卷积局部作为第二阶段,而能够应用任何其余 CNN 架构。因为区域倡议的大小不同,本文采纳最奢侈的形式将所有边界框变形并调整为所需大小。

作者还应用经过训练的边界框分类器来进一步细化通过宰割进行的边界框预计。另一个齐全连贯的网络被训练为输出特色图和回归边界框偏移量在 4 个元组 (r, c, h, w) 中示意绝对平移和对数尺度宽度 / 高度缩放因子。该技术在 R-CNN BB 的融化钻研中显示出性能晋升。

为了回绝推理中的重叠区域提议,其中两个或多个边界框指向同一个对象,作者提出了一种贪心算法,如果该区域与另一个具备更有信念的预测。

因为图像的域更改为扭曲窗口的图像,因而分类器模型在扭曲图像和新标签上进一步训练。在训练分类器时,与地面实况 (GT) 框具备 >0.5 IoU 的区域被认为是该类别,并被训练为输入 GT 框的类别。当该框与任何 GT 框没有显着重叠时,或者当该区域与每个框的 IoU <0.5 时,分类器必须将该区域分类为背景类。为了解决潜在的类不均衡问题,抉择了 32 个正区域和 96 个背景区域来造成大小为 128 的小批量。

当 IoU >0.5 的区域被认为齐全重叠时,本文认为 0.3<IoU<0.5 的区域局部重叠。这些案例通过提供背景和 GT 框类的混合标签进行非凡解决。

与其余办法相比,R-CNN 的性能劣势来自执行自下而上款式选择性搜寻的想法,也应用 CNN 来定位对象,以及用于在对象检测数据上微调网络的技术。这项工作联合了经典 CV 和深度学习的工作,以改良指标检测。然而 R-CNN 十分耗时,因为它将 CNN 利用于大概 2,000 个扭曲的选择性搜寻区域。

  • 总结
  1. 为 2 阶段指标检测提出基线管道:生成区域倡议并对其进行分类。
  2. 应用选择性搜寻生成区域提议
  3. 分类网络调整区域提案的大小并预测类别概率(包含背景)和边界框细化。

SPP-Net

该论文倡议应用空间金字塔池 (SPP) 层,该层旨在实用于任何图像大小,而无需将它们调整为固定大小,这可能会导致信息失落和图像失真。卷积,在 CNN 中被形容为特征提取器,并不是限度固定输出大小的卷积,而是输出大小限度是因为齐全连贯的分类层。

因而,作者提出了一个非凡的池化层,将不同大小的特色进行变换,并将其馈送到全连贯层,以打消网络的固定大小束缚,如上图所述。

基本上,SPP 层利用最大池化各种比例的输入,与图像大小成比例。SPP 层应用大小与图像大小成比例的空间箱,容许将任何形态的图像映射到繁多大小。每个空间 bin 最大池化其区域中的值,并且能够通过此过程保留空间信息。下图对此进行了形容。每个过滤器都应用笼罩肯定比例图像的不同大小的池化进行解决,并将后果连接起来。256 是特色图中过滤器的数量。

尽管 SPP 层不是作者提出的,但他们首先思考在 CNN 中应用 SPP 层。SPP 具备以下属性:

  1. 无论输出大小如何,都生成固定长度的输入
  2. 已知对物体变形(正则化)具备鲁棒性
  3. 能够从各种尺度(分辨率)中提取信息

该论文侧重于图像分类,并展现了对象检测的后果作为泛化性能的证实,但在利用于对象检测时具备一些不同于 R-CNN 算法的乏味个性。

SPP-Net 的指标检测流水线如上图所示。CNN 在残缺图像上执行一次,并依据选择性搜寻检测到的区域裁剪 CNN 的输入特色。SPP 利用于每个作物,并依据 SPP 层的输入预测类别。这样,卷积层仅利用于图像一次,并且仅利用与检测到的区域数量绝对应的较轻的 FC 层。

卷积特色检测器在图像分类工作上进行了预训练,而不是在对象检测上进行进一步训练。分类器 FC 层是依据地面实况窗口独自训练的。尺度不变性是通过两种办法对图像进行预处理来实现的,如本文所述。在对 FC 网络进行微调时,也利用了 R-CNN 的许多技术。

这篇论文的奉献真的很惊人,因为它缩小了几个数量级的训练和推理工夫,同时因为不用调整图像大小和扭曲图像甚至进步了性能。然而,我狐疑在图像分类上训练的特色图是否真的蕴含裁剪图像的空间信息。这在应用深度神经网络时可能是一个大问题,因为承受大小会很大,因而可能会限度 SPP-Net 管道应用更深的特征提取器。其余一些损失可用于在对象检测数据集上一起微调特征提取器。

  • 概括
  1. 倡议利用空间金字塔池来为任意输出大小输入固定长度的特色。
  2. 改良训练 / 推理过程以缩小 # forward passes 从每个区域的一次传递(每张图像约 2,000 个区域)到整个图像的一次前向传递。

Fast R-CNN

以前的指标检测算法,即 R-CNN 通常别离学习定位和分类阶段,这使得训练老本更高。此外,这些算法在测试时十分慢,妨碍了实时应用程序。Fast R-CNN 联结学习检测对象的空间地位并对它们进行分类。

R-CNN 很慢,因为对每个对象提议都进行了前向传递。尽管 SPP-Nets 的确解决了这个问题并在测试时将 R-CNN 减速了 100 倍,但训练是一个多阶段过程,须要许多密集计算步骤,与 R-CNN 相比仅减速了 3 倍。此外,固定的卷积层对网络的准确性造成了限度。

上图阐明了 Fast R-CNN 管道。CNN 解决图像并依据对象提议裁剪特色图。而后,感兴趣区域 (RoI) 池化层提取固定长度的向量,而后通过全连贯网络对其进行解决,以预测类别概率并细化边界框。

RoI 池化层是 SPP 层的一个特例,具备一个金字塔层级。h × w RoI 窗口被划分为大小为 h/H × w/W 的 H × W 网格,最大池化利用于每个网格单元。输入始终是 H × W 形态的向量。Fast R-CNN 流程与 SPP-Net 管道十分类似,只是稍作批改。

以前在 SPP-Nets 中,通过卷积层反向流传效率低下,因为感触野可能逾越整个图像,这十分大。Fast R-CNN 通过同时从一张图像中训练多个 RoI 样本作为小批量来解决这个问题。这些特色能够在训练期间共享,从而放慢训练速度并罢黜缓存特色。这个技巧被称为分层抽样。此外,Fast R-CNN 通过多任务损失联结优化分类器和边界框回归器,而不是独自训练。

还对 R-CNN 算法进行了一些额定的改良。例如,Fast R-CNN 应用持重的 L1 损失而不是 L2 损失进行回归。超参数也有批改。该论文还联合了 R-CNN 和 SPP-Net 的技术。论文中提供了具体的解释。Fast R-CNN 可能达到 S.O.T.A 精度,同时在训练和测试中都快了几个数量级。

  • 概括
  1. 将 SPP 批改为 RoI 池化
  2. 通过从一张图像中采样多个补丁来进行高效训练 -> 仅在卷积层上进行一次前向 / 反向传递。
  3. -> 通过反向流传启用卷积特征提取器的训练

Faster R-CNN

论文指出,指标提议阶段是实时指标检测的计算瓶颈。作为一种解决方案,Faster R-CNN 实现了与特征提取器网络共享卷积层的区域提议网络 (RPN),从而引入了计算对象提议的边际老本。管道与 Fast R-CNN 统一,只是对象提议是通过外部训练的 RPN 进行的,如下图所示。

RPN 模型接管由特征提取器计算的特色图,并通过在特色图上滑动一个小的 CNN 来输入一个对象倡议列表。在每个滑动窗口地位,网络预测 k 个参考框(锚点)的对象倡议,每个对象倡议由 4 个坐标和一个预计对象概率的分数组成。RPN 模型如下图所示。

RPN 模型与 Fast R-CNN 分类管道离开训练。Fast R-CNN 模型的训练与原始过程相似,包含以图像为核心的采样策略。一个区别是能够确定 RoI 大小而不是任意大小。因而,k 个边界框回归器,每个负责改良相应锚点类型的回归器都被训练,受害于锚点设计。

在训练 RPN 模型时,基于与地面实况边界框的 IoU,为每个锚点调配一个二进制标签。依据与实在框的 IoU,标签能够是正的、负的或中性的。RPN 模型在分数和坐标预计上进行训练。本文探讨了通过梯度降落联结训练两个模型的三种形式。该论文应用代替训练来训练网络,其中首先训练 RPN,而后应用在此过程中计算的倡议来训练 Fast R-CNN。

  • 概括
  1. 代替迟缓的选择性搜寻,提出 RPN 来训练边界框提议过程。
  2. RPN 模型预测对象在锚点上的概率、地位。
  3. 比拟各种训练方法,以便将 RPN 模型与原始的基于区域的检测网络一起无效训练。

特色金字塔网络 (FPN)

特色化图像金字塔(图 a)提供多尺度特色示意,通过反对尺度不变性能够不便地进行对象检测。该模型必须可能检测图像中物体的所有尺度,扭转金字塔的层数能够很容易地对消物体的尺度方差。但它显然须要相当长的工夫来计算多层次的特色,并且没有用于 Fast/Faster R-CNN 等管道(图 b)。

卷积神经网络实质上计算多尺度特色示意,因为每一层分层计算不同分辨率的特色图。然而,以前利用 CNN 的档次属性制作具备较小计算量的特色化图像金字塔的工作(图 c)是不残缺的。映射 CNN 两头特色的问题是特色依据网络的深度天然地传播不同的语义。为了充分利用 CNN 进行多尺度特色示意,重要的是这些层在所有尺度上都具备强语义。

FPN 旨在为高分辨率特色提供丰盛的语义,是一种相似 U-Net 的架构。自下而上的门路(红色)是前馈 CNN。每个分辨率示意为一个阶段,并且为每个阶段定义一个金字塔级别。自上而下的门路(蓝色)通过对来自更高金字塔级别的语义更强的特色图进行上采样来产生更高分辨率的特色。直观上,更多的操作能够加强任意尺度特色图的语义,提供丰盛的多尺度特色。应用通过横向连贯投射的自下而上门路的特色进一步加强了这些特色。

FPN 管道为生成具备丰盛语义内容的多尺度特色图提供了通用解决方案。当利用于 Faster R-CNN 对象检测流水线时,FPN 架构既实用于生成边界框倡议的 RPN 网络,也实用于 Fast R-CNN 基于区域的分类器骨干。通过替换骨干网络并提供 FPN 输入而不是单个特色图,FPN 被采纳到 RPN。在利用锚点时,咱们在金字塔输出的不同档次上利用锚点的每个尺度。例如 {32² , 64² , 128² , 256² , 512²} 大小的锚点,每个用于特色图 {P2, P3, P4, P5, P6}。Faster R-CNN 检测网络应用于特色图列表之一,依据边界框的大小确定。

  • 概括
  1. 提出新的 FPN 网络架构来计算语义丰盛的多尺度特色示意。
  2. 应用 CNN 的中间层作为多尺度特色和图像金字塔,并应用这些特色训练 RPN 和骨干网络。

Mask R-CNN

Mask R-CNN 的提出是为了解决一个略微不同的实例宰割问题。简而言之,这个问题是对象检测和语义宰割的联合。如上所示,该工作旨在生成划分对象的像素级边界。

Mask R-CNN 基于 Faster R-CNN 流水线,但每个对象提议有三个输入,而不是两个。附加分支预测 K(# classes) 个二进制对象掩码,用于宰割图像中每个类的对象。应用分类分支的后果抉择最终要绘制的实例宰割图。这称为解耦掩码和类别预测。

全卷积网络 (FCN) 用于从每个 RoI 绘制 m×m 掩码。与绘制边界框不同,生成像素级掩码须要像素级空间信息。所以函数在生成 mask 宰割时在折叠特色之前分支进去,如下图所示。

RoI 是小特色图,由 RoI 池化操作计算,该操作严格地将特色图切割成 bin。这是因为这会在 RoI 和提取的特色之间引入错位,这些错位在分类中被疏忽,但会侵害像素级掩模,而像素级掩模会在很大水平上受到小平移的影响。提出了一个 RoIAlign 层,平滑了 RoIPool 的硬切片。RoIAlgin 层基本上是大地图到小地图的双线性插值。结果显示出微小的性能晋升,作者提出了更多证据表明问题出在对齐不统一上。

为了训练掩码分支,在原始分类和边界框回归损失函数中增加了一个损失项 L_mask。mask 损失项被计算为具备 k 类的高空真值宰割图和第 k 个掩码之间的穿插熵损失。

这篇论文不仅实现了高性能的实例宰割,而且在惯例边界框对象检测和姿势预计等其余工作中也获得了令人诧异的后果。上表显示了边界框对象检测的后果,其中 Mask R-CNN 优于更快的 R-CNN。Faster R-CNN,RoIAlgin 显示了在训练期间未应用掩码损失时的后果。结果表明,在应用掩码预测指标进行训练时,对象检测管道能够学习到更通用、更丰盛的特色。

  • 概括
  1. 通过引入掩码分支,提出了基于 Faster R-CNN 的实例宰割的通用框架。
  2. 通过解决切片中的未对齐问题来修复 RoIPooling 层。
  3. 简略但令人惊叹的论文:)

Cascade R-CNN

如果 IoU 高于阈值 u,则该补丁被认为是一个类的示例,或者被认为是背景类。当应用涣散的 IoU 阈值(如 u=0.5)对数据集进行训练时,边界框预测会变得嘈杂。然而减少 IoU 阈值并不能解决问题,因为用于训练 / 推理的最佳 IoU 不匹配。它还将显着缩小正样本的数量,引入不均衡数据的问题,这在右图中红色图表的低性能中失去了阐明。辨别“靠近但不正确”的边界框很重要,但在以前的工作中没有钻研过。

这些图阐明了在 u = 0.5、0.6、0.7 的 IoU 阈值上训练的三个检测器。如左图所示,每个模型在不同的 IoU 范畴内体现最佳。该论文提供了更多对于为什么单个分类器难以在整体 IoU 程度上体现统一的起因。基于单个检测器对于单个品质程度是最佳的假如,Cascade R-CNN 训练了一系列用减少的 IoU 阈值训练的检测器。

在 Faster R-CNN(图 a)中,RPN 网络提供了用于细化框和分类的 RoI。在 Cascade R-CNN 中,一系列头部提供了前一个头部的边界框预计,而不是 RPN 的 RoI,解释为迭代地改良边界框预计(图 b、d)。实践上,下一个头部的输入应该逐渐改良边界框地位,然而训练具备小 IoU 阈值的边界框精炼器不会将 IoU 进步到肯定值(上图 c)。因而,Cascade R-CNN 被设计为不同业余回归器的级联(图 d)。因而,更深的阶段可能逐步提高到更高的 IoU 阈值,如上面的 IoU 直方图所述。

  • 概括
  1. 指出 IoU 阈值对物体检测的影响,以及简略批改阈值的问题。
  2. 察看到不同的模型在不同的 IoU 范畴内体现最好。
  3. 级联边界框回归器可确保高置信度边界框输入,而不会引入其余问题。

总结

咱们回顾了多阶段指标检测的次要办法。这些算法的提高速度真是惊人。一般的 R-CNN 算法速度慢且效率低下。高级算法的许多要害见解都基于共享特色(例如 SPP-Net、Fast R-CNN、Mask R-CNN)并反对对先前固定的管道组件(例如 Fast R-CNN、Faster R)进行梯度训练 -CNN, Cascade R-CNN) 来无效地学习更丰盛的特色。指标检测是计算机视觉中的一个重要畛域,多阶段指标检测是指标检测的支流办法。

最近在多阶段指标检测方面的一项工作是 DetectoRS,它提出通过提出递归特色金字塔来改良网络的骨干。尽管最近对对象检测的关注曾经转向基于 Transformer 的办法,但这些对于多阶段对象检测的论文总体上提供了对深度学习的粗浅见解。

本文由 mdnice 多平台公布

正文完
 0