在之前的章节中我们获得了同名像点从而恢复相片的姿态,接下来就该轮到vslam前端中最后一部分————计算三维点坐标(三角化),并通过三维坐标预测姿态(PnP)。
一、三角化
在单目slam中仅通过单张图像无法获得像素的深度信息,所以我们需要通过三角测量(Triangulation)的方法来估计地图的深度。一般情况是当我们得到两个视图的一组匹配点,我们希望能恢复出世界点在三维世界的坐标。
这里介绍一个线性三角形法:
在已知了两张图像的姿态后我们能建立以下等式
x=PX;
x′=P′X;
然后使用DLT算法整理可得AX = 0(一对点可得到4行方程)
这里相当于解一个线性最小二乘问题。方程的解为A的最小奇异值对应的单位奇异矢量。
而三角化存在一个矛盾:
图像平移越大,三角化的精度越高;平移越小,匹配效果越好;