camera model - university of minnesotahspark/csci5980/jacobian_bundle_prt2.pdf · ªºªº «»«»...

85

Upload: others

Post on 19-May-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 2: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº

••

Page 3: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 4: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 5: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 6: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 7: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 8: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 9: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 10: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 11: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 12: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 13: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 14: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº

function df_dx = JacobianX_1D(K, R, C, X) x = K * R * (X-C); u = x(1); w = x(2); del = K * R; du_dc = del(1,:); dw_dc = del(2,:); df_dx = [(w*du_dc-u*dw_dc)/w^2];

Page 15: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº

for j = 1 : 10 df_dX = []; delta_b = []; for i = 1 : size(c,2) df_dX = [df_dX; JacobianX(eye(2), R{i}, c(:,i), x)]; u = R{i} * (x-c(:,i)); delta_b = [delta_b; -u(1)/u(2)]; end jacobian = df_dX; norm(delta_b) delta_x = inv(jacobian'*jacobian+lambda*eye(size(jacobian’*jacobian,1)))*jacobian'*delta_b; x = x + delta_x; X(:,j+1) = x; end

Page 16: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 17: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 18: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 19: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 20: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 21: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 22: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 23: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 24: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 25: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 26: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 27: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 28: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº

u = K*R*[eye(3) -C]*[X'; ones(1,nPoints)]; u = [u(1,:)./u(3,:); u(2,:)./u(3,:)];

Page 29: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº

u = K*R*[eye(3) -C]*[X'; ones(1,nPoints)]; u = [u(1,:)./u(3,:); u(2,:)./u(3,:)];

Page 30: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº

u = K*R*[eye(3) -C]*[X'; ones(1,nPoints)]; u = [u(1,:)./u(3,:); u(2,:)./u(3,:)];

Page 31: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº

u = K*R*[eye(3) -C]*[X'; ones(1,nPoints)]; u = [u(1,:)./u(3,:); u(2,:)./u(3,:)];

Page 32: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº

u = K*R*[eye(3) -C]*[X'; ones(1,nPoints)]; u = [u(1,:)./u(3,:); u(2,:)./u(3,:)];

Page 33: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 34: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 35: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 36: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 37: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 38: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 39: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 40: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 41: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 42: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 43: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 44: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 45: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 46: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 47: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 48: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 49: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 50: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 51: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 52: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 53: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 54: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 55: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 56: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 57: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 58: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 59: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 60: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 61: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 62: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 63: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 64: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 65: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 66: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 67: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 68: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 69: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 70: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 71: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 72: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 73: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº

nPoints = 5; nCameras = 3; X = rand(nPoints, 2) + 2; c = rand(nCameras,2); for i = 1 : nCameras m = X-ones(nPoints,1)*c(i,:); theta = atan2(m(:,2), m(:,1)); theta = mean(theta); C(i).c = c(i,:)'; theta = theta; C(i).R = [sin(theta) -cos(theta); cos(theta) sin(theta)]; u = C(i).R*[eye(2) -C(i).c] * [X'; ones(1,nPoints)]; C(i).m = u(1,:)./u(2,:); C(i).c = c(i,:)'+0.3*randn(2,1); theta = theta + 0.3*randn(1,1); C(i).R = [sin(theta) -cos(theta); cos(theta) sin(theta)]; end X = X + 0.3*randn(size(X)); [C X] = BA(C, X);

Page 74: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº

nPoints = 5; nCameras = 3; X = rand(nPoints, 2) + 2; c = rand(nCameras,2); for i = 1 : nCameras m = X-ones(nPoints,1)*c(i,:); theta = atan2(m(:,2), m(:,1)); theta = mean(theta); C(i).c = c(i,:)'; theta = theta; C(i).R = [sin(theta) -cos(theta); cos(theta) sin(theta)]; u = C(i).R*[eye(2) -C(i).c] * [X'; ones(1,nPoints)]; C(i).m = u(1,:)./u(2,:); C(i).c = c(i,:)'+0.3*randn(2,1); theta = theta + 0.3*randn(1,1); C(i).R = [sin(theta) -cos(theta); cos(theta) sin(theta)]; end X = X + 0.3*randn(size(X)); [C X] = BA(C, X);

Page 75: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº

nPoints = 5; nCameras = 3; X = rand(nPoints, 2) + 2; c = rand(nCameras,2); for i = 1 : nCameras m = X-ones(nPoints,1)*c(i,:); theta = atan2(m(:,2), m(:,1)); theta = mean(theta); C(i).c = c(i,:)'; theta = theta; C(i).R = [sin(theta) -cos(theta); cos(theta) sin(theta)]; u = C(i).R*[eye(2) -C(i).c] * [X'; ones(1,nPoints)]; C(i).m = u(1,:)./u(2,:); C(i).c = c(i,:)'+0.3*randn(2,1); theta = theta + 0.3*randn(1,1); C(i).R = [sin(theta) -cos(theta); cos(theta) sin(theta)]; end X = X + 0.3*randn(size(X)); [C X] = BA(C, X);

Page 76: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº

nPoints = 5; nCameras = 3; X = rand(nPoints, 2) + 2; c = rand(nCameras,2); for i = 1 : nCameras m = X-ones(nPoints,1)*c(i,:); theta = atan2(m(:,2), m(:,1)); theta = mean(theta); C(i).c = c(i,:)'; theta = theta; C(i).R = [sin(theta) -cos(theta); cos(theta) sin(theta)]; u = C(i).R*[eye(2) -C(i).c] * [X'; ones(1,nPoints)]; C(i).m = u(1,:)./u(2,:); C(i).c = c(i,:)'+0.3*randn(2,1); theta = theta + 0.3*randn(1,1); C(i).R = [sin(theta) -cos(theta); cos(theta) sin(theta)]; end X = X + 0.3*randn(size(X)); [C X] = BA(C, X);

Page 77: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº

function [C X] = BA(C, X) lambda = 0.5; nIters = 100; xp = []; for i = 1 : length(C) theta=atan2(C(i).R(2,2), C(i).R(2,1)); xp = [xp; C(i).c; theta]; end xx = []; for i = 1 : size(X,1) xx = [xx; X(i,:)']; end

Page 78: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº

for j = 1 : nIters Jp = []; Jx = []; D_inv = []; err = []; for iPoint = 1 : size(X,1) X1 = xx(2*(iPoint-1)+1:2*iPoint); d = zeros(2,2); for iC = 1 : length(C) c = xp(3*(iC-1)+1:3*(iC-1)+2); theta = xp(3*(iC-1)+3); R = [sin(theta) -cos(theta); cos(theta) sin(theta)]; df_dc = JacobianC1D(R, c, X1); df_dR = JacobianR1D(R, c, X1)*JacobianQ1D(theta); df_dx = JacobianX1D(R, c, X1); j1 = zeros(1,3*length(C)); j1(:,3*(iC-1)+1:3*iC) = [df_dc df_dR]; j2 = zeros(1,2*size(X,1)); j2(:,2*(iPoint-1)+1:2*iPoint) = df_dx; Jp = [Jp; j1]; Jx = [Jx; j2]; d = d + df_dx'*df_dx; u = R * [eye(2) -c] * [X1;1]; u = u/u(2); u1 = C(iC).m; e = [u1(iPoint) - u(1)]; err = [err; e]; end d = d + lambda*eye(2); D_inv = blkdiag(D_inv, inv(d)); end ep = Jp' * err; ex = Jx' * err; A = Jp'*Jp + lambda*eye(3*length(C)); B = Jp'*Jx; delta_p = inv(A-B*D_inv*B') * (ep-B*D_inv*ex); delta_x = D_inv * (ex-B'*delta_p); xp = xp + delta_p; xx = xx + delta_x; end

Page 79: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº

for iC = 1 : length(C) C(iC).c = xp(3*(iC-1)+1:3*(iC-1)+2); theta = xp(3*(iC-1)+3); C(iC).R = [sin(theta) -cos(theta); cos(theta) sin(theta)]; end for iX = 1 : size(X,1) X(iX,:) = xx(2*(iX-1)+1:2*iX); end

Page 80: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº

for iC = 1 : length(C) C(iC).c = xp(3*(iC-1)+1:3*(iC-1)+2); theta = xp(3*(iC-1)+3); C(iC).R = [sin(theta) -cos(theta); cos(theta) sin(theta)]; end for iX = 1 : size(X,1) X(iX,:) = xx(2*(iX-1)+1:2*iX); end

Page 81: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº

for iC = 1 : length(C) C(iC).c = xp(3*(iC-1)+1:3*(iC-1)+2); theta = xp(3*(iC-1)+3); C(iC).R = [sin(theta) -cos(theta); cos(theta) sin(theta)]; end for iX = 1 : size(X,1) X(iX,:) = xx(2*(iX-1)+1:2*iX); end

Page 82: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 83: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 84: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº
Page 85: Camera Model - University of Minnesotahspark/CSci5980/Jacobian_bundle_prt2.pdf · ªºªº «»«» «»¬¼¬¼ ªº' «»¬¼' ªº «» «» «»¬¼ ªº «» «» «» ¬¼ ªºªº