问题描述
我有两个装订盒。一个用于预测,其中包含3行 第二个是包含两行的地面真相。
真理底盒( x,y,w,h )
[[210,98,103,88],[62,75,150,120]]
谓词框( x,y,w,h )
[[218,104,94,69],[154,184,34,9],[67,77,143,100]]
如果我需要使用MATLAB函数bboxOverlapRatio计算边界框重叠率。该函数使用谓词中的第一行来评估地面真理的第一行框。然后,第二行的地面真理与第二行的谓词框一起求值。功能评估 使用顺序技术逐行绑定框。 问题是:什么功能可以通过使用最接近的位置(位置)来重新排列谓词框,或根据它们在图像中的出现自动重新排列谓词框?我想重新排列以提高比率。
如果没有MATLAB函数,该怎么办?
这是示例代码:
groundTruth = [210 98 103 88,62 75 150 120]
predicate = [218 104 94 69,154 184 34 9,67 77 143 100];
ratio = bBoxOverlapRatio(groundTruth,predicate)
感谢您的帮助。
解决方法
根据功能bboxOverlapRatio的文档,
输出矩阵中的每个(I,J)元素对应于bboxA中的I行与bboxB中的J行之间的重叠率。
对于该函数,您的第一个参数(bboxA)为groundTruth
,bboxB为predicate
。因此,在比率数组中,元素[0,1]
表示grountTruth[0]
和predicate[1]
之间的重叠比率。因此,对于groundtruth[1]
,您可以迭代[1,0],[1,1],2]
并找到其中的最大值。由于[1,2]
最大,这表明对于groundTruth中的第1行,谓词中的第2行具有最高的值。
这可能很有用-max,尤其是返回线性索引部分。