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

本文介绍了如何利用奇异值分解(SVD)求解两个点集之间的旋转变换,以实现点集的配准。通过优化二范数误差,忽略与旋转无关的项,简化成寻找对称正定矩阵的最大特征值问题。通过SVD分解,找到最优解,从而完成点集的刚体变换。
摘要由CSDN通过智能技术生成

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

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

\sum_{i=1}^{n} \left \| p_i - R q_i \right \|^{2} 。

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

H = \sum_{i=1}^n q_ip_i^\top ,

对 H 做SVD得到 H=U \Sigma V^\top ,那么目标函数的最优解即配准两个点集的正交变换矩阵为 R=VU^\top 。下面我们解释其原理。

R 表示旋转矩阵,有正交性质,所以 R^\top R = I ,因此

\begin{align} \nonumber \sum_{i=1}^{n} \left \| p_i - R q_i \right \|^{2} &= \sum_{i=1}^n(p_i-R q_i)^\top (p_i-R q_i)) \\ \nonumber &= \sum_{i=1}^n p_i^\top p_i - p_i^\top R q_i - q_i^\top R^\top p_i + q_i^\top R^\top R q_i \\ \nonumber &=\sum_{i=1}^n p_i^\top p_i - p_i^\top R q_i - q_i^\top R^\top p_i + q_i^\top q_i \end{align} 。

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

\min_R \sum_{i=1}^n ( - p_i^\top R q_i - q_i^\top R^\top p_i ) =\max_R \sum_{i=1}^n ( p_i^\top R q_i + q_i^\top R^\top p_i ) 。

由于第二项是标量,所以

p_i^\top R q_i = (p_i^\top R q_i)^\top = q_i^\top R^\top p_i 。

这意味着

\arg \max_R \sum_{i=1}^n ( p_i^\top R q_i + q_i^\top R^\top p_i ) = \arg \max_R \sum_{i=1}^n ( 2p_i^\top R q_i ) =\arg \max_R \sum_{i=1}^n ( p_i^\top R q_i ) 。

目标函数可进一步化简,

\sum_{i=1}^n ( p_i^\top R q_i ) = {\rm Trace} (\sum_{i=1}^n R q_i p_i^\top) = {\rm Trace} (R \sum_{i=1}^n q_i p_i^\top ) ,

其中 {\rm Trace} (A) = \sum\nolimits_{i=i}^n A_{ii}

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

{\rm Trace} (M) \geq {\rm Trace} (BM) 。

所以,我们需要找到使得 RH 是对称正定矩阵的 R 。这样我们就可以使 {\rm Trace} (RH) 最大。如果对 H 进行SVD分解得到 H=U \Sigma V^\top ,我们令 R=VU^\top 。此时的 RH

RH = (VU^\top) (U \Sigma V^\top)=V \Sigma V^\top ,

为对称正定矩阵,所以 R=VU^\top 为该优化问题的最优解。

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值