【问题标题】:One stage vs two stage object detection一级与两级目标检测
【发布时间】:2021-01-28 17:43:30
【问题描述】:
我正在阅读YOLOv4 论文,该论文经常使用术语one & two stage object detection。我无法理解这两种类型的物体检测器之间有什么区别。我假设
- 一个阶段仅使用一个网络同时进行区域检测和对象分类
- 两个阶段使用 2 个不同的网络执行上述操作
这个假设正确吗?
【问题讨论】:
标签:
machine-learning
computer-vision
artificial-intelligence
object-detection
yolo
【解决方案1】:
它不是“区域检测+对象分类”,而是“(1)区域提议+(2)两阶段检测器中的分类和定位。
(1-region proposal)是由一个叫做 Region Proposal Network(RPN,简称 RPN)的网络完成的。 RPN 用于决定“在哪里”寻找,以减少整个推理过程的计算需求。 RPN 快速有效地扫描每个位置,以评估是否需要在给定区域进行进一步处理。它通过输出 k 个边界框建议来做到这一点,每个建议都有 2 个分数,表示每个位置是否存在对象的概率。换句话说,它用于查找最多可包含对象的预定义数量(~2000)的区域(边界框)。
对象检测中的一个重要问题是生成可变长度的边界框列表。可变长度问题在 RPN 中通过使用锚点来解决:固定大小的参考边界框均匀地放置在整个原始图像中。我们不必检测对象在哪里,而是将问题建模为两部分。对于每个主播,我们要求:
- 此锚点是否包含相关对象?
- 我们将如何调整此锚点以更好地适应相关对象?
在获得可能的相关对象列表及其在原始图像中的位置之后,解决问题就变得更加直接。使用 CNN 提取的特征和具有相关对象的边界框,我们应用感兴趣区域 (RoI) 池化并将与相关对象对应的那些特征提取到新的张量中。
接下来在第二阶段,R-CNN 模块使用上述信息:
- 对边界框中的内容进行分类(或丢弃它,使用
“背景”作为标签)。
- 调整边界框坐标(使其更适合对象)。
【解决方案2】:
一级检测器:
对象分类和边界框回归直接完成,无需使用预先生成的区域提议(候选对象边界框)。
两级检测器:
-
区域建议的生成,例如通过 R-CNN 和 Fast R-CNN 中的选择性搜索,或 Faster R-CNN 中的区域建议网络 (RPN)。
-
每个区域提议的对象分类。此外,还可以做其他事情,例如用于优化区域建议的边界框回归、二进制掩码预测等。
两级检测器通常能达到更好的准确度,但比一级检测器慢。
(图片取自《On the Performance of One-Station and Two-Stage Object Detectors in Autonomous Vehicle Using Camera Data》)