使用单目相机进行地图构建 你学会了吗

本文介绍了如何使用单目相机进行地图构建,包括特征匹配、三角化求深度、极线搜索与块匹配等方法。通过实例展示了深度估计的过程,并探讨了滤波器在优化深度不确定性中的应用。
摘要由CSDN通过智能技术生成

1.前言
http://www.makeru.com.cn/video/2099_11457.html?s=144282

经过我们连续超长时间的学习,我们终于可以到介绍建图问题了!

之前我们一致在介绍SLAM系统的前三大组成部分,前端估计、后端估计、回环检测,那么,第四大部分,建图问题,就从本文开始介绍,这也是SLAM系统中基础环节的最后一个问题。

试想一下,对于基于人工设计的特征点,它构建的地图是怎么样的呢?

由于特征点的稀疏性,这会导致SLAM地图构建的稀疏性,对于稀疏的地图,在一些场景下是可以使用的,比如大致的路线规划,但是,在大多数场景下,我们还是希望构建一个不是那么稀疏的地图,即稠密地图或者半稠密地图。

2.单目相机建图

对于建图过程,首先需要特征匹配,就是可以使用之前讲解的BA优化求解问题,对于特征匹配的算法,通常可以使用如下2种方法:

极线搜索;
块匹配。
对于不同的相机,要获得像素点的深度信息,要怎么办呢?

通常情况下,有如下几种方案:

双目相机提供立体匹配得出深度图;
单目相机通过三角化提供深度图;
深度相机直接提供深度信息。
这里,我们使用单目相机构建地图为例进行讲解,当然,单目相机构建深度地图有着很多缺点,得出的深度图还不一定可靠,但是,通过这个例子,大家可以很容易的实现并且理解整个系统和方法。

三角化代码:

// 方程
2// d_ref * f_ref = d_cur * ( R_RC * f_cur ) + t_RC
3// => [ f_ref^T f_ref, -f_ref^T f_cur ] [d_ref] = [f_ref^T t]
4// [ f_cur^T f_ref, -f_cur^T f_cur ] [d_cur] = [f_cur^T t]
5// 二阶方程用克莱默法则求解并解之
6Vector3d t = T_R_C.translation();
7Vector3d f2 = T_R_C.rotation_matrix()* f_curr;
8Vector2d b =Vector2d( t.dot ( f_ref ), t.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值