使用SVD计算用于配准两个点集的旋转变换的最小二乘解

    xiaoxiao2022-07-02  122

    翻译自《A Sampler of Useful Computational Tools for Applied Geometry, Computer Graphics and Image Processing》。

    两个点集,记作  和  ,其中  和  为对应的匹配点。求解两个点集之间配准(点集  通过一个刚性变换后与点集  对齐)所需要的刚体变换(这里假设点集中心已对齐即只考虑旋转变换)的问题,可以公式化为一个优化问题,目标函数为

     。

    优化目标是最小化这个二范数误差,优化变量为  。如果令

     ,

    对  做SVD得到  ,那么目标函数的最优解即配准两个点集的正交变换矩阵为  。下面我们解释其原理。

     表示旋转矩阵,有正交性质,所以  ,因此

     。

    第一项和最后一项与  无关,所以优化可以忽略这两项,那么最小化优化目标可以简化为

     。

    由于第二项是标量,所以

     。

    这意味着

     。

    目标函数可进一步化简,

     ,

    其中  。

    由此,我们的目标变为找到使得  最小化的  。我们知道如果  是一个对称正定矩阵(所有的特征值都是正数)且  是任意正交矩阵,那么

     。

    所以,我们需要找到使得  是对称正定矩阵的  。这样我们就可以使  最大。如果对  进行SVD分解得到  ,我们令  。此时的  :

     ,

    为对称正定矩阵,所以  为该优化问题的最优解。

    如果你想了解更多线性代数推导细节,请参考paper《Least-Squares Rigid Motion Using SVD》。

    最新回复(0)