1.svd三角化
1.1为什么要三角化
三角化是为了得到相机深度,方便从归一化坐标还原世界坐标。RGBD由于本身可以获得深度,三角化的应用主要针对双目或者单目的slam。
虽然三角化对于单目和双目来说,都是为了求得三维坐标,但各自的的意义却不相同。在单目中,通过对极几何求得位姿估计,然后通过三角化求得三维坐标点。而在双目中,由于使用三位点作为已知信息去估计相机的位姿,所以从一开始就需要三角化去求得三维坐标。
1.2三角化的方法有哪些
三角化的方法主要有
- 最小化3D距离
- Direct Linear Transform
- 优化方法
- EKF-SLAM
- Depth Filter
最小化3D距离,Direct Linear Transform被称为闭式解法,优化方法也就是BA,EKF和Depth Filter则是滤波算法。优化算法要优于闭式解法。
VSLAM中的特征点三角化 - 知乎 (zhihu.com)
这里我们要探讨一下直接法,也就式运用svd分解解方程的方法来求解三角化。
1.3svd的定义
如果一个矩阵A能分解为,U,V为酉(正交)矩阵,
只有对角元素不为零,且非零元素从大到小排列,则程为奇异值分解
1.4通过svd求解方程的原理
v的最后一列是的解
(15条消息) ORBSLAM2之单目初始化(2)_windistance的博客-CSDN博客
(七)ORBSLAM特征点的三角化 - 小C酱油兵 - 博客园 (cnblogs.com)
1.5通过svd求解三角化原理
设世界坐标的归一化坐标为
,相机深度为s,相机的位姿为T,则
于是左右两边叉乘P,由于叉乘的运算可以化为矩阵乘法的计算,于是得到
image.png