Kabsch-algorithm

Kabsch-algorithm 是一种用于计算两个几何体(点集)之间的最佳对齐的算法。

目标

两个集合体 ,找到一个变换使得,的距离最小。

默认所有向量都为列向量

因此原问题可以先将两个点集的质心对齐,然后计算旋转矩阵。

最小化目标转化为

为了简化记号,

因此原问题等价于最大化

(SVD分解)

,则有:

最大化迹的形式

  • 仍然是正交矩阵,因为 保持正交性。
  • 是对角矩阵,奇异值为

根据迹的性质:

此时,我们需要最大化 的和。

利用性质取最大值

由于 是正交矩阵,满足:

为了最大化 ,我们需要 。最优选择是使得:

修正旋转矩阵的行列式

旋转矩阵必须满足 。然而 的行列式可能为 -1。为了修正这一点,引入一个校正矩阵

这样可以确保:

最终最优解为: