关于Yolo目标检测算法的概念问题

问题描述 投票:0回答:1

我的理解是,Anchor Boxes(在 Yolo v2 算法中)的动机是在 Yolo 的第一个版本(Yolo v1)中不可能检测同一网格框中的多个对象。我不明白为什么会这样。

此外,作者的原始论文(Yolo v1)有以下引用:

“每个网格单元预测 B 个边界框以及这些框的置信度分数。这些置信度分数反映了模型对该框包含对象的置信度,以及它认为该框预测的准确度。”

这不是说明一个网格单元可以识别多个物体吗?在他们的论文中,他们将 B 视为 2。为什么不将 B 视为任意更高的数字,例如 10?

第二个问题:锚框尺寸如何与边界框尺寸相关联,以检测特定对象?有些网站说 Anchor Box 只定义了形状,而另一些网站则说它定义了形状和大小。无论哪种情况,锚框如何与边界框绑定?

machine-learning deep-learning computer-vision object-detection yolo
1个回答
2
投票

你说得对,YOLOv1 有多个 (B) 边界框,但这些边界框没有以有效或系统的方式分配给基本事实,因此也不能足够准确地推断边界框。

正如您可以在互联网上的博客文章中看到的那样,锚点/默认框是原始图像中的一个框,它对应于特定特征图中的特定单元格,并分配了特定的宽高比和比例。 比例通常由特征图决定(更深的特征图 -> 大锚点比例),并且长宽比各不相同,例如{1:1、1:2、2:1} 或 {1:1、1:2、2:1、1:3、3:1}。 通过比例和纵横比,指定了一个特定的形状,并将该形状的位置由特征图中当前单元的位置指定,与原始图像中的地面真实边界框进行比较。

不同的论文有不同的分配方案,但通常是这样的:(1)如果带有GT的原始图像上的anchor的IoU超过某个阈值(例如0.5),那么这是对anchor的正分配, (2) 如果它低于某个阈值(例如 0.1),那么它是负分配,并且 (3) 如果这两个阈值之间存在差距 - 那么之间的锚点将被忽略(在损失计算中)。

这样,锚点实际上就像一个负责特定情况的“探测器头”,这在形状上与它最相似。因此,它负责检测形状与其相似的对象,并且它推断每个类的置信度,以及相对于它的边界框参数,即修改锚点的高度、宽度和中心(在两个轴上)的程度)以获得正确的边界框。 由于这种分配方案在不同锚点之间有效地分配了责任,因此边界框预测更加准确。

YOLOv1 方案的另一个缺点是它解耦了边界框和分类。一方面,这节省了计算量,但另一方面 - 分类是在网格单元的级别上。因此,边界框的 B 选项都具有相同的类别预测。这意味着,例如,如果有多个“不同”类的对象具有相同的中心(例如,持有一只猫的人),那么至少除了一个之外的所有对象的分类都是错误的。请注意,理论上相邻网格单元的其他预测可能会补偿这种错误的分类,但这并没有得到保证,特别是因为根据 YOLOv1 的方案,中心是分配标准。

© www.soinside.com 2019 - 2024. All rights reserved.