2009-06-26 2 views
2

나는 각각 n 포인트의 참조 세트와 그 포인트를 '근사값으로하는'세트를 가지고 있습니다. 근사치와 참조 세트 간의 절대/백분율 오차를 어떻게 알 수 있습니까?2 세트의 3D 포인트에 대한 백분율 오차

다른 말로하면, 나는 캔 애니메이션과 시뮬레이션을 가지고 있습니다. 단일 숫자의 관점에서 2 사이의 '드리프트'가 얼마나되는지 어떻게 알 수 있습니까? 즉, 시뮬레이션이 애니메이션의 정점과 비교하여 정점을 근사하는 것이 얼마나 좋은가?

저는 실제로 모든 정점에 대해 이렇게합니다 : | actual - reference |/| actual | vert 수를 나눔으로써 오류를 평균화 할 수 있습니다. 이게 맞습니까?

답변

2

이 측정이 정말 백분율 값해야합니까 : 각 관절 단위 길이 인 경우 평균 드리프트가 될 것 - 즉, 부모 공동의 공동 방위에 대한 정규화 된 평균 오차를 얻으려면? 당신이 하나의 참조 세트를 가지고 있고,이 세트를 근사치로하는 몇 개의 세트가 있다고 생각하고 어떤 의미에서 "최고의"것을 선택하려고합니다. 이 방법으로/numvertices

큰 장점 | - | (^ 2 참조 실제 1..N)

avgSquareDrift = 합계 :

나는 실제와 기준 사이의 제곱 거리를 추가 할 것 우리는 값 비싼 연산 인 제곱근을 적용 할 필요가 없다는 것입니다.

1

모든 정점에 대해 수식을 합친 다음 (그리고 나서 verts 수로 나누면) 모든 정점에 대한 평균 위치 오류 백분율이 계산됩니다.

그러나 원점에 가까운 정점은 크기가 더 작기 때문에 동일한 위치 변경에 대해 더 큰 "백분율 오차"를 갖기 때문에이 백분율 오차는 원하는 바가 아닙니다.

당신은 전혀 아무것도에 의해 분할하지 않는 경우, 당신은 당신이 원하는 정확하게 할 수있다 어떤 세계 단위의 평균 드리프트해야합니다 :

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

당신은 더 적절한 무언가에 의해 분할 할 수 있습니다를 의미있는 단위없는 숫자를 얻으려는 당신의 특별한 상황. average_drift를 모델의 높이로 나눈 경우 모델 크기의 백분율로 오류가 발생하므로 유용 할 수 있습니다.

접합 된 모델의 꼭지점 인 경우와 같이 개별 꼭지점이 '부모가있는'꼭지점에서 먼 거리에있는 경우 개별 꼭지점에 오류가 발생할 가능성이 더 높으면 각 오류를 길이로 나눌 수 있습니다

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