Tensorflow Object Detection API中的IOU是不是错了?
Is the IOU in Tensorflow Object Detection API wrong?
我只是深入研究了 Tensorflow 对象检测 API 代码,尤其是 eval_util 部分,因为我想实现 COCO 指标。
但我注意到指标仅使用具有 [0, 1] 之间标准化坐标的边界框计算。
没有使用纵横比或绝对坐标。
那么,这是否意味着根据这些结果计算的并集交集不正确?
我们以一个 200x100 的图像像素为例。
如果框向左偏移 20px,则在标准化坐标中为 0.1。
但是如果它会偏离顶部 20px,那么在标准化坐标中就是 0.2。
这是否意味着,偏离顶部比偏离侧面更难扣分?
我相信预测坐标的大小已调整为 eval 二进制文件中的绝对图像坐标。
但我要说的另一件事是 IOU 是尺度不变的,因为如果你按某个因子缩放两个盒子,它们仍然会有相同的 IOU 重叠。例如,如果我们在 x 方向缩放 2,在 y 方向缩放 3:
如果A是(x1, y1, x2, y2),B是(u1, v1, u2, v2),那么IOU((A, B))
= IOU((2*x1, 3*y1, 2*x2, 3*y2), (2*u1, 3*v1, 2*u2, 3*v2))
这意味着在归一化坐标中求值应该得到与在绝对坐标中求值相同的结果。
我只是深入研究了 Tensorflow 对象检测 API 代码,尤其是 eval_util 部分,因为我想实现 COCO 指标。
但我注意到指标仅使用具有 [0, 1] 之间标准化坐标的边界框计算。 没有使用纵横比或绝对坐标。
那么,这是否意味着根据这些结果计算的并集交集不正确? 我们以一个 200x100 的图像像素为例。 如果框向左偏移 20px,则在标准化坐标中为 0.1。 但是如果它会偏离顶部 20px,那么在标准化坐标中就是 0.2。
这是否意味着,偏离顶部比偏离侧面更难扣分?
我相信预测坐标的大小已调整为 eval 二进制文件中的绝对图像坐标。
但我要说的另一件事是 IOU 是尺度不变的,因为如果你按某个因子缩放两个盒子,它们仍然会有相同的 IOU 重叠。例如,如果我们在 x 方向缩放 2,在 y 方向缩放 3: 如果A是(x1, y1, x2, y2),B是(u1, v1, u2, v2),那么IOU((A, B)) = IOU((2*x1, 3*y1, 2*x2, 3*y2), (2*u1, 3*v1, 2*u2, 3*v2))
这意味着在归一化坐标中求值应该得到与在绝对坐标中求值相同的结果。