2组3D点的百分比误差

时间:2009-06-26 16:15:08

标签: graphics

我有一组n个参考点,另一个“近似”这些点。如何找出近似值与参考值之间的绝对值/百分比误差。

换句话说,我有一个罐头动画和一个模拟。我如何知道单个数字2之间的“漂移”是多少?也就是说,与动画相比,模拟近似顶点有多好。

我实际上为所有顶点做了类似的事情:| actual - reference | / | actual |然后通过除以顶点数来平均误差。这是否正确?

2 个答案:

答案 0 :(得分:2)

此测量值是否真的必须是百分比值?我猜你有一个参考集,然后是几个近似于这个集合的集合,你想从某种意义上选择一个“最好的”。

我会在实际参考和参考之间添加平方距离:

avgSquareDrift = sum(1..n,| actual - reference | ^ 2)/ numvertices

这种方法的主要优点是我们不需要应用平方根,这是一项代价高昂的操作。

答案 1 :(得分:1)

如果你对所有顶点的公式求和(然后除以顶点数),你将计算出所有顶点的平均百分比误差。

然而,这个百分比误差可能不是您想要的,因为更接近原点的顶点对于相同的位移将具有更大的“百分比误差”,因为它们的幅度更小。

如果你没有任何分数,你将获得世界单位的平均漂移,这可能正是你想要的:

average_drift = sum(1->numvertices, |actual - reference|) / numvertices

您可能希望除以更适合您特定情况的内容,以获得有意义的无单位数。如果将average_drift除以模型的高度,则误差将占模型大小的百分比,这可能很有用。

如果单个顶点距离顶点“父级”的距离很远,则可能会出现更多错误,如果它们是连接模型的顶点,则可以将每个错误除以他们的父联合得到关节方向归一化的平均误差 - 即每个关节的单位长度的平均漂移是多少:

orientation_drift = sum(1->numvertices, |actual - reference| / jointlength) / numvertices