Open YE-ck opened 5 years ago
See this page for detailed derivation: http://redwood-data.org/indoor/registration.html
Basically you can only linearize the transformation matrix when alpha, beta, gamma, a, b, c are all very small values. So T
cannot be directly linearized in this way. Instead, you need some trick to bring T*^{-1}T
to the front and linearize it. And the derivation leads to what's in the code.
its only the weight ls of data item
hello, i read the paper Fast Global Registration, which uses Gauss-Newton method to optimize T by equation 8 at the Section3.2 I find your calculation of the Jacobian as follows: `
int ii = corres[c].first; int jj = corres[c].second; Eigen::Vector3f p, q; p = pointcloud_[i][ii]; q = pcj_copy[jj]; Eigen::Vector3f rpq = p - q;
To have a better understanding, I tried to substitute lp,q (equation 6) into objective 3 E(T;L). Then I got: Using chain rule: So: And I realize that this equation represents the following line in the code:
s[c2] = temp * temp;
As far as I am concerned, J(2) should be calculated as follows: • I see that your calculation of Jacobian is divided into three parts which are quite different from I expected before. Could you explain more about your codes of Jacobian calculation? Thanks, yechuankun