稠密点云生成工具"/>
[学习SLAM]DSO半稠密点云生成工具
介绍:
- 半稠密点云的生成主要通过两个方面:
1)把多个Frame的像素投影到同一个Frame上面,计算这一个Frame上面像素的深度。这种做法不考虑像素之间的相关性。但其实像素之间是有相关性的,因为3d空间中的表面大都是连续的,所以相邻像素的深度的变化应该也是连续。
2)通过深度的连续性不断扩展不能通过视察计算出来的那些像素的深度。
- 有一类算法叫做MVS(Multi-View Steros)就是主打深度的连续性来加密点云。这类算法一般比较慢,但是出来的点云的连续性比较好。
- 大多数算法都会把深度的连续性和投影误差同时作为优化的量
- DSO是基本完全放弃利用深度的连续性,来提高算法的速度。因为本研究的目的是利用点云来做定位,所以要求点云的生成必须很快,DSO的半稠密点云生成正好适合这个需求。
- 原版的DSO是一遍计算轨迹一遍生成点云。本研究考虑到系统的稳定性,使用ORB事先计算出轨迹,然后把轨迹输入到DSO中,生成点云
代码:
使用catkin build编译
-
使用方法:
./devel/lib/dso/dso_test /home/chamo/Documents/data/try_dso2/ /home/chamo/Documents/data/iphone/05-21-18-04-24.bag img 50 1 100
- 第一个参数:工作目录地址
里面有算法输入文件以及输出的结构都在里面
- 第二个参数:图像数据使用bag格式存储
图像数据对应的topic名字
- 认为可靠的距离
因为深度越大,越是不准,当然这个和基线长度也有关系,不过这里先简单用一刀切的方法。也就是深度小于这个值的点都不输出。
- 稠密程度
DSO有几种类型的点:
- 被边缘化的(最可靠的点)
- 正在被使用的(第二可靠的点)
- 被删除的点
- 还在预备加入优化的点
这里设置为1就只输出被边缘化的,如果设置为2还会增加输出正在被使用的点
- 每隔多少Frame进行一次输出
- 如果设置为-1就是把所有数据输出到一个文件中
- 设置为非-1的意思是每隔这么多Frame才输出一次,每次都会生成一个pcd文件。每次值输出当前系统中有的点。
- 这个功能是给测试连续定位性能用的。
- 输入输出文件:
- 所有输入输出文件都要放在第一个参数设置的目录下,用指定的文件名。
- frame_pose_opt.txt:输入的轨迹文件
- camera.txt:输入的相机参数文件
- 输出的都是pcd文件
————————————————
版权声明:本文为CSDN博主「ziliwangmoe」的原创文章原文链接:
更多推荐
[学习SLAM]DSO半稠密点云生成工具
发布评论