1

问题:

“基于区域的对象检测器中的 BB 回归算法”与“单次检测器中的边界框”产生的边界框(BB)有什么区别?如果不是为什么,它们可以互换使用吗?

在了解用于对象检测的 R-CNN 和 Yolo 算法的变体时,我遇到了执行对象检测的两种主要技术,即基于区域的 (R-CNN) 和基于小众滑动窗口的 (YOLO)。

两者都在两种方案中使用不同的变体(从复杂到简单),但最后,它们只是使用边界框来定位图像中的对象!我只是想专注于下面的本地化(假设正在发生分类!),因为这与所提出的问题更相关并简要解释了我的理解:

  • 基于区域

    • 在这里,我们让神经网络预测连续变量(BB 坐标)并将其称为回归。
    • 定义的回归(根本不是线性的),只是一个 CNN 或其他变体(所有层都是可微的),输出是四个值 (,,ℎ,),其中 (,) 指定位置的值左角和 (ℎ,) BB 的高度和宽度。
    • 为了训练这个 NN,当 NN 的输出与训练集中标记的 (,,ℎ,) 非常不同时,使用平滑的 L1 损失来学习精确的 BB!
  • 基于小众滑动窗口(卷积实现!)

    • 首先,我们将图像划分为 19*19 的网格单元。
    • 将对象分配给网格单元的方法是选择对象的中点,然后将该对象分配给包含对象中点的任何一个网格单元。所以每个对象,即使对象跨越多个网格单元,该对象也只分配给 19 x 19 网格单元之一。
    • 现在,您获取此网格单元的两个坐标并使用某种方法计算该对象的精确 BB(bx, by, bh, bw),例如
    • (bx, by, bh, bw) 是相对于网格单元格的,其中 x 和 y 是中心点,h 和 w 是精确 BB 的高度,即边界框的高度指定为整体宽度的一部分网格单元和 h&w 可以 >1。
    • 论文中指定了多种计算精确BB的方法。

两种算法:

  • 输出精确的边界框。!

  • 在监督学习设置中工作,他们使用带标签的数据集,其中标签是存储的边界框(使用labelimg等工具手动标记我的一些注释器)以 JSON/XML 文件格式为每个图像。

我试图在更抽象的层面上理解这两种本地化技术(以及对这两种技术有深入的了解!)以更清楚地了解:

  • 它们在什么意义上是不同的?, &

  • 为什么创建 2,我的意思是 1 在另一个上的失败/成功点是什么?

  • 它们可以互换使用,如果不能,那为什么?

如果我在某个地方错了,请随时纠正我,非常感谢您的反馈!引用研究论文的任何特定部分都会更有价值!

4

1 回答 1

2

本质区别在于,两阶段 Faster R-CNN-like 更准确,而单阶段 YOLO/SSD-like 更快。

在两阶段架构中,第一阶段通常是区域提议,而第二阶段用于分类和更准确的定位。您可以将第一阶段视为类似于单阶段架构,不同之处在于区域提议仅将“对象”与“背景”分开,而单阶段则区分所有对象类别。更明确地说,在第一阶段,同样以类似滑动窗口的方式,RPN 表示是否存在对象,如果存在 - 粗略地给出它所在的区域(边界框)。该区域被第二阶段用于分类和边界框回归(为了更好的定位),首先汇集来自提议区域的相关特征,

关于您关于它们之间互换的问题-您为什么要这样做?通常,您会根据最紧迫的需求(例如延迟/功率/准确性)来选择架构,并且您不希望在它们之间进行互换,除非有一些复杂的想法可以以某种方式帮助您。

于 2019-04-07T10:59:31.747 回答