视觉SLAM十四讲阅读笔记四-单目相机中的三角测量


这篇文章是视觉SLAM十四讲第7讲三角测量部分阅读过程中总结和记录的学习内容,属于单目SLAM的基础理论内容。

概述

三角测量/三角化(triangulation)就是估计地图点的深度值。在使用对极几何约束估计了相机运动之后,需要使用相机的运动估计特征点的空间位置。在单目SLAM中,由于我们无法通过单张图像获得相机的深度,因此我们通过三角测量的方法来估计地图点的深度。 三角测量是指:通过两处观察同一个点的夹角,来确定该点的距离。

求解过程

如上图所示,考虑两幅图像中的特征点分别为$p_1$,$p_2$。理论上直线$O_1p_1$和$O_2p_2$在场景中会相交于一个点$P$,该点即是两个特征点所对应的地图点在三维场景中的位置。但是由于噪声的影响,两条直线往往无法相交。假设点$P$在相机坐标系下的坐标为$c_1$和$c_2$,根据针孔相机中的坐标变换公式可知:

$s_1p_1=Kc_1$

$s_2p_2=Kc_2$

其中$s1$是$c1$在$Z$轴上的坐标,$s2$是$c2$在$Z$轴上的坐标,$K$是相机的内参矩阵。

令:

$p_1=Kx_1$

$p_2=Kx_2$

其中$x1$,$x2$称为点$P$在相机坐标系下的归一化坐标。

根据三维空间中的运动模型有:

$c_2=Rc_1+t$

$k^{−1}s_1p_1=Rk^{−1}s_2p_2+t$

$s_1x_1=s_2Rx_2+t$

我们已经知道了$R$,$t$,需要求解的就是两个特征点的深度值$s_1$,$s_2$。先同时左乘$x1$的反对称矩阵可得:

$s_1x^\wedge_1x_1=0=s_2x^\wedge_1Rx_2+x^\wedge_1t$

上述等式的右边是个关于未知变量$s_2$的方程,求解此方程即可得到$s_2$。有了$s_2$,$s_1$也就迎刄而解了。

但由于误差的存在,估计的$R$,$t$不一定精确到使上述方程成立,所以更常见的做法是求最小二乘解而不是零解。

三角测量的矛盾

三角化测量的前提是两幅图像之间存在平移。有平移才会由对极几何中的三角形,才谈得上三角化测量。
要提高三角化的精度,其一是提高特征点的提取精度,即提高图像分辨率;其二是使平移量增大。如下图所示,当平移很小时,深度估计的不确定性会增大。因此要使深度的精确度增加,则需要增加平移,但是增加平移会导致图像的外观发生明显的变化,使得特征提取和匹配的难度增加,这称为三角测量的矛盾。

参考资料

  1. 视觉slam十四讲第7讲
  2. 单目相机中的三角化测量
  3. Monocular slam 中的理论基础(2)

本文标题:视觉SLAM十四讲阅读笔记四-单目相机中的三角测量

文章作者:阿翔

发布时间:2018年08月29日 - 22:08

最后更新:2019年05月28日 - 21:05

原始链接:http://ttshun.com/2018/08/29/视觉SLAM十四讲阅读笔记四-三角测量/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

点击给我一些鼓励叭!
-------------本文结束感谢您的阅读-------------
0%