如何在YOLO V1中定义边界框标签?

时间:2019-08-01 10:49:06

标签: yolo

  1. 我正在尝试复制yolo v1,但是在创建标签时遇到了一些问题。
  2. Yolo v1具有2个边界框,那么,当网格中有一个对象时,如何选择要放置位置信息的边界框?

例如

  1. 在416 * 416图片中,有一个对象[x,y,w,h] = [100,200,300,400]
  2. 跟随yolo纸,将位置标准化为[0.25,0.084,0.72,0.96]
  3. 就像在yolo论文中一样,我需要创建一个张量7 * 7 * 30,其中大多数为0,但在[4,5 ,:]中张量应为30的向量长度: [confidence1,x1,y1,w1,h1,confidence2,x2,y2,w2,h2,c0,c1 ...] 像这样: enter image description here

我的问题是,什么是[confidence1,x1,y1,w1,h1,confidence2,x2,y2,w2,h2,]?

选择A,B,C的哪个?以及为什么?

enter image description here

1 个答案:

答案 0 :(得分:0)

在每个单元格中,将生成具有其置信度得分的固定数量(B)的边界框。置信度得分是通过将每个对象的概率及其在预测框和地面真实框的并集上的交点相乘而得出的。每个边界框由5个数字表示:四倍(x; y; w; h),以及该框的置信度得分。 x和y是框中心的坐标,w和h分别是框的宽度和高度。这四个数字是相对于图像绝对宽度和高度的浮点值,它们可以在0.0到1.0之间。置信度得分表示包含对象的盒子的相似度。每个网格单元包含针对不同类别数量的条件类别概率,因此,对于每个类别的对象,每个单元中都有一个概率,而与B的值无关。请注意,条件类别概率表示属于特定类别的对象以包含对象的盒子为条件。因此,对于每个网格单元,有B×5的数字指示边界框信息和C类概率。将该预测信息编码为(S; S; B×5 + C)形式的张量。

如论文所述:

  

预测编码为S×S×(B * 5 + C)张量。对于   在PASCAL VOC上评估YOLO,我们使用S = 7,B = 2。 PASCAL VOC有20   标记的类,因此C = 20。我们最终的预测是7×7×30张量。

由于数据集具有20个类,并且每个单元格中都有2个边界框,因此您将拥有: B×2 + 20 = 2×5 + 20 = 30 。这20个是类概率,可以为0。在张量中,您放置5个零,因此我假设您有5个类的对象。因此,在这种情况下:

B×2 + 5 = 9,并且如果您的 S 是YOLO中的默认值7,则您的张量将为以下长度: 7×7×9 = 4989 。因此,对于每个边界框,您有9个值,并且所有这些长度9的向量都相互附加。对于您的问题, A 选项似乎更有可能。

enter image description here

此图适用于YOLOv3,在您的情况下,对于每个单元格,您有2个边界框和20个类(与之相比,有5个框和6个类)。但是想法很相似。