"BB regression algorithms used in R-CNN variants" 与"BB in YOLO"本地化技术有什么区别?



问题:

">

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

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

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

  • 基于区域

    • 在这里,我们让神经网络预测连续变量(BB坐标),并将其称为回归。
    • 定义的回归(根本不是线性的),只是一个 CNN 或其他变体(所有层都是可微的),输出是四个值 (r,c,h,w),其中 (r,c) 指定左角位置的值和 (h,w) BB 的高度和宽度。
    • 为了训练这个 NN,当 NN 的输出与训练集中标记的 (r,c,h,w) 非常不同时,使用平滑的 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 在另一个上的失败/成功点是什么?

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

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

本质区别在于,两级更快的R-CNN更准确,而单级YOLO/SSD类更快。

在两阶段架构中,第一阶段通常是区域建议,而第二阶段是分类和更准确的定位。您可以将第一阶段视为类似于单阶段架构,区别在于区域提案仅将"对象"与"背景"分开,而单阶段区分所有对象类。更明确地说,在第一阶段,也以类似滑动窗口的方式,RPN 表示是否存在对象,如果有 - 大致给出它所在的区域(边界框)。第二阶段使用该区域进行分类和边界框回归(以便更好地定位),首先汇集来自提议区域的相关特征,然后通过类似快速 R-CNN 的架构(执行分类+回归)。

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

最新更新