【实验】SurfelMeshing 调用 ElasticFusion
文章目录
实验代码链接(GitHub)
SurfelMeshing与ElasticFusion简要介绍
SufelMeshing
- 论文地址,演示视频(youtube)
- 实现功能
1. 输入数据为深度图集合
rgb图集合
每一帧的位姿
2. 根据已知位姿,将深度测量,融合至全局点云图
3. 将点云图 三角化 和 再三角化 获得mesh网格图
4. 输出为mesh网格图 - 代码地址
ElasticFusion
- 论文地址 ,演示视频
- 实现功能
- 输入为
深度图集合
rgb图集合
- Tracking:利用ICP计算几何误差,直接法计算颜色误差。跟踪确定每一帧的位姿
- Mapping: 以深度相机的测量为尺度,建立面元模型,用面元来表示地图模型
- LoopClosing:分为全局回环与局部回环,修正几何误差的同时修正当前帧的位姿
- 输出为surfel面元图,以及每一帧的位姿估计值
- 输入为
- 代码地址
二者结合
结合方法
- ElasticFusion可以根据rgb、depth集合计算出每一帧的位姿
- SurfelMeshing需要
深度图集合
rgb图集合
和每一帧的位姿
- 可以对每一帧rgb图和depth图,先经过ElasticFusion计算位姿,再送给SurfelMeshing建图
- 这样SurfelMeshing只需要输入
深度图集合
rgb图集合
就可以得出mesh网格图了
实验代码地址
使用方法
配置环境
下载本实验源码:代码地址
下载tum数据集
下载地址 TUM RGB-D benchmark
进入数据集文件夹新建
calibration.txt
文件,内容为:525.0 525.0 319.5 239.5
运行如下命令,生成
associated.txt
文件python associate.py rgb.txt depth.txt > associated.txt
编译运行
mkdir build && cd build cmake .. make ./applications/surfel_meshing/SurfelMeshing “tum数据集路径”
运行效果:
帧率在15帧左右
运行截图
运行效果与SurfelMeshing源代码对比
本文实验 SurfelMeshing源码
版权声明:本文为Adam_DOGG原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。