使用自制离线数据跑通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(三)- ...
随机推荐
- HashMap源码解析-JDK18
引言 HashMap在JDK1.8和1.7中差异较大,在JDK1.8中HashMap引入了红黑树,优化减少了哈希冲突,提高了哈希表的存取效率. 本篇文章分析的就是JDK1.8中的HashMap源码. ...
- centos 安装python3后yum报错
问题 centos 安装python3后,并且把/usr/bin/python 软链接到python3后,yum命令报错 原因: yum命令依赖于python2,导致报错 解决方法: 修改 /usr/ ...
- Mac terminal proxy
cat >> ~/.bash_profile << EOF function proxy_on() { export http_proxy=http://127.0.0.1:7 ...
- ChatRoom pg walkthrough Intermediate
NMAP ┌──(root㉿kali)-[~/lab] └─# nmap -p- -A 192.168.189.110 Starting Nmap 7.94SVN ( https://nmap.org ...
- 云网融合再加码!天翼云SD-WAN PON来了!
近日,在中国电信集团政企信息服务事业群的组织下,天翼云科技有限公司联合中国电信上海分公司,成功举办2023年天翼云SD-WAN PON融合网关试点成果总结及推广会.会上,中国电信集团政企领导和专家,以 ...
- Q:xml 需要转义的字符
XML实体中不允许出现"&","<",">"等特殊字符,否则XML语法检查时将出错,如果编写的XML文件必须包含这些字符 ...
- 烟草行业如何用低代码+ BI 实现数字化转型?
在数字经济的大潮中,烟草行业正迎来重大的发展契机.国家层面的政策引导和战略规划为行业的数字化转型提供了明确的方向.<数字中国>的愿景逐步变为现实,国家信息化发展战略的深入推进,为烟草行业的 ...
- SYSTEM表空间使用率高
数据库监控告警,SYSTEM表空间使用率很高.检查发现LOB字段使用了很大的空间,定位到LOB字段属于SYS_EXPORT_FULL_%表,参考(Doc ID 1626201.1)步骤处理后,表空间使 ...
- kubesphere应用系列(四)--创建自动流水线
第一步创建多分支流水线 复制生成的url,也可以在编辑设置时复制 第二步新增Jenkinsfile文件 新增Jenkinsfile文件放在根目录 方式一:官方示例:https://github.c ...
- Informatica - [01] 概述
题记部分 001 || 概述 Informatica 是一家全球领先的数据集成和数据管理解决方案提供商,致力于为客户提供具有强大的元数据管理.数据集成和个性化分析递送功能.Informatica的 ...