翻译:https://igl.ethz.ch/projects/ARAP/svd_rot.pdf
Least-Squares Rigid Motion Using SVD
1、问题描述
是变换空间中对应的两组点集。
我们希望得到一个刚体变换是的两组点集最小二乘结果最小
---------------------(1)
其中R就是旋转矩阵,t是平移向量,w_i就是每对点的权重。
2、计算平移
首先假定R是固定的,求解公式就是通过对F(t)求导,t的最优解就可以知道了
--------------(2)
左边是0,那我们直接将除以
、
--------------------------------------------------------------------------------(3)
公式(2)就整理成了
--------------------------------------------------------------------------------------------------------------(4)
最优平移t将转换后的P的加权质心映射到Q的加权质心
我们在把公式(4)带入目标函数F:
---------------------(6)
我们再次引入新的定义
------------------------------------------------------------------------------------------(7)
那么最优的旋转求解就可以变成
-------------------------------------------------------------------------------(8)
3 计算旋转矩阵
将公式(8)展开
-----(9)
旋转矩阵 推到的话
比较容易了
是一个标量,证明过程主要是根据维度来的
是1Xd,
是dxd,
是dx1,可不就是标量么。标量的转置可不就是标量本身么
---------------------------------------------------------------------------------(10)
因此公式(9)就可以展开为
-------------------------------------------------------------------------(11)
然后我们将公式(11)带入到公式(8)
----(12)
标量在求解最小化中没啥用啊,可以删掉,还有标量2也可以删掉,因此公式(12)最终可以表示为
-----------------------------------------------(13)
我们在把公式(13)中的进行矩阵表示
是一个nxn对角矩阵,权重w_i是第i个对角元素。Y是dxn矩阵y_i是列向量,X是dxn矩阵x_i是列向量。方阵的迹是对角线上元素的和。
-----------------------------------------------------------------------------------------(14)
求解旋转矩阵就是最大化矩阵的迹
矩阵的迹可符合交换律,前提是AB的维度要可以相乘啊
-------------------------------------------------------------------------------------------------------(15)
-----------------------(16)
看矩阵维度X就是dxn,W是nxn,Y^T是nxd
问题来了是一个dxd的矩阵,这么一看是不是像一个协方差矩阵“covariance”(我也不知道为什么像)
我们现在将S进行SVD:
-------------------------------------------------------------------------------------------------------------------(17)
在将公式(17)带入公式(16)
--------------------------------------------------(18)
其实V,U是正交矩阵,这个好理解R也是正交矩阵,旋转矩阵就是正交矩阵啊,所以也是一个正交矩阵,也就是M的列是正交向量,
,m_j是M的列向量,然后更好理解了m_ij<=1
------------------------------------------------------------------------(19)
最大可能是什么呢,
是非负特征值
为对角线元素的对角矩阵,因此
---------------------------(20)
那这个迹的最大值不就是当m_ii=1的时候么,M是个正交矩阵,那M就只能是单位矩阵了
----------------------------------------------------------------------(21)
Orientation rectification,上面的描述都是如何找到最优的正交矩阵,但是旋转矩阵中也有反射变换。这些假设其实都是认为这些点集可以通过变换很好的对齐,但如果只有旋转变换,实际上也许一个都对不齐。
检查是否为旋转矩阵,如果
这就包含了反射,否则
。假设
,那么R是一个旋转矩阵等价于M是一个反射矩阵,我们现在想找到一个反射矩阵M
-----------------------------------------(22)
现在f只依赖于对角矩阵M,没有其他人变量,m_ii看做是变量,这是n阶反射矩阵的对角线的集合。n阶旋转矩阵的所有对角线集合等于值为-1的坐标个数为偶数的点集
的凸包,由于任何反射矩阵都可以通过翻转旋转矩阵的一行符号来构造,反之亦然,因此我们所优化的点集
凸包中-1的个数是uneven(我也不知道是个啥,应该是非偶数)。
由于定义域是一个凸多面体,线性函数f在顶点处达到极值。对角矩阵因为它有偶数个- 1(也就是0了),所以不在定义域内,所以最简洁的形式就是
:
-------------------------------------------------------------------------------(23)
这个值是在定义域的一个顶点得到的,并且大于除任何形式的组合
,因为
是最小的特征值啊。
要记住我们一直是一个优化问题啊,
----------------------------(24)
我们可以把有没有反射情况的通解写在一起,也就是、
-----------------------------------------------------------------------(25)
4、刚体变换求解总结
最优化求解平移t和旋转R等价于最小化
1.计算两个点集的加权形心。
、
2.计算所有点到中心的向量
3计算dxd的协方差矩阵(啥协方差不协方差的?)
X、Y分别是dxn的矩阵分别是有x_i和y_i列向量组成,W就是对角矩阵了
4.计算特征值分解这时候旋转矩阵不就是
5.计算平移
注意啊,旋转中心是0,0,0