我正在做一个关于人体姿势估计的项目,我正在尝试使用 MPJPE 作为误差度量(每个相应关节之间的欧几里得距离的平均值)。该指标有两个变体:
- 协议-I,您只需计算欧几里得距离的平均值。
- Protocol-II,您对一个姿势应用刚性变换,以便它可以与另一个姿势尽可能地对齐。这是使用 Procrustes 算法完成的。
我的问题是,每次我在 PI 下计算 MPJPE 时,我都会得到更大的数字,而我的 P-II 数字与其他作品一致。在 MPJPE PI 上是否还有其他操作,例如额外的对齐,以便他们可以计算出更好的数字?作为参考,我的代码是:
def mpjpe_p1(target, pred):
pred = convert_to_form(pred, '16.x') # I have 16 joints in the pose,
target = convert_to_form(target, '16.x') # and these methods transform the
# pose from whatever form it is to (16, 3)
error = 0
for i in pred.shape[0]:
error += numpy.linalg.norm(pred[i, :] - target[i, :], 2)
error = numpy.mean(error)
return error