视觉SLAM笔记(34) 三角测量
1. 对极几何约束局限性
之前 视觉SLAM笔记(33) 对极约束求解相机运动 ,使用对极几何约束估计了相机运动
也讨论这种方法的局限性
在得到运动之后,下一步需要用相机的运动估计特征点的空间位置
在单目 SLAM 中,仅通过单张图像无法获得像素的深度信息
需要通过三角测量(Triangulation)(或三角化) 的方法来估计地图点的深度
2. 三角测量
三角测量是指 通过在两处观察同一个点的夹角,确定该点的距离
三角测量最早由高斯提出并应用于测量学中,它在天文学、地理学的测量中都有应用
例如,可以通过不同季节观察到星星的角度,估计它离我们的距离
在 SLAM 中,主要用三角化来估计像素点的距离
考虑图像
1 和
2 ,以左图为参考,右图的变换矩阵为 T
相机光心为
1 和
2
在
1 中有特征点
1,对应
2 中有特征点
2
理论上直线
1
1 与
2
2 在场景中会相交于一点
该点即是两个特征点所对应的地图点在三维场景中的位置
3. 最小二乘去求解
然而,由于噪声的影响,这两条直线往往无法相交
因此,又可以通过最小二乘去求解
按照对极几何中的定义,设
1,
2 为两个特征点的归一化坐标,那么它们满足:
现在已经知道了 R, t,想要求解的是两个特征点的深度
1,
2
当然这两个深度是可以分开求的,比方说先来看
2
如果要算
2,那么先对上式两侧左乘一个
^1 ,得:
该式左侧为零,右侧可看成
2 的一个方程,可以根据它直接求得
2
有了
2,
1 也非常容易求出
于是,就得到了两个帧下的点的深度,确定了它们的空间坐标
当然,由于噪声的存在,估得的 R,t,不一定精确使等式为零
所以更常见的做法求最小二乘解而不是零解
4. 三角测量的矛盾
三角测量是由平移得到的,有平移才会有对极几何中的三角形,才谈的上三角测量
因此,纯旋转是无法使用三角测量的,因为对极约束将永远满足
在平移存在的情况下,还要关心三角测量的不确定性,这会引出一个三角测量的矛盾
当平移 t 很小时,像素上的不确定性将导致较大的深度不确定性
也就是说,如果特征点运动一个像素
,使得视线角变化了一个角度
那么测量到深度值将有
的变化
当平移 t 较大时,
将明显变小
这说明平移较大时,在同样的相机分辨率下,三角化测量将更精确
对该过程的定量分析可以使用正弦定理得到,但这里先考虑定性分析
因此,要增加三角化的精度,其一是提高特征点的提取精度,也就是提高图像分辨率
但这会导致图像变大,提高计算成本
另一方式是使平移量增大
但是,平移量增大,会导致图像的外观发生明显的变化
比如箱子原先被挡住的侧面显示出来了,比如反射光发生变化了,等等
外观变化会使得特征提取与匹配变得困难
总而言之三角化的矛盾:
- 增大平移,会导致匹配失效
- 平移太小,则三角化精度不够
如果假设特征点服从高斯分布,并且对它不断地进行观测
在信息正确的情况下,就能够期望它的方差会不断减小乃至收敛
这就得到了一个滤波器,称为深度滤波器(Depth Filter)
不过,由于它的原理较复杂,就后续再深入了解
参考:
相关推荐:
视觉SLAM笔记(33) 对极约束求解相机运动
视觉SLAM笔记(32) 2D-2D: 对极几何
视觉SLAM笔记(31) 特征提取和匹配
视觉SLAM笔记(30) 特征点法
视觉SLAM笔记(29) g2o