目前我正在测试用于对象检测的 yolo 9000 模型,在论文中我了解到图像被分割成 13X13 的盒子,并且在每个盒子中我们计算 P(Object),但是我们如何计算呢?模型如何知道这个盒子里是否有物体,我需要帮助才能理解
我正在使用张量流
谢谢,
目前我正在测试用于对象检测的 yolo 9000 模型,在论文中我了解到图像被分割成 13X13 的盒子,并且在每个盒子中我们计算 P(Object),但是我们如何计算呢?模型如何知道这个盒子里是否有物体,我需要帮助才能理解
我正在使用张量流
谢谢,
他们训练置信度分数 = P(object) * IOU。对于地面实况框,它们取 P(object)=1,而对于其余网格像素,地面实况 P(object) 为零。您正在训练您的网络以告诉您该网格位置中是否有某个对象,即如果不是对象则输出 0,如果部分对象则输出 IOU,如果对象存在则输出 1。因此,在测试时,您的模型已经能够判断该位置是否有物体。
正如他们在论文(第 2 页第 2 节)中提到的那样,信心分数是 = P(object) * IOU。但是在那段中,他们提到如果有一个对象,那么信心分数将是 IOU,否则为零。所以这只是一个指导方针。
在测试期间,YOLO 网络从默认设置值获取 IOU。那是0.5。
确实有 13x13 个网格单元,但 P(object) 是为每个 5x13x13 锚框计算的。来自 YOLO9000 论文:
当我们移动到锚盒时,我们还将类预测机制与空间位置解耦,而是为每个锚盒预测类和对象。
我还不能发表评论,因为我是新来的,但如果你想知道测试时间,它有点像 RPN。在每个网格单元上,5 个锚框每个预测一个边界框,该边界框可以大于网格单元,然后使用非极大值抑制来挑选顶部的几个框进行分类。
P(object) 只是一个概率,网络不“知道”那里是否真的有一个对象。
如果您有兴趣,还可以查看 region_layer.c 中 forward_region_layer 方法的源代码,并跟踪如何计算损失。