SurfelMeshing调用ElasticFusion【代码过程】

【实验】SurfelMeshing 调用 ElasticFusion


实验代码链接(GitHub)

SurfelMeshing与ElasticFusion简要介绍


SufelMeshing

  1. 论文地址演示视频(youtube)
  2. 实现功能
    1. 输入数据为 深度图集合 rgb图集合 每一帧的位姿
    2. 根据已知位姿,将深度测量,融合至全局点云图
    3. 将点云图 三角化再三角化 获得mesh网格图
    4. 输出为mesh网格图
  3. 代码地址

ElasticFusion

  1. 论文地址演示视频
  2. 实现功能
    1. 输入为 深度图集合 rgb图集合
    2. Tracking:利用ICP计算几何误差,直接法计算颜色误差。跟踪确定每一帧的位姿
    3. Mapping: 以深度相机的测量为尺度,建立面元模型,用面元来表示地图模型
    4. LoopClosing:分为全局回环与局部回环,修正几何误差的同时修正当前帧的位姿
    5. 输出为surfel面元图,以及每一帧的位姿估计值
  3. 代码地址

二者结合


结合方法

  1. ElasticFusion可以根据rgb、depth集合计算出每一帧的位姿
  2. SurfelMeshing需要 深度图集合 rgb图集合每一帧的位姿
  3. 可以对每一帧rgb图和depth图,先经过ElasticFusion计算位姿,再送给SurfelMeshing建图
  4. 这样SurfelMeshing只需要输入深度图集合 rgb图集合 就可以得出mesh网格图了

实验代码地址


使用方法

  1. 配置环境

  2. 下载本实验源码:代码地址

  3. 下载tum数据集

    1. 下载地址 TUM RGB-D benchmark

    2. 进入数据集文件夹新建 calibration.txt 文件,内容为:

      525.0 525.0 319.5 239.5
      
    3. 运行如下命令,生成associated.txt 文件

      python associate.py rgb.txt depth.txt > associated.txt
      
  4. 编译运行

    mkdir build && cd build
    cmake ..
    make 
    ./applications/surfel_meshing/SurfelMeshing “tum数据集路径”
    

运行效果:

  1. 帧率在15帧左右

  2. 运行截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 运行效果与SurfelMeshing源代码对比

    本文实验SurfelMeshing源码
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

版权声明:本文为Adam_DOGG原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。