YOLOv3 预测包含多个中心的网格的边界框

数据挖掘 物体检测 约洛
2022-02-27 12:59:21

我最近开始学习 YOLO 和对象检测,但我有点卡住了。我想知道是否有人可以向我解释当网格单元包含多个边界框的中心时会发生什么。网格单元是否仍然预测单个边界框?

在 YOLOv3 中,图像被分成几个大小的网格单元13×13,26×2652×52如果地面实况边界框的中心在网格单元中,则这些网格单元中的每一个都负责预测边界框。

我知道每个网格单元都预测B盒子,在哪里B是锚框的数量。每个预测的维度是4+1+n, 在哪里n是类的数量。4为了bx,by,bw,bh, 1 为客观性分数。bx,by,bw,bh定义如下:

bx=σ(tx)+cxby=σ(ty)+cybh=ethphbw=etwpw

phpw是锚框的高度和宽度。tx,ty,th,tw是从网格单元的单个锚框做出的预测。我的困惑是当一个网格单元包含多个边界框的中心时,有多个值tx,ty,th,tw,但是YOLOv3训练过程的描述或者上面的方程似乎没有考虑到这一点。

1个回答

它取决于对象分数非最大抑制(NMS)的阈值的组合:

客观性分数C

除了位置和尺寸预测(tx,ty,th,tw) 对于每个盒子,一个客观性分数C也为每个盒子预测。它告诉我们一个对象在某个预测边界框 (BB) 内的可能性有多大。

但是需要多少才能确保一个物体在里面?

这并没有一个准确的答案,而是我们使用了一定的阈值例如,我们可以设置一个 BB 包含一个对象当且仅当C>0.5(阈值 =0.5)。该值取决于实现,并且可以像在此repo中一样向用户询问

非最大抑制 (NMS)

现在我们知道有一个客观性得分阈值,我们可以用以下方式重新表述这个问题:

如果同一个网格单元的两个 BB有一个 objectness 分数怎么办>临界点?这两个BB中的一个会被淘汰吗?

这取决于非最大抑制中使用的阈值如果这个概念对您来说是新概念,我向您推荐本教程

从广义上讲,它用于丢弃对象分数低于分配给具有最高对象分数的同一类的边界框的边界框,并且与它的重叠大于我们现在谈论的阈值。

这意味着 NMS 中使用的更高阈值将导致丢弃更少数量的框(我们将允许框之间更大的重叠)。

结论

所以,总而言之,在问题的情况下(每个网格单元有多个对象)。只有具有以下值的框C高于其阈值将被考虑。在这些盒子中,如果有一些被分配到同一类,那么具有最高的盒子C将被考虑以及在应用非最大抑制后未被消除的那些。