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