SVD (Singular Value Decomposition)

**奇异值分解(singular value decomposition)**可以说是SLAM中最重要的矩阵分解方法。任意矩阵 ARm×nA \in \mathbb{R}^{m \times n} 都可以写成

A=UΣVTA = U \Sigma V^T

其中 URm×mU \in \mathbb{R}^{m \times m}VRn×nV \in \mathbb{R}^{n \times n} 是正交矩阵(UTU=IU^T U = IVTV=IV^T V = I),ΣRm×n\Sigma \in \mathbb{R}^{m \times n} 是对角矩阵,其非负元素 σ1σ20\sigma_1 \geq \sigma_2 \geq \cdots \geq 0 称为奇异值(singular values)UUVV 的列分别是左奇异向量和右奇异向量。

几何解释:每一个线性映射都是一次旋转/反射(VTV^T),接着是一次沿坐标轴方向的缩放(Σ\Sigma),再接着是另一次旋转/反射(UU)。奇异值衡量该映射沿其主方向对空间的拉伸程度。

SVD 能告诉你关于一个矩阵的哪些信息

SVD 在SLAM中的主力用途

齐次最小二乘(DLT)。 三角化、单应性估计、相机标定以及八点法等问题都可以归结为

minxAxsubject tox=1\min_{\mathbf{x}} \lVert A\mathbf{x} \rVert \quad \text{subject to} \quad \lVert \mathbf{x} \rVert = 1

其解为 AA 对应于最小奇异值的右奇异向量。

施加矩阵约束。 在 Frobenius 范数意义下,与估计得到的基础矩阵最接近的秩为 2 的矩阵,可以通过将其最小奇异值置零来获得。类似地,一个合法的本质矩阵必须具有 (s,s,0)(s, s, 0) 形式的奇异值,可以通过用 diag(1,1,0)\mathrm{diag}(1, 1, 0) 替换 Σ\Sigma 来强制实现。

本质矩阵分解。 给定 E=UΣVTE = U \Sigma V^T,其中 Σ=diag(1,1,0)\Sigma = \mathrm{diag}(1,1,0),四个候选相对位姿由 R1=UWVTR_1 = U W V^TR2=UWTVTR_2 = U W^T V^T 以及 t=±u3\mathbf{t} = \pm\mathbf{u}_3UU 的第三列)构成,其中

W=[010100001]W = \begin{bmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{bmatrix}

正确的位姿由旋向性检验(cheirality check)来选定(三角化得到的点必须位于两个相机的前方)。

点集的刚性对齐(Kabsch / Procrustes)。 给定已匹配、已中心化的三维点集,构造交叉协方差 H=ipiqiTH = \sum_i \mathbf{p}_i \mathbf{q}_i^T,并计算 H=UΣVTH = U \Sigma V^T。最优旋转为

R=Vdiag(1,1,det(VUT))UTR = V\, \mathrm{diag}\big(1,\, 1,\, \det(V U^T)\big)\, U^T

其中的行列式修正项用于防止出现反射。这个闭式解是 ICP 的内部步骤,也是三维-三维对应关系的标准求解方法。

投影到旋转群上。 一个带噪声的”近似旋转”矩阵(例如来自平均运算或数值漂移)可以用同样的方法修复:对其求 SVD,并用单位奇异值和行列式修正重建它。

伪逆与低秩近似。 Moore-Penrose 伪逆为 A+=VΣ+UTA^{+} = V \Sigma^{+} U^T(对非零奇异值取逆),可以给出最小范数的最小二乘解。将 SVD 在第 kk 项之后截断,可以得到 AA 的最优秩 kk 近似(Eckart-Young 定理),用于降维和矩阵条件分析。

对SLAM的意义

SVD 出现在SLAM流水线中几乎每一个几何环节:从本质矩阵初始化相对位姿、通过 DLT 三角化地图点、在 ICP 内部进行点云对齐、对估计得到的基础矩阵/本质矩阵施加内部约束,以及通过检查奇异值间隔来诊断退化情形(平面场景、纯旋转)。熟练掌握”答案就是最小奇异值对应的奇异向量”这一点,能解开多视图几何中相当大一部分的问题。

相关条目