使用自制离线数据跑通ElasticFusion
使用自制离线数据跑通ElasticFusion
实验环境及设备
实验环境:
- Ubuntu22.04
- RTX3060
实验设备:
- 小米13(Android)
- Realsense D455
一句话总结就是,使用我的手机连接realsense去室外录制相关离线数据(.bag格式),然后转换成ElasticiFusion的.klg格式进行三维重建。

过程中还是遇到了不少坑的,比如深度图的尺度以及编码问题,导致一开始的重建总是不顺利。
代码
相关的代码我放在了这个仓库里:https://github.com/CuriosityWang/bag2klg
目录组织:

Env
编译png_to_klg
这里的代码主要参考了https://github.com/HTLife/png_to_klg
- CMake
- Boost
- zlib
- libjpeg
- OpenCV
在编译之前要修改 main.cpp 下第45行的 depth_scale 为1000,realsense默认是1000

build
cd png_to_klg
mkdir build
cd build
cmake ..
make
ros相关库
建议使用虚拟环境
numpy
pip install numpy
rosbag
pip install --extra-index-url https://rospypi.github.io/simple/ rosbag
pip install roslz4 --extra-index-url https://rospypi.github.io/simple/
cv_bridge
下载源码https://codeload.github.com/ros-perception/vision_opencv/zip/refs/heads/noetic
cd至cv_bridge文件夹
然后命令行安装
python setup.py install
sensor_image and geometry_msgs
pip install sensor_msgs --extra-index-url https://rospypi.github.io/simple/
pip install geometry_msgs --extra-index-url https://rospypi.github.io/simple/
rospy
pip install -i https://pypi.douban.com/simple rospy
cv_bridge.boost
在这里下载 https://github.com/rospypi/simple/raw/any/cv-bridge/cv_bridge-1.13.0.post0-py2.py3-none-any.whl
pip install cv_bridge-1.13.0.post0-py2.py3-none-any.whl
Usage
- run read_bag.py
python read_bad.py -n YourBagFile -d YourDepthTopic -r YourRGBTopic
- 根据提示修改 png2klg.sh相关参数
cd png_to_klg
# set the path for the depth.txt and rgb.txt. ** feed the depth file first and then rgb file **
python associate.py ../bag_data/600/depth.txt ../bag_data/600/rgb.txt > associations.txt
# to copy the associations.txt to your your_bag_data's path
cp associations.txt ../bag_data/600/associations.txt
cd build
# -w is the extracted rgb and depth images's path -o is the output
./pngtoklg -w ../../bag_data/600 -o ../../bag_data/600/600.klg -t
- run png2klg.sh
sh png2klg.sh
最后的目录应该是这样:

- 在编译好的ElasticFusion下运行
./ElasticFusion -l 600.klg
Refer
https://github.com/HTLife/png_to_klg
使用自制离线数据跑通ElasticFusion的更多相关文章
- CocoStuff—基于Deeplab训练数据的标定工具【二、用已提供的标注数据跑通项目】
一.说明 本文为系列博客第二篇,主要讲述笔者在使用该团队提供已经标注好的COCO数据集进行训练的过程. 由于在windows中编译Caffe和Deeplab特别的麻烦,笔者并没有去探索,后续可能会去尝 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(21)-权限管理系统-跑通整个系统
系列目录 这一节我们来跑通整个系统,验证的流程,通过AOP切入方式,在访问方法之前,执行一个验证机制来判断是否有操作权限(如:增删改等) 原理:通过MVC自带筛选器,在筛选器分解路由的Action和c ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(21)-权限管理系统-跑通整个系统
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(21)-权限管理系统-跑通整个系统 这一节我们来跑通整个系统,验证的流程,通过AOP切入方式,在访问方法之 ...
- ubuntu12.04+fuerte 下跑通lsd-slam——使用usb摄像头
上一篇介绍了如何使用数据集跑lsd-slam,这篇介绍如何用一个普通的usb摄像头跑lsd-slam,默认ubuntu12.04,fuerte已经安装好,workspace也已设置,如果没有,请参考上 ...
- ubuntu12.04+fuerte 下跑通lsd-slam——数据集
lsd-slam(下载链接:https://github.com/tum-vision/lsd_slam)提供了两种方法,一种是用数据集(下载地址http://vision.in.tum.de/lsd ...
- JVM知识在离线数据中的运用
又是飞花的季节了.多愁善感的林妹妹看到柳絮说:“嫁与东风春不管,凭尔去,忍淹留.”宝姐姐看了却来一句:“好风凭借力送我上青云”. 特别羡慕情商高的人,经常在想他们是怎么做到的.从来看不出他们不喜欢谁, ...
- 师傅领进门之6步教你跑通一个AI程序!
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云计算基础发表于云+社区专栏 源码下载地址请点击原文查看. 初学机器学习,写篇文章mark一下,希望能为将入坑者解点惑.本文介绍一些机 ...
- Truffle3.0集成NodeJS并完全跑通(附详细实例,可能的错误)
Truffle3.0集成NodeJS并完全跑通(附详细实例,可能的错误) Truffle3.0集成NodeJS并完全跑通(附详细实例,可能的错误) 升级到Truffle3.0 如果之前安装的是Truf ...
- 终于跑通分布式事务框架tcc-transaction的示例项目
1.背景 前段时间在看项目代码的时候,发现有些接口的流程比较长,在各个服务里面都有通过数据库事务保证数据的一致性,但是在上游的controller层并没有对一致性做保证. 网上查了下,还没找到基于Go ...
- 使用Typescript重构axios(二)——项目起手,跑通流程
0.系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三)- ...
随机推荐
- pyspider安装使用遇到的坑
一.pip install pyspider 安装出现错误: Command "python setup.py egg_info" failed with error code 1 ...
- Solution Set - Codeforces Global Round 1~8
目录 Codeforces Global Round 1 A. Parity B. Tape C. Meaningless Operations D. Jongmah E. Magic Stones ...
- C# 开发电子印章制作工具 -- 附下载程序
前言 本人在业余时间,开发了一款电子印章制作软件.印章制作软件看似简单,其实不然. 比如对椭圆形印章而言,要求公司名称中的每一个字间隔相等,要求字的方向与椭圆曲线垂直. 要满足这些条件,需要复杂的计算 ...
- IdentityServer网页登陆-登陆原理
前言 现代程序开发中身份验证.授权是一件非常非常复杂的事情(各种登陆方式.各种授权需求.各种跳转跳.各种加解密,搞得得头皮发麻),因为事情本身复杂,所以没把这件事理清楚之前,无论你用什么语言.什么框架 ...
- postman环境设置以及参数传递
通常一个公司项目有不同的环境(开发环境,测试环境,上线环境),在做测试时候,有可能会遇到接口改变之类的,postman保存了很多接口,想要再测试局需要多次修改域名或者端口,这个时候就需要配置环境 1. ...
- ctfshow--红包题第二弹 临时文件命令执行
上来先代码审计 点击查看代码 <?php if(isset($_GET['cmd'])){ $cmd=$_GET['cmd']; highlight_file(__FILE__); if(pre ...
- 2025年这些实用的C#/.NET知识点你都知道吗?
前言 在这个快速发展的技术世界中,时常会有一些重要的知识点.信息或细节被忽略或遗漏.<C#/.NET/.NET Core拾遗补漏>专栏我们将探讨一些可能被忽略或遗漏的重要知识点.信息或细节 ...
- Linux VXLAN小实验
本文分享自天翼云开发者社区<Linux VXLAN小实验>,作者:李****一 前言 VXLAN在云网络中应用十分广泛.本文介绍一种方法在两台Linux主机之间建立简单的VXLAN隧道,以 ...
- VS2022编译项目出现““csc.exe”已退出,代码为 -1073741819”的错误解决办法
1.问题描述 编译出错如下图所示: 2.解决办法 在NuGet包中输入Microsoft.Net.Compilers,安装该包,安装完后重新生成就不报错了,如下图所示:
- Kali 安装谷歌拼音
Kali 安装谷歌拼音 1. 安装 Google 输入法 sudo apt install fcitx-googlepinyin 2. 重新启动系统 reboot 3. 打开开始菜单,搜索fcitx配 ...