如何计算对象检测算法的假正例率,其中每张图像可能包含多个对象?
在我的数据中,一张图像可能包含多个对象。我将一个预测框与真实框的IoU超过一定阈值时计为真正例,否则计为假正例。例如:我有2个预测边界框和2个真实边界框:
我计算了每对预测和真实边界框的IoU:IoU = 0.00, 0.60, 0.10, 0.05
threshold = 0.50
在这种情况下,我有TP的例子吗?您能解释一下吗?
回答:
总结,具体:是的,您有一个TP;您还有一个FP和一个FN。
总结,详细:您的预测模型正确识别了一个GT(真实)框。它错过了另一个。它错误地识别了一个第三个框。
分类逻辑:
至少,您的IoU数值应该是一个矩阵,而不是一个线性序列。对于M
个预测和N
个GT框,您将有一个N
xM
的矩阵。您的看起来像这样:
0.00 0.60
0.10 0.05
现在,找到矩阵中最大的值,0.60。这超过了阈值,所以您声明匹配并从矩阵中删除该预测和该GT框。这给您留下了一个相当无聊的矩阵:
0.10
由于这个值低于阈值,您已经没有匹配了。您还剩下一个预测和一个GT。有了这个“命中”,您的分类集中有三个对象:两个预期的对象,以及预测器创建的第三个对象。您这样编码您的gt和pred列表:
gt = [1, 1, 0] // 前两个对象是有效的;第三个是幻影。
pred = [1, 0, 1] // 识别了一个实际框和幻影。
这足够清楚了吗?