一级与二级目标检测

One stage vs two stage object detection

我正在阅读 YOLOv4 论文,其中经常使用术语 一级和二级目标检测 。我无法理解这两种物体检测器之间的区别。我假设

这个假设是否正确?

它不是“区域检测+对象分类”,而是“(1)区域建议+(2)两级检测器中的分类和定位。

(1-region proposal)是由所谓的Region Proposal Network(简称RPN)完成的。 RPN 用于决定“在哪里”查看,以减少整个推理过程的计算要求。 RPN 快速高效地扫描每个位置,以评估是否需要在给定区域进行进一步处理。它通过输出 k 个边界框建议来做到这一点,每个边界框建议都有 2 个分数,表示每个位置是否存在对象的概率。换句话说,它用于查找最多预定义数量(~2000)的区域(边界框),其中可能包含对象。

对象检测中的一个重要问题是生成可变长度的边界框列表。 RPN 中的可变长度问题通过使用锚点来解决:固定大小的参考边界框在整个原始图像中均匀放置。我们不必检测物体在哪里,而是将问题建模为两个部分。对于每个锚点,我们要求:

  • 这个锚点是否包含相关对象?
  • 我们如何调整这个锚点以更好地适应相关对象?

在获得可能的相关对象及其在原始图像中的位置的列表后,解决这个问题就变得更直接了。使用 CNN 提取的特征和具有相关对象的边界框,我们应用感兴趣区域 (RoI) 池化并将与相关对象对应的那些特征提取到新的张量中。

接下来在第二阶段,R-CNN 模块使用以上信息:

  • 对边界框中的内容进行分类(或丢弃它,使用 “背景”作为标签)。
  • 调整边界框坐标(使其更适合对象)。

One-stage 检测器:

对象分类和bounding-box回归是直接完成的,没有使用pre-generated区域提议(候选对象bounding-boxes)。

Two-stage 检测器:

  1. 生成区域提案,例如通过 R-CNN 和 Fast R-CNN 中的选择性搜索,或 Faster R-CNN.
  2. 中的区域提议网络 (RPN)
  3. 每个区域提案的对象分类。此外,还可以做其他事情,例如 bounding-box 用于细化区域建议的回归,binary-mask 预测等

Two-stage 检测器通常比 one-stage 检测器更准确,但速度较慢。

(图片取自“On the Performance of One-Stage and Two-Stage Object Detectors in Autonomous Vehicles Using Camera Data”)