Matt J
Posts:
4,994
Registered:
11/28/09


Re: Nonlinear optimization
Posted:
Mar 6, 2013 9:59 AM


"Toan Cao" <toancv3010@gmail.com> wrote in message <kh5at7$iv2$1@newscl01ah.mathworks.com>... > > I will explain more detail about my cost function and hope to receive your suggestion. > Given two 3D point clouds (source point cloud (SPC) and target point cloud (TPC)). I would like to move each point of SPC to be coincide with each corresponding point of TPC. > Each movement of each point of SPC is described by a Rotation matrix Ri and a translation vector Ti. > Rotation matrix Ri is constrained: > Rot(Ri)= (C1.C2)^2 + (C1.C3)^2 + (C2.C3)^2 +(C1.C1 1)^2 +(C2.C2 1)^2 + (C3.C3 1)^2, where C1, C2, C3 are 3x1 column vectors of Ri. > Given m points in SPC, the first term of cost function is: Sum(Rot(Ri)) where i =1:m > If we call a point in SPC is Vi, its corresponding point in TPC is Ui, its transformed point is V'i. So, the second term of cost function is: Sum((V'i  Ui)^2), i=1:m > Finally, my cost function is F = Sum(Rot(Ri)) +Sum((V'i  Ui)^2), i=1:m > > Now, i want to find all Ci of Rotation matrices Ri as well all elements of translation vectors Ti. What should i do to obtain local minimum value of this function ? ===============
The problem has a closed form solution, so iterative minimization is unnecessary. Here is one implementation
http://www.mathworks.com/matlabcentral/fileexchange/26186absoluteorientationhornsmethod

