【目标检测】Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

 


原始题目:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
中文翻译:Faster R-CNN: 使用区域建议网络实现实时目标检测
发表时间:2015年6月4日
平台:CVPR-2021
来源: 微软亚洲研究院(任少卿、何凯明、 Ross Girshick、孙剑)
文章链接:https://arxiv.org/pdf/1506.01497
开源代码:

作者全是大佬!

摘要

最先进的目标检测网络依赖于区域建议算法来假设目标位置。 SPPnet [1] 和 Fast R-CNN [2] 等先进技术减少了这些检测网络的运行时间,使 区域建议计算成为瓶颈

在这项工作中,我们引入了一个区域提议网络(Region Proposal Network--RPN),它与检测网络共享全图像卷积特征,从而实现几乎 cost-free 的区域建议

RPN 是一个全卷积网络,可同时预测每个位置的目标边界和目标分数。

RPN 被端到端训练以生成高质量的区域建议,Fast R-CNN 使用这些建议进行检测。

我们通过共享它们的卷积特征进一步将 RPN 和 Fast R-CNN 合并为一个网络——使用最近流行的具有“attention” 机制的神经网络术语,RPN 组件告诉这个 unified 网络在哪里寻找。

对于非常深的 VGG-16 模型 [3],我们的检测系统在 GPU 上的帧率为 5fps(包括所有步骤),同时在 PASCAL VOC 2007、2012 和MS COCO 数据集,每张图像只有 300 个 建议(proposals) 。在 ILSVRC 和 COCO 2015 比赛中,Faster R-CNN 和 RPN 是多个赛道中获得第一名的基础。代码已公开。

有人将 Region Proposal 翻译成候选区域。

区域建议算法有多种,这个可能是第一个区域建议网络。

关键词

目标检测、区域建议、CNN

5. 结论

我们已经提出了 RPNs 用于高效和准确的区域建议生成。 通过与下游检测网络共享卷积特征,区域提议步骤几乎是cost-free 。 我们的方法使一个 unified、基于深度学习的目标检测系统能够以接近实时的帧率运行。 学习到的 RPN 还提高了区域建议的质量,从而提高了整体目标检测的 accuracy 。

1. 引言

目标检测的最新进展是由区域建议方法(例如 [4])和基于区域的卷积神经网络(RCNN)[5] 的成功推动的。 尽管最初在 [5] 中开发的基于区域的 CNNs 在计算上是昂贵的,但由于在提议之间共享卷积,它们的 cost已大大降低 [1],[2] 。 最新的版本 Fast R-CNN [2] 在 忽略区域提议所花费的时间时 ,使用非常深的网络 [3] 实现了近乎实时的速率。 现在,建议是最先进检测系统中的测试时间计算瓶颈。

区域提议方法通常依赖于廉价的特征和经济的推理方案。 选择性搜索(Selective Search) [4] 是最流行的方法之一,它基于(特征)工程的低级特征贪婪地合并超像素。 然而,与高效的检测网络 [2] 相比,选择性搜索要慢一个数量级,在 CPU 实现中每张图像需要 2 秒。

EdgeBoxes [6] 目前在建议质量和速度之间提供了最佳权衡,每张图像 0.2 秒。 尽管如此,区域提议步骤仍然消耗与检测网络一样多的运行时间。

有人可能会注意到,基于区域的快速 CNNs 利用 GPUs,而研究中使用的区域建议方法是在 CPU 上实现的,这使得这种运行时间比较不公平。 加速区域建议计算的一个明显方法是为 GPU 重新实现它。 这可能是一种有效的工程解决方案,但重新实现忽略了下游检测网络,因此错过了共享计算的重要机会。

在本文中,我们展示了一种算法变化——使用深度 CNN 计算建议——导致了一个优雅而有效的解决方案,其中建议计算在检测网络的计算下几乎是 cost-free 。 为此,我们引入了创新的 Region Proposal Networks (RPNs),它与最先进的目标检测网络 [1]、[2] 共享卷积层。 通过在测试时共享卷积,计算建议的边际成本很小(例如,每张图像 10ms)。

我们的观察是,基于区域的检测器(如 Fast RCNN),使用的卷积特征图,也可用于生成区域提议在这些卷积特征之上,我们通过添加一些少的额外的卷积层来构建 RPN,这些卷积层同时在一个规则网格(grid)上每个位置 回归 区域边界和目标分数( objectness scores)。 因此,RPN 是一种完全卷积网络 (fully convolutional network--FCN) [7],可以专门针对生成检测建议的任务进行端到端训练

RPNs 旨在有效地预测具有广泛 scales 和 aspect ratios 的区域建议。 与使用图像金字塔(图 1,a)或 filters 金字塔(图 1,b)的流行方法 [8]、[9]、[1]、[2] 相比,我们引入了创新的 “anchor” boxes 作为多种 scales 和 aspect ratios 的参考。 我们的方案可以被认为是一个回归参考(regression references)金字塔(图 1,c),它避免了枚举多种 cales 和 aspect ratios 的图像或 filters。 该模型在使用单尺度(single-scale)图像进行训练和测试时表现良好,因此有利于运行速度。

drawing
图 1:解决多种 scales 和 sizes 的不同方案。 (a) 构建图像和特征图的金字塔,并在所有 scales 上运行分类器。 (b) 在特征图上运行具有多个 scales/sizes 的 filters 金字塔。 (c) 我们在回归函数中使用 reference boxes 金字塔。

a 图 是图像金字塔,构建不同大小的图像输入来提取不同大小的特征图,在不同大小的特征图上就可以进行后续检测,比如可以采用传统的滑动窗口法等。 b 图是使用一张图得到一个特征图,在该特征图上使用不同大小的 filters 进行后面的操作,叫做 filters 金字塔。 c 图是该论文提到的 reference boxes 就是大家说的 金字塔,其实这里的 reference boxes 就是大家说的 不同大小的 anchors。

为了将 RPN 与 Fast R-CNN [2] 目标检测网络统一(unify)起来,我们提出了一种训练方案,该方案在区域建议任务的 fine-tuning 和目标检测的 fine-tuning 之间交替进行,同时保持 proposals 固定。 该方案快速收敛,并产生一个 unified 的网络,具有在两个任务之间共享的卷积特征 1

1 自从本文 [10] 的会议版本发表以来,我们还发现 RPN 可以与 Fast R-CNN 网络联合训练,从而减少训练时间。

我们在 PASCAL VOC 检测 benchmarks [11] 上全面评估了我们的方法,其中具有 Fast R-CNNs 的 RPNs 产生的检测精度优于具有 Fast R-CNN 的 Selective Search 的强 baseline。 同时,我们的方法在 test-time 几乎免除了 Selective Search 的所有计算负担—— proposals 的有效运行时间仅为 10 ms。 使用 [3] 的昂贵的非常深的模型,我们的检测方法在 GPU 上仍然具有 5fps(包括所有步骤)的帧率,因此在速度和 accuracy 方面都是一个实用的目标检测系统。 我们还报告了 MS COCO 数据集 [12] 的结果,并使用 COCO 数据研究了 PASCAL VOC 的改进。 代码已在 https://github.com/shaoqingren/faster_rcnn(在 MATLAB 中)和 https://github.com/rbgirshick/py-faster-rcnn(在 Python 中)公开提供。

该手稿的初步版本之前已发表 [10]。 从那时起,RPN 和 Faster R-CNN 的框架已被采用并推广到其他方法,例如 3D 目标检测 [13]、基于部分的检测 [14]、实例分割 [15] 和图像描述(captioning) [16] . 我们快速有效的目标检测系统也已构建在 Pinterest [17] 等商业系统中,并报告了用户参与度的提高。

在 ILSVRC 和 COCO 2015 比赛中,Faster R-CNN 和 RPN 是 ImageNet 检测、ImageNet 定位、COCO 检测和 COCO 分割赛道中的几个第一名参赛作品 [18] 的基础。 RPNs 完全学会了从数据中 propose 区域,因此可以很容易地受益于更深、更具表示能力的特征(例如 [18] 中采用的 101 层残差网络)。 Faster R-CNN 和 RPN 也被这些比赛中的其他几个主要参赛作品使用2。 这些结果表明,我们的方法不仅是一种具有成本效益的实际使用解决方案,而且是提高目标检测精度的有效方法。

2 https://image-net.org/challenges/LSVRC/2015/results

2. 相关工作

Object Proposals. 有大量关于 Object Proposal 方法的文献。 Object Proposal 方法的综合调查和比较可以在[19]、[20]、[21]中找到。 广泛使用的 Object Proposal 方法包括基于分组超像素的方法(例如,选择性搜索 [4]、CPMC [22]、MCG [23])和基于滑动窗口的方法(例如,objectness in windows [24]、EdgeBoxes [ 6])。 Object Proposal 方法被用作独立于检测器的外部模块(例如,选择性搜索 [4] 目标检测器、RCNN [5] 和 Fast R-CNN [2])。

Deep Networks for Object Detection。 R-CNN 方法 [5] 端到端训练 CNN 以将 proposal regions 分类为对象类别或背景。 R-CNN 主要起到分类器的作用,它不预测对象边界(通过边界框回归进行细化除外)。它的准确性取决于 region proposal 模块的性能(参见[20]中的比较)。几篇论文提出了使用深度网络预测目标边界框的方法 [25]、[9]、[26]、[27]。在 OverFeat 方法 [9] 中,训练一个全连接层来预测假设单个目标的定位任务的边框坐标。然后将全连接层转换为卷积层,用于检测多个特定类别的目标。 MultiBox 方法 [26]、[27] 从网络生成 region proposals,该网络的最后一个全连接层同时预测多个与类别无关的框,概括了 OverFeat 的“单框”方式。这些与类别无关的框被用作 R-CNN [5] 的 proposals。与我们的全卷积方案相比,MultiBox proposal 网络应用于单个图像裁剪或多个大图像裁剪(例如,224×224)。 MultiBox 在 proposal 网络和检测网络之间不共享特征。我们稍后会在我们的方法的上下文中更深入地讨论 OverFeat 和 MultiBox。与我们的工作同时,DeepMask 方法 [28] 被开发用于学习分割 proposals 。

卷积 [9]、[1]、[29]、[7]、[2] 的共享计算已经吸引了越来越多的关注,以实现高效而准确的视觉识别。 OverFeat 论文 [9] 计算来自图像金字塔的卷积特征,用于分类、定位和检测。 共享卷积特征图上的自适应大小池化 (SPP) [1] 是为有效的基于区域的目标检测 [1]、[30] 和语义分割 [29] 而开发的。 Fast R-CNN [2] 支持对共享卷积特征进行端到端检测器训练,并显示出引人注目的 accuracy 和速度。

3. Faster R-CNN

我们的目标检测系统,称为 Faster R-CNN,由两个模块组成。 第一个模块是 proposes regions 的深度全卷积网络,第二个模块是使用 proposes regions 的 Fast R-CNN 检测器 [2]。 整个系统是一个单一的、统一的目标检测网络(图 2)。 使用最近流行的具有“注意”[31]机制的神经网络术语,RPN 模块告诉 Fast R-CNN 模块看哪里。 在第 3.1 节中,我们介绍了 region proposal 网络的设计和属性。 在第 3.2 节中,我们开发了用于训练具有共享特征的两个模块的算法。

drawing
图 2:Faster R-CNN 是一个单一的、统一的目标检测网络。 RPN 模块充当这个统一网络的“注意力”。

显然这里所说的注意力只是指RPN 让 Fast R-CNN 应该看图像中的哪块区域。

3.1 Region Proposal Networks

Region Proposal Network (RPN) 将图像(任意大小)作为输入,并输出一组矩形目标 proposals ,每个 proposals 都有一个目标分数3。 我们使用全卷积网络 [7] 对这个过程进行建模,我们在本节对此进行了描述。 因为我们的最终目标是与 Fast R-CNN 目标检测网络 [2] 共享计算,我们假设两个网络共享一组共同的卷积层。 在我们的实验中,我们研究了Zeiler 和 Fergus 模型 [32] (ZF),它具有 5 个可共享的卷积层 以及具有 13 个可共享卷积层的 Simonyan 和 Zisserman 模型 [3] (VGG-16)。

3 “Region”是一个通用术语,在本文中我们只考虑矩形区域,这在许多方法中很常见(例如,[27]、[4]、[6])。 “Objectness” 衡量一组目标类与背景的成员资格(这里指的是 proposals的Region 是对象还是背景)。

为了生成 region proposals ,我们在最后一个共享卷积层输出的卷积特征图上滑动一个小型网络。这个小型网络将输入卷积特征图的 n × n 空间窗口作为输入。每个滑动窗口都映射到一个低维特征(ZF 为 256-d,VGG 为 512-d,随后是 ReLU [33])。这个特征被输入到两个同级全连接层——一个边框回归层(reg)和一个边框分类层(cls)。我们在本文中使用 n = 3,注意输入图像上的有效感受野很大(ZF 和 VGG 分别为 171 和 228 像素)。这个迷你网络在图 3-1进行了说明。请注意,由于迷你网络以滑动窗口方式运行,因此全连接层在所有空间位置之间共享。这种架构自然是用一个 n×n 卷积层和两个同级 1×1 卷积层(分别用于 reg 和 cls)来实现的。

drawing
图 3-1:Region Proposal Network (RPN).
drawing
图 3-2:在 PASCAL VOC 2007 测试中使用 RPN proposals 的检测例子。 我们的方法检测各种尺度和纵横比的目标。

3.1.1 Anchors

在每个滑动窗口位置,我们同时预测多个 region proposals ,其中每个位置的最大可能 proposals 的数量表示为 k。 所以 reg 层有 4k 个输出编码 k 个框的坐标,cls 层输出 2k 个分数,用于估计每个 proposals 的是目标或不是目标的概率 4。 **k 个 proposals 框,这些框是通过这些参考框变换得到的,这些变换的参数就是网络学习的东西。

相对于 k 个参考框进行参数化,我们称之为 anchors**。一个 anchor 位于相关滑动窗口的中心,并与 scale and aspect ratio 相关联(图 3-1)。 默认情况下,我们使用 3 个 scales 和 3 个 aspect ratios,在每个滑动位置产生 k = 9 个anchors。 对于尺寸为 W × H(通常约为 2,400)的卷积特征图,总共有 W H k 个anchors。

4 为简单起见,我们将 cls 层实现为 2分类 softmax 层。 或者,可以使用逻辑回归来产生 k 个分数。

特征图的每个位置都有 k 个参考框,这些参考框被称为 anchors。同时每个位置对应有 k 个 proposals 框,这些框是通过这些参考框变换得到的,这些变换的参数就是网络学习的东西。anchors 叫参考框多好,起个这么奇怪的名字。

Translation-Invariant(平移不变) Anchors (这里不太懂)

我们的方法的一个重要特性是它是平移不变的,无论是就 anchors 和函数而言,该函数计算相对于 anchors 的 proposals。 如果在一张图像中的平移一个目标,则 proposal 应该平移,并且相同的函数应该能够预测任一位置的proposal。 我们的方法 5 保证了这种平移不变性。 作为比较,MultiBox 方法 [27] 使用 k-means 生成 800 个 anchors,这些 anchors 不是平移不变的。 因此,MultiBox 不保证在一个目标被平移时会生成相同的 proposal 。

5 与 FCN [7] 的情况一样,我们的网络在网络的总 stride 内是平移不变的。

平移不变属性还减小了模型大小。 MultiBox 具有 (4 + 1) × 800 维的全连接输出层,而我们的方法在 k = 9 个anchors 的情况下具有 (4 + 2) × 9 维的卷积输出层。 结果,我们的输出层有 \(2.8 × 10^4\) 个参数(VGG-16 为 512 × (4 + 2) × 9),比具有 \(6.1 × 10^6\) 参数的 MultiBox 输出层(MultiBox [27] 中的 GoogleNet [34] 为 1536 × (4 + 1) × 800)少两个数量级。 如果考虑特征投影层,我们的 proposal 层的参数仍然比 MultiBox6 少一个数量级。 我们希望我们的方法在 PASCAL VOC 等小型数据集上过拟合的风险更小。

6 考虑到特征投影层,我们的 proposal 层的参数计数为 \(3 × 3 × 512 × 512 + 512 × 6 × 9 = 2.4 × 10^6\)
MultiBox的proposal layers的参数数为\(7×7×(64+96+64+64)×1536+1536×5×800=27×10^6\).

Multi-Scale Anchors as Regression References

我们的 anchors 设计提出了一种解决多 scales (and aspect ratios)的新方案。如图 1 所示,有两种流行的多尺度预测方法。第一种方法是基于图像/特征金字塔,例如,在 DPM [8]中的 和基于 CNN 的方法 [9]、[1]、[2] 中。图像在多个 scales 上被resized,并为每个 scales 计算特征图(HOG [8] 或深度卷积特征 [9]、[1]、[2])(图 1(a))。这种方法通常很有用,但很耗时。第二种方法是在特征图上使用多scales(和/或 aspect ratios )的滑动窗口。例如,在 DPM [8] 中,不同 aspect ratios 的模型使用不同的 filter sizes(如 5×7 和 7×5)分别训练。如果这种方式用于处理多 scales ,则可以将其视为“filters 金字塔”(图 1(b))。第二种方式通常与第一种方式联合使用[8]。

作为比较,我们的基于anchor的方法是建立在 anchors金字塔 上的,更具成本效益。我们的方法参考scales 和 aspect ratios的 anchor boxes 对边界框进行分类和回归。它仅依赖于单一尺度的图像和特征图,并使用单一尺寸的 filters(特征图上的滑动窗口)。我们通过实验展示了该方案对解决多个尺度和大小的影响(表 8)。

由于这种基于 anchors 的多尺度设计,我们可以简单地使用在单尺度图像上计算的卷积特征,就像 Fast R-CNN 检测器 [2] 所做的那样。多尺度 anchors 的设计是共享特征的关键组成部分,而无需额外的访问尺度成本。

3.1.2 Loss Function

为了训练 RPN,我们为每个 anchor 分配一个 binary 类标签(是否为 object )。 我们将正标签分配给两种anchors:

  • (i)具有与 一个 ground-truth box 重叠的最高 Intersection-over-Union(交并比-IoU)的 anchor/anchors。
  • (ii)具有与 任一 ground-truth box 重叠的 IoU 高于 0.7 的 anchor。

请注意,单个 ground-truth box 可能会将正标签分配给多个 anchors 。 通常第二个条件就足以确定正样本; 但是我们仍然采用第一个条件,因为在极少数情况下,第二个条件可能找不到正样本。 如果对于所有 ground-truth box 的 IoU 率低于 0.3,我们将负标签分配给 non-positive anchor 。 既不是 positive 也不是 negative 的 Anchors 对训练目标没有贡献。

通过这些定义,我们在 Fast R-CNN [2] 中的 multi-task loss 之后最小化目标函数。 我们对一张图像的损失函数定义为:

drawing

这里,\(i\) 是在一个 mini-batch 中 an anchor 的 index ,\(p_i\) 是 anchor \(i\) 是一个 object 的预测概率。 如果 anchor 为 positive ,则 ground-truth 标签 \(p^*_i\) 为 1; 如果 anchor 为 negative,则为 0。 \(t_i\) 是表示 predicted bounding box 的 4 个参数化坐标的向量,\(t^*_i\) 是与 a positive anchor 相关联的那个 ground-truth box 的坐标。 分类损失 \(L_cls\) 是两个类别(object vs. not object)的 log loss 。 对于回归损失,我们使用 \(L_{reg} (t_i,t^*_i ) = R(t_i − t^*_i )\) 其中 R 是 [2] 中定义的 robust 损失函数(smooth L1)。 术语 \(p^*_i L_{reg}\) 意味着回归损失仅对 positive anchors (\(p^*_i= 1\)) 激活,否则禁用 (\(p^*_i= 0\))。 clsreg 层的输出分别由 {p_i} 和 {t_i} 组成。

上面是本文的核心,有几个核心概念,ground-truth box 表示标注的真实框,通过计算 IOU 那么把 anchor 分为 positive 和 negative,也就是正负样本,即 样本就是 anchor, 而 anchor 是一个人为先验定义的参考框,特征图的每个点上都有 k 个 anchor box,而 RPN 通过 \(3x3\) 卷积得到 4k 个预测框相对于 anchor box 的偏移量,这里会计算 IOU(anchor box, ground-truth box) 来决定哪些 anchor box 是正样本,哪些是负样本,对于负样本只计算分类损失,而对于正样本计算分类和回归损失。

这两项由 \(N_{cls}\)\(N_{reg}\) normalize,并由平衡参数 λ 加权。 在我们当前的实现中(如在已发布的代码中),Eqn.(1) 中的 cls 项由 mini-batch 大小(即 \(N_{cls}\) = 256)normalize,而 reg 项由 anchor 位置的数量(即 , \(N_{reg}\) ~ 2,400) normalize。 默认情况下,我们设置 λ = 10,因此 cls 和 reg 项的权重大致相等。 我们通过实验表明,结果对很大范围内的 λ 值不敏感(表 9)。 我们还注意到,上述 normalization 不是必需的,可以简化。

对于边界框回归,我们采用 [5] 中的 4 个坐标的参数化:

drawing

其中 x、y、w 和 h 表示框的中心坐标及其宽度和高度。 变量 \(x\)\(x_a\)\(x^∗\) 分别用于 predicted box, anchor box, and groundtruth box(同样适用于 y、w、h)。 这可以被认为是从 an anchor box 到附近的 ground-truth box 的边框回归。

然而,我们的方法通过与以前 基于 RoI(感兴趣区域)方法 [1]、[2] 不同的方式实现了边界框回归。 在 [1]、[2] 中,边界框回归是对从任意大小的 RoI 汇集的特征执行的,并且回归权重由所有区域大小共享。 在我们的公式中,用于回归的特征在特征图上具有相同的空间大小(3×3)。 为了考虑不同的大小,学习了一组 k 个边框回归器。 每个回归器负责一个尺度和一个纵横比,k 个回归器不共享权重。 因此,由于 anchors 的设计,即使特征具有固定的大小/比例,仍然可以预测各种大小的框。

3.1.3 Training RPNs

RPN 可以通过反向传播和随机梯度下降 (SGD) [35] 进行端到端的训练。 我们遵循 [2] 中的 “image-centric” 的采样策略来训练这个网络。 每个 mini-batch 都来自(arises from)包含许多 positive and negative example anchors 的单张图像。 可以优化所有 anchors 的损失函数,但这会偏向 negative samples ,因为它们占主导地位。 相反,我们在图像中随机采样 256 个 anchors 来计算 a mini-batch 的损失函数,其中采样的 positive and negative anchors 的比率高达 1:1。 如果图像中的 positive samples 少于 128 个,我们用 negative samples 填充 mini-batch。

我们通过从标准差为 0.01 的零均值高斯分布中提取权重来随机初始化所有新层。 所有其他层(即共享卷积层)通过预训练 ImageNet 分类模型 [36] 进行初始化,这是标准做法 [5]。 我们调整 ZF 网络的所有层,并为 VGG 网络调整 conv3_1 及以上以节省内存 [2]。 对于 PASCAL VOC 数据集上的 60k mini-batches,我们使用 0.001 的学习率,对于接下来的 20k mini-batches 使用 0.0001。 我们使用 0.9 的动量和 0.0005 的权重衰减 [37]。 我们的实现使用 Caffe [38]。

3.2 Sharing Features for RPN and Fast R-CNN

到目前为止,我们已经描述了如何训练一个用于 生成 region proposal 的网络,而没有考虑基于区域的目标检测 CNN 要利用这些 proposals。检测网络采用 Fast R-CNN [2] ; 接下来,我们描述学习由共享卷积层的 RPN 和 Fast R-CNN 组成的统一网络的算法(图2)。

独立训练的 RPN 和 Fast R-CNN 都将以不同的方式修改它们的卷积层。因此,我们需要开发一种技术,允许在两个网络之间共享卷积层,而不是学习两个单独的网络。我们将讨论三种共享特征的网络训练方法。

(i) Alternating training(交替训练) 。在这个解决方案中,我们首先训练RPN,并使用这些 proposals 来训练 Fast R-CNN 。 然后使用 Fast R-CNN 调整的网络初始化RPN,并迭代该过程。这是本文中所有实验中使用的解决方案。

(ii)近似联合训练。在这个解决方案中,RPN 和 Fast R-CNN 网络在训练过程中被合并为一个网络,如 图2 所示。在每次SGD迭代中,前向传递生成 region proposals,在训练 Fast R-CNN 检测器时,将其视为固定的、预先计算的 proposals 。反向传播照常进行,其中对于共享层,来自 RPN 损失和Fast R-CNN 损失的反向传播信号被结合了。这个解决方案很容易实现。但是此解决方案忽略了 关于(w.r.t.)proposal boxes 坐标 的导数。proposal boxes 的坐标也是网络响应,所以是近似的。在实验中,根据经验发现,该求解器产生了接近的结果,但与 交替训练 相比,训练时间减少了约25-50%。这个解决方案包含在我们发布的Python代码中。

(iii)非近似联合训练。如上所述,RPN 预测的 bounding boxes 也是输入的函数。Fast R-CNN中的 RoI pooling 层[2]接受卷积特征和 预测的bounding boxes 作为输入,因此理论上有效的反向传播求解器还应该涉及到box 坐标的梯度。在上述近似联合训练中,这些梯度被忽略。在一个非近似的联合训练解决方案中,我们需要一个 RoI pooling 层,该层关于box 坐标 是可微的。这是一个非常重要的问题,可以通过[15]中的“RoI warping”层来解决,但这超出了本文的讨论范围。

w.r.t. : with respect to 的缩写。是 关于;谈及,谈到的意思。
i.e. :也就是,亦即(源自拉丁文id est),换而言之。

4-Step Alternating Training.

本文采用一种实用的四步训练算法,通过交替优化来学习共享特征

step-1,我们训练 RPN,如3.1.3节所述。该网络使用 imagenet 预训练模型进行初始化,并针对 region proposal 任务进行端到端的微调。

step-2,我们使用step-1 RPN 生成的 proposals,通过 Fast R-CNN 训练一个单独的检测网络。该检测网络也由 imagenet 预训练模型初始化。在这一点上,两个网络不共享卷积层。

step-3,我们使用检测器网络来初始化 RPN 训练,但我们固定共享卷积层,并只微调 RPN 特有的层。现在,两个网络共享卷积层。

step-4,在保持共享卷积层固定的情况下,对 Fast R-CNN 的独特层进行微调。因此,两个网络共享相同的卷积层,并形成统一的网络。类似的交替训练可以运行更多的迭代,但我们观察到的改进微不足道(negligible)。

3.3 实现细节

我们在单尺度[1]、[2]的图像上训练和测试 region proposal 和 object detection 网络。我们重新缩放图像,使其较短的一边为 s = 600 pixels[2]。多尺度特征提取(使用图像金字塔)可能提高 accuracy ,但没有表现出良好的速度-accuracy权衡[2]。在重新缩放的图像上,ZF 和 VGG 网络在最后一个卷积层上的总 stride 是 16 像素,因此在 resizing (∼500×375)前的典型 PASCAL 图像上是 ∼10 pixels。即使如此大的步幅也能提供很好的结果,尽管步幅越小,精度可能会进一步提高。

这里的 16 指的是 16倍下采样。请参考:
https://stats.stackexchange.com/questions/314823/how-is-the-stride-calculated-in-the-faster-rcnn-paper#:~:text=We also note that for ZF and VGG,may be further improved with a smaller stride.

https://blog.csdn.net/HackerTom/article/details/115579525

对于 anchors ,我们使用3个尺度,box 面积分别为 \(128^2\)\(256^2\)\(512^2\) 像素,3个 宽高比 分别为 1:1、1:2和2:1。这些超参数并不是为特定的数据集精心选择的,我们在下一节中提供了关于它们效果的消融实验。如前所述,我们的解决方案不需要图像金字塔或 filter 金字塔来预测多个尺度的区域,节省了相当多的运行时间。图3(右)显示了我们的方法在大范围的尺度和宽高比下的能力。表1显示了使用ZF网络学习到的每个 anchor 的 average proposal size。我们注意到,我们的算法允许比底层感受野(receptive field)更大的预测。这样的预测不是不可能的,如果只有物体的中间可见,人们仍然可以粗略地推断出物体的范围(extent)。

需要小心处理超过图像边界的 anchor boxes 。在训练过程中,我们会忽略所有超过图像边界的 anchors ,这样它们就不会造成损失。对于一个典型的 1000 × 600 图像,总共大约会有20000(≈ 60 × 40 × 9)个 anchors 。如果忽略超过图像边界的 anchors,则每张图片大约有 6000 个 anchors 进行训练。如果在训练中不忽略超过图像边界异常值,就会在目标中引入大的、难以修正的误差项,训练就不会收敛。然而,在测试过程中,我们仍然将全卷积 RPN 应用于整个图像。这可能会生成超过图像边界 proposal boxes ,我们将其 clip 到图像边界上。

一些 RPN proposals 彼此高度重叠。为了减少冗余,我们基于 proposal regions 的 cls scores 对其采用 非最大抑制(non-maximum suppression (NMS))。我们将 NMS 的 IoU阈值固定为 0.7,这样每张图像就剩下大约2000个proposal regions 。正如我们将展示的那样,NMS 不会损害最终的检测精度,但会大幅减少 proposals 的数量。在NMS之后,我们使用排名 top-N 的 proposal regions 进行检测。在下面,我们使用 2000 个 RPN proposals 训练Fast R-CNN,但在测试时评估不同数量的 proposals 。

https://blog.csdn.net/ying86615791/article/details/72788414

4. 实验

4.1 PASCAL VOC 上的实验

  • benchmark: PASCAL VOC 2007 detection
  • trainval images:5k
  • test images:5k
  • 类别数目:20
  • 其他 benchmark:PASCAL VOC 2012
  • ImageNet pre-trained network:“fast” ZF-net (5个卷积层和3个全连接层) 、VGG-16(13个卷积层和3个全连接层)
  • 评估指标:mean Average Precision (mAP)

表2(顶部)显示了使用各种 region proposal 方法进行训练和测试的 Fast R-CNN 结果。这些结果使用 ZF-net 。对于 选择性搜索(Selective Search (SS))[4],我们通过“快速”模式生成约2000个 proposals 。对于 EdgeBoxes (EB)[6],我们通过调整 0.7 IoU 的 默认 EB 设置生成 proposals 。SS 在 Fast R-CNN 框架下的 mAP 为58.7%,EB 的 mAP 为58.6%。当使用多达 300 个 proposals 时,RPN 与 Fast R-CNN 取得了有竞争力的结果,mAP 为59.9% 。由于共享卷积计算,使用 RPN 比使用 SS 或 EB 产生了更快的检测系统;较少的 proposals 也减少了 region-wise 的全连接层 cost(表5)。

RPN上的消融实验 为了研究 RPN 作为 proposal 方法的性能,我们进行了几项消融研究。首先,我们显示了 RPN 和Fast R-CNN 检测网络共享卷积层的效果。为此,我们在四步训练过程的第二步之后停止训练。使用单独的网络将结果略微减少到 58.7%(RPN+ZF,非共享,表2)。我们观察到,这是因为在第三步中,当使用检测器调整的特征来 fine-tune RPN时,proposal 质量得到了改善。

接下来,我们分析RPN对训练Fast R-CNN检测网络的影响。为此,我们通过使用2000个SS proposals和ZF网络来训练Fast R-CNN模型。我们固定这个检测器,并通过改变测试时使用的proposal regions来评估检测的mAP。在这些消融实验中,RPN不与检测器共享特征。

在测试阶段用300个RPN proposals替换SS proposals得到了56.8%的MAP。mAP的下降是因为训练/测试proposals不一致。这个结果作为以下比较的基准。

有些令人惊讶的是,RPN在测试时使用排名最高的100个proposals仍然会获得有竞争力的结果(55.1%),表明排名靠前的RPN proposals是准确的。相反的,使用排名靠前的6000个RPN proposals(没有进行NMS)具有相当的mAP(55.2%),这表明NMS不会损害检测mAP并可能减少误报。

接下来,我们通过在测试时分别关闭RPN的cls和reg输出来研究RPN的作用。当cls层在测试时被移除(因此不使用NMS/排名),我们从没有计分的区域中随机采样N个proposals。当N=1000(55.8%)时,mAP几乎没有变化,但是当N=100时,会大幅降低到44.6%。这表明cls分数考虑了排名最高的proposals的准确性。

另一方面,当在测试阶段移除reg层(所以proposals变成anchor框)时,mAP将下降到52.1%。这表明高质量的 proposals 主要是由于回归的边界框。 anchor boxes 虽然具有多个尺度和长宽比,但不足以进行准确的检测。

我们还单独评估了更强大的网络对RPN proposal质量的影响。我们使用VGG-16来训练RPN,仍然使用上述的SS+ZF检测器。mAP从56.8%(使用RPN+ZF)提高到59.2%(使用RPN+VGG)。这是一个很有希望的结果,因为这表明RPN+VGG的proposal质量要好于RPN+ZF。由于RPN+ZF的proposal与SS具有竞争性(当一致用于训练和测试时,都是58.7%),所以我们可以预期RPN+VGG比SS更好。以下实验验证了这个假设。

VGG-16的性能。表3显示了VGG-16的proposal和检测结果。使用RPN+VGG,非共享特征的结果是68.5%,略高于SS基准模型。如上所示,这是因为RPN+VGG生成的proposal比SS更准确。与预先定义的SS不同,RPN是主动训练的并从更好的网络中受益。对于特性共享的变种,结果是69.9%——比强壮的SS基准模型更好,但几乎是零成本的proposal。我们在PASCAL VOC 2007和2012的训练评估数据集上进一步训练RPN和检测网络。该mAP是73.2%。图5显示了PASCAL VOC 2007测试集的一些结果。在PASCAL VOC 2012测试集(表4)中,我们的方法在VOC 2007的trainval+test和VOC 2012的trainval的联合数据集上训练的模型取得了70.4%的mAP。表6和表7所示为详细的数字。

在表5中我们总结了整个目标检测系统的运行时间。根据内容(平均大约1.5s)SS需要1-2秒,而使用 VGG-16 的 Fast R-CNN 在2000个SS proposals上需要320ms(如果在全连接层上使用SVD[2],则需要223ms)。我们的VGG-16系统在proposals和检测上总共需要198ms。在共享卷积特征的情况下,单独 RPN 只需要10ms计算附加层。我们的 region-wise 计算也较低,这要归功于较少的proposals(每张图片300个)。我们的采用ZF网络的系统,帧速率为 17fps 。

对超参数的敏感度。 在表8中,我们研究了 anchor 的设置。默认情况下,我们使用3个尺度和3个长宽比(表8中69.9%的mAP)。如果在每个位置只使用一个 anchor,那么mAP的下降幅度将是 3-4%。如果使用 3个尺度(1个长宽比)或3个长宽比(1个尺度),则 mAP 更高,表明使用多种尺寸的 anchor 作为回归参考是有效的解决方案。在这个数据集上,仅使用具有1个长宽比(69.8%)的3个尺度与使用具有3个长宽比的3个尺度一样好,这表明尺度和长宽比不是检测准确度的解决维度。但我们仍然在设计中采用这两个维度来保持我们的系统灵活性。

在表9中,我们比较了公式(1)中λ的不同值。默认情况下,我们使用λ=10,这使方程(1)中的两个项在归一化之后大致相等地加权。表9显示,当λ在大约两个数量级(1到100)的范围内时,我们的结果只是稍微受到影响(~1%)。这表明结果对宽范围内的λ不敏感。

分析IoU召回率 接下来,我们使用 ground-truth boxes 来计算不同 IoU 比率的 proposals 召回率。值得注意的是,Recall-to-IoU 度量与最终的检测精度的基本不相关[19,20,21]。使用这个指标来诊断 proposals 方法比评估 proposals 方法更合适。

在图4中,我们显示了使用300、1000和2000个proposals的结果。我们与SS和EB进行比较,根据这些方法产生的置信度,取排名前N个proposals即为N proposals。从图中可以看出,当proposals数量从2000个减少到300个时,RPN方法表现优雅。这就解释了为什么RPN在使用300个proposals时具有良好的最终检测mAP。正如我们之前分析过的,这个属性主要归因于RPN的cls项。当 proposals 较少时,SS和EB的召回率下降的比RPN更快。

一阶段检测 vs.两阶段proposals + 检测 OverFeat论文[9]提出了一种在卷积特征图的滑动窗口上使用回归器和分类器的检测方法。OverFeat 是一个一阶段、类别特定的检测流程,而我们的是两阶段级联,包括 类不可知(class-agnostic)的 proposals 和类别特定(class-specific)的检测。在OverFeat中,region-wise 特征来自一个尺度金字塔上一个长宽比的滑动窗口。这些特征用于同时确定目标的位置和类别。在RPN中,这些特征来自正方形(3× 3)滑动窗口,并且预测相对于 anchor 具有不同尺度和长宽比的proposals。虽然这两种方法都使用滑动窗口,但 region proposal 任务只是 Faster R-CNN 的第一阶段——下游的 Fast R-CNN 检测器会致力于对 proposals 进行细化。在我们级联的第二阶段,在更准确地覆盖 regions 特征的proposal boxes 中, region-wise 特征自适应地聚集[1],[2]。我们相信这些功能会带来更准确的检测结果。

为了比较一阶段和两阶段系统,我们通过一阶段 Fast R-CNN 来模拟 OverFeat 系统(从而也规避了实现细节的其他差异)。在这个系统中,“proposals”是3个尺度(128、256、512)和3个长宽比(1:1,1:2,2:1)的密集滑动窗口。训练Fast R-CNN 来预测 类别特定 的分数,并从这些滑动窗口中回归边界框位置。由于 OverFeat 系统采用图像金字塔,我们也使用从5个尺度中提取的卷积特征进行评估。我们使用[1],[2]中5个尺度。

表10比较了两阶段系统和一阶段系统的两个变种。使用 ZF模型,一阶段系统具有53.9%的mAP。这比两阶段系统(58.7%)低4.8%。这个实验验证了级联 region proposal 和目标检测的有效性。在文献[2],[39]中报道了类似的观察结果,在这两篇论文中,用滑动窗口取代 SS region proposal 会导致约6%的下降。我们也注意到,一阶段系统更慢,因为它产生了更多的proposals。

4.2 在MS COCO上的实验

https://blog.csdn.net/Jwenxue/article/details/107748365

posted @   Zenith_Hugh  阅读(703)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现

喜欢请打赏

扫描二维码打赏

微信打赏

点击右上角即可分享
微信分享提示