首页 > 其他分享 >【论文阅读】Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

【论文阅读】Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

时间:2022-08-24 23:33:51浏览次数:120  
标签:Real Towards Faster 卷积 检测 网络 特征 CNN RPN

原始题目: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

4. 实验

标签:Real,Towards,Faster,卷积,检测,网络,特征,CNN,RPN
From: https://www.cnblogs.com/odesey/p/16593443.html

相关文章