0

我在同一个坐标系中有一个源和目标。源中有“n”个点,目标中有“n”个点(n>=3)。通信也是已知的。我想找到最佳的刚性变换矩阵(在某些情况下为 6 DOF 或更少)。

我知道这是通过最小化源点和目标点之间的距离平方来解决的。

我有以下两个问题。

1)在这些情况下,最好的求解器是什么?2) 在 Levenberg-Marquardt 算法的情况下,四元数表示旋转,计算雅可比矩阵的最佳方法是什么?

4

1 回答 1

1

给定点 P[] 和对应点 Q[] 我们希望找到平移 T 和旋转 R 以最小化

E = Sum{ <Q[i] - (R*P[i]+T)|Q[i] - (R*P[i]+T)>}

但这是

E = Sum{ <Q[i] - R*P[i] - T | Q[i] - R*P[i] - T>}

并且给定 R,最小化它的 T 值是

T = mean { Q[i] - R*P[i]} = Qbar - R*Pbar

其中 Qbar 是 Ps 的 Qs 和 Pbar 的平均值。

代入这个 T 值,我们得到

E = Sum{ <q[i] - R*p[i] | q[i] - R*p[i]>}
where q[i] = Q[i]-Qbar, p[i] = P[i]-Pbar

寻找 R 以最小化 E 是正交 procrusetes 问题。当为 R 解决这个问题时,我们可以如上所述计算 T。

需要加权情况的解决方案时的修改很简单。首先 Pbar 和 Qbar 应该是加权平均值,然后我们应该使用

q[i] = sqrt( weight[i]) * ( Q[i]-Qbar)
p[i] = sqrt( weight[i]) * ( P[i]-Pbar)
于 2018-10-30T13:46:30.533 回答