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_rcnn_2015.md
状态:已翻译。
元数据
- Slug:
faster_rcnn_2015 - 年份: 2015
- 会议: NeurIPS
- 作者: Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun
- 阅读状态: read complete
- 计算范式: 单 GPU 深度学习
- 主要来源: PDF、抽取文本
计算设置
论文明确报告了在 K40 GPU 上的推理时间,但选择性搜索候选区域生成除外,该部分在 CPU 上评估。表 5 是关键硬件声明:时间以毫秒为单位,在 K40 GPU 上,选择性搜索候选区域步骤除外。报告的全 VGG-16 Faster R-CNN 系统以每张图 198 ms 运行,即 5 fps,ZF 版本以每张图 59 ms 运行,即 17 fps。
对于更大的 COCO 训练,论文声明模型在 8-GPU 实现上训练。RPN 的有效 mini-batch size 变为 8,每 GPU 一张图,Fast R-CNN 为 16,每 GPU 两张图。COCO RPN 和 Fast R-CNN 步骤各训练 240k 次迭代,学习率 0.003,再以 0.0003 训练 80k 次,学习率改变是因为 mini-batch size 改变。
瓶颈
Fast R-CNN 之后,区域候选生成成为瓶颈。Fast R-CNN 已通过共享图像级卷积特征降低了检测器的重复卷积成本,因此 CPU 候选区域算法成为最慢的剩余阶段。论文称选择性搜索在 CPU 上每张图约需 2 秒,EdgeBoxes 约需每张图 0.2 秒,候选区域步骤可能消耗与检测网络一样多的时间。
这是一个设备不匹配问题。检测器是 GPU 加速且密集卷积密集的,但广泛使用的候选区域方法是基于超像素或手工设计边缘线索的 CPU 算法。Faster R-CNN 的核心举措是使候选区域生成为一个 GPU CNN 计算,复用已计算好的卷积特征图。用论文的话说,一旦有了全图特征,候选区域的边际成本就变得很小。
方法适配
Faster R-CNN 通过以下方式适配检测器管线:
- 增加区域候选网络(Region Proposal Network),与检测器共享全图卷积特征。
- 使用多尺度和多长宽比的 anchor。
- 将候选区域数量减少到约 300。
- 使候选区域生成为很小的边际 GPU 成本。
- 用共享卷积特征训练候选区域生成和检测阶段。
RPN 是检测器特征图上的一个小型全卷积网络。在每个滑动窗口位置,它预测多尺度和多长宽比 anchor 的物体性得分和边界框回归偏移。这适合 GPU 计算,因为昂贵的卷积骨干在全图上共享,而候选区域头部是特征网格上的密集局部操作。论文的默认 anchor 设置使用三种尺度和三种长宽比,使候选区域词汇表足够规整以在所有位置评估。
设计也是一个推理预算适配。R-CNN 通过 CNN 评估约 2000 个缩放变形区域。Fast R-CNN 通常仍使用 2000 个选择性搜索框。Faster R-CNN 将测试时候选区域数量削减至 300,同时保持检测 mAP。这减少了 RoI 池化后的逐区域工作:非极大抑制、全连接层和 softmax 分类。表 5 显示使用选择性搜索候选区域时,逐区域 VGG 成本为 174 ms,使用 RPN 候选区域时降至 47 ms,因为区域更少且候选区域已经排序。
训练在报告的最简单方案中并非完全端到端。论文采用了一个务实的四步交替算法:训练 RPN,使用 RPN 候选区域训练 Fast R-CNN,从检测器初始化精调 RPN,然后用共享卷积层精调检测器特定层。近似联合训练将训练时间减少约 25-50%,但报告的方法保持实现保守,避免通过候选区域坐标的不稳定梯度。
证据
时间表是最清晰的计算证据。在 K40 设置上,VGG 加选择性搜索和 Fast R-CNN 花费 146 ms 卷积、1510 ms 候选区域、174 ms 逐区域、总计 1830 ms,0.5 fps。VGG 加 RPN 和 Fast R-CNN 花费 141 ms 卷积、10 ms 候选区域、47 ms 逐区域、总计 198 ms,5 fps。更轻的 ZF 网络达到 31 ms 卷积、3 ms 候选区域、25 ms 逐区域、总计 59 ms,17 fps。
准确率表显示加速并非以牺牲定位质量为代价。在 PASCAL VOC 2007 上使用 VGG-16,共享 RPN 特征和 300 个候选区域在 VOC07 训练下达到 69.9 mAP,VOC07+12 下达到 73.2,COCO+VOC07+12 下达到 78.8。在 VOC 2012 上,RPN 加 300 个候选区域在 VOC07++12 下达到 70.4 mAP,COCO+VOC07++12 下达到 75.9。anchor 消融支持计算设计:一种尺度一种比例下根据尺度不同为 65.8 或 66.7 mAP,而默认的三种尺度三种比例达到 69.9。
COCO 部分增加了更大数据的证据。Faster R-CNN 使用 VGG-16 和 300 个 RPN 候选区域,在 COCO train 上训练时,COCO test-dev 上达到 42.1 mAP@0.5 和 21.5 mAP@[.5,.95],而论文的 Fast R-CNN 基线为 39.3 和 19.3。在 COCO trainval 上训练给出 42.7 和 21.9,测试仍约 200 ms 每张图。
单阶段比较也很重要。使用 ZF 的 20,000 个候选区域的密集滑动窗口仿真达到 53.8-53.9 mAP,而两阶段 RPN 加 Fast R-CNN 系统仅用 300 个候选区域达到 58.7 mAP。
历史影响
Faster R-CNN 在共享 CNN 计算下统一了候选区域生成和目标检测。在历史上,它标志着目标检测不再将候选区域生成视为独立的 CPU 预处理器,而是将其作为神经网络的一部分。瓶颈从外部候选区域算法转移到了 GPU 特征提取和逐区域分类。
它成为两阶段检测系统以及 ILSVRC/COCO 时代密集视觉管线的基础。论文报告 RPN 是赢得 2015 年 ILSVRC 和 COCO 竞赛的构建模块,包括用 ResNet-101 替换 VGG-16 的系统。
局限
- 训练在报告方案中仍是多阶段的,近似联合训练忽略了关于候选区域边界框坐标的梯度。
- VGG-16 仍主导运行时间和内存;RPN 移除了候选区域瓶颈,但未移除重型骨干的成本。
- anchor 尺度和长宽比是手工设计选择。
- 设计保持两阶段级联,这在论文中提高了准确率,但比单一密集检测器留下更多额外组件。
- 选择性搜索仍用作时间基线,但其 CPU 实现使比较成为跨设备管线比较,而非纯 GPU 算法比较。
链接
- 所属计算范式:compute spine
- 前一张链接卡:Fast R-CNN 2015
- 方法索引:cnn
- Ledger 更新:compute bottlenecks