视觉SLAM笔记(34) 三角测量


1. 对极几何约束局限性

之前 视觉SLAM笔记(33) 对极约束求解相机运动 ,使用对极几何约束估计了相机运动
也讨论这种方法的局限性

在得到运动之后,下一步需要用相机的运动估计特征点的空间位置
在单目 SLAM 中,仅通过单张图像无法获得像素的深度信息
需要通过三角测量(Triangulation)(或三角化) 的方法来估计地图点的深度


2. 三角测量

三角测量是指 通过在两处观察同一个点的夹角,确定该点的距离
三角测量最早由高斯提出并应用于测量学中,它在天文学、地理学的测量中都有应用
例如,可以通过不同季节观察到星星的角度,估计它离我们的距离
在 SLAM 中,主要用三角化来估计像素点的距离
在这里插入图片描述
考虑图像 II1II2 ,以左图为参考,右图的变换矩阵为 T
相机光心为 OO1OO2
II1 中有特征点 pp1,对应 II2 中有特征点 pp2
理论上直线 OO1pp1OO2pp2 在场景中会相交于一点 PP
该点即是两个特征点所对应的地图点在三维场景中的位置


3. 最小二乘去求解

然而,由于噪声的影响,这两条直线往往无法相交
因此,又可以通过最小二乘去求解
按照对极几何中的定义,设 xx1xx2 为两个特征点的归一化坐标,那么它们满足:

s1x1 = s2Rx2 + t: (7.24)
现在已经知道了 R, t,想要求解的是两个特征点的深度 ss1, ss2
当然这两个深度是可以分开求的,比方说先来看 ss2
如果要算 ss2,那么先对上式两侧左乘一个 xx^1 ,得:

在这里插入图片描述
该式左侧为零,右侧可看成 ss2 的一个方程,可以根据它直接求得 ss2
有了 ss2ss1 也非常容易求出
于是,就得到了两个帧下的点的深度,确定了它们的空间坐标
当然,由于噪声的存在,估得的 R,t,不一定精确使等式为零
所以更常见的做法求最小二乘解而不是零解


4. 三角测量的矛盾

三角测量是由平移得到的,有平移才会有对极几何中的三角形,才谈的上三角测量
因此,纯旋转是无法使用三角测量的,因为对极约束将永远满足

在平移存在的情况下,还要关心三角测量的不确定性,这会引出一个三角测量的矛盾
在这里插入图片描述

当平移 t 很小时,像素上的不确定性将导致较大的深度不确定性
也就是说,如果特征点运动一个像素 δxδx,使得视线角变化了一个角度 δθδθ
那么测量到深度值将有 δdδd 的变化

当平移 t 较大时, δdδd 将明显变小
这说明平移较大时,在同样的相机分辨率下,三角化测量将更精确
对该过程的定量分析可以使用正弦定理得到,但这里先考虑定性分析
因此,要增加三角化的精度,其一是提高特征点的提取精度,也就是提高图像分辨率

但这会导致图像变大,提高计算成本
另一方式是使平移量增大
但是,平移量增大,会导致图像的外观发生明显的变化
比如箱子原先被挡住的侧面显示出来了,比如反射光发生变化了,等等
外观变化会使得特征提取与匹配变得困难

总而言之三角化的矛盾:

  • 增大平移,会导致匹配失效
  • 平移太小,则三角化精度不够

如果假设特征点服从高斯分布,并且对它不断地进行观测
在信息正确的情况下,就能够期望它的方差会不断减小乃至收敛
这就得到了一个滤波器,称为深度滤波器(Depth Filter)
不过,由于它的原理较复杂,就后续再深入了解


参考:

《视觉SLAM十四讲》


相关推荐:

视觉SLAM笔记(33) 对极约束求解相机运动
视觉SLAM笔记(32) 2D-2D: 对极几何
视觉SLAM笔记(31) 特征提取和匹配
视觉SLAM笔记(30) 特征点法
视觉SLAM笔记(29) g2o


发布了217 篇原创文章 · 获赞 292 · 访问量 289万+

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: Age of Ai 设计师: meimeiellie

分享到微信朋友圈

×

扫一扫,手机浏览