2014-07-22 7 views
-1

제발 내 영어가 제 모국어가 아닙니다.반복 비선형 최소 제곱 3d 투영 투영

저는 비선형 최소 제곱 문제를 풀려고합니다. 나는 두 세트의 점을 가지고있다. 시간 t에서의 3D 점 집합과 시간 t + 1에서의 2D 이미지 점 집합이 그들 사이의 일치를 알고 있습니다.

x(t+1) = (x(t) - y(t)*rotz + z(t)*roty + tx)*f/(-x(t)*roty + y(t)*rotx+z(t)+tz) 
y(t+1) = (x(t)*rotz + y(t) - z(t)*rotx + ty)*f/(-x(t)*roty + y(t)*rotx+z(t)+tz) 

변수 f는 focallength이다

이제 I는하기 식을 갖는다. t + 1에 대한 계산 된 점 이미지 점과 t + 1에 대한 알려진 이미지 점 사이의 잔차가 최소화되도록 rotx, roty, rotz, tx, ty, tz를 결정하려고합니다.

오류 측정으로 이미지 포인트 간 유클리드 거리를 사용합니다.

E = sqrt((x(t+1) - X)^2 + (y(t+1) - Y)^2) 

X 및 Y는 공지 된 2d- 이미지 포인트이다.

난 모든 포인트의 관련성을위한 행과 rotx, roty 등의 부분 미분을 갖는 행렬 A를 계산했습니다.

또한 rotx, roty 등의 첫 번째 추정에 대해 E의 결과를 사용하여 열 벡터 y를 계산했습니다. 내가 몇 반복에 대한 변수를 사용하여 업데이트 한 후

delta = inv(A' * A) * A' * y 

(A는 'A의 전치를 의미) : 저와 변수에 대한 업데이트를 계산하는

는 이제이 가능합니다.

그러나 예상 솔루션을 사용하여 첫 번째 추정치를 설정하더라도 알고리즘이 수렴되지 않습니다. 그래서 나는 뭔가 잘못했다고 생각합니다.

잘못된 접근 방법을 사용합니까? 누구든지 나에게 좋은 본보기에 대한 링크를 제공하거나이 문제에 대한 그의 접근법을 설명 할 수 있습니까?

대단히 감사합니다! :-)

답변

0

나는 나의 문제를 해결했다. y 벡터에 대해 계산 된 오차는 음수이어야하며, 그렇지 않은 경우 알고리즘은 수렴하지 않습니다.

y(i) = -E(i)