私は人間の姿勢推定に関するプロジェクトに取り組んでおり、MPJPE をエラー メトリック (対応する各関節間のユークリッド距離の平均) として使用しようとしています。このメトリックには、次の 2 つのバリアントがあります。
- ユークリッド距離の平均を計算するだけのプロトコル-I。
- Protocol-II では、1 つのポーズに剛体変換を適用して、他のポーズと可能な限り一致させることができます。これは、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