利用Realsense D435和Mocap制作TUM数据集
利用Realsense D435和Mocap制作TUM数据集
- 开门见山
- 步骤
开门见山
步骤
如果有Mocap,根据mocap系统指示获取Groundtruth,我实验室的mocap为optitrack,使用vrpn_client_ros包获取groundtruth。具体参考这里。
同时录制话题
/camera/color/image_raw
、/camera/aligned_depth_to_color/image_raw
和/vrpn_client_node/RigidBody1/pose
,分别为RGB数据、对齐到RGB相机后的深度图和mocap输出的真实pose。使用以下程序一键生成TUM数据格式,前提是已经安装好ROS,注意修改代码中bag包名字、话题名和输出路径。
#!/bin/python
import roslib
import rosbag
import rospy
import cv2
import os
from sensor_msgs.msg import Image
from geometry_msgs.msg import Pose, Quaternion, Point
from cv_bridge import CvBridge
from cv_bridge import CvBridgeErrorros_bag = 'sence5.bag' #bag包路径
save_path = 'sence5/' #输出数据集的路径
rgb = save_path + 'rgb/' #rgb path
depth = save_path + 'depth/' #depth pathbridge = CvBridge()file_handle1 = open(save_path + 'rgb.txt', 'w')
file_handle2 = open(save_path + 'depth.txt', 'w')
file_handle3 = open(save_path + 'groundtruth.txt', 'w')with rosbag.Bag(ros_bag, 'r') as bag:for topic,msg,t in bag.read_messages():if topic == "/camera/color/image_raw": #rgb topiccv_image = bridge.imgmsg_to_cv2(msg,"bgr8")timestr = "%.6f" % msg.header.stamp.to_sec() #rgb time stampimage_name = timestr+ ".png"path = "rgb/" + image_namefile_handle1.write(timestr + " " + path + '\n')cv2.imwrite(rgb + image_name, cv_image)if topic == "/camera/aligned_depth_to_color/image_raw": #depth topiccv_image = bridge.imgmsg_to_cv2(msg)#cv_image = bridge.imgmsg_to_cv2(msg, '32FC1')#cv_image = cv_image * 255timestr = "%.6f" % msg.header.stamp.to_sec() #depth time stampimage_name = timestr+ ".png"path = "depth/" + image_namefile_handle2.write(timestr + " " + path + '\n')cv2.imwrite(depth + image_name, cv_image)if topic == '/vrpn_client_node/RigidBody_ZLT_UAV/pose': #groundtruth topicp = msg.pose.positionq = msg.pose.orientationtimestr = "%.6f" % msg.header.stamp.to_sec()file_handle3.write(timestr + " " + str(round(p.x, 4)) + " " + str(round(p.y, 4)) + " " + str(round(p.z, 4)) + " ")file_handle3.write(str(round(q.x, 4)) + " " + str(round(q.y, 4)) + " " + str(round(q.z, 4)) + " " + str(round(q.w, 4)) + '\n')
file_handle1.close()
file_handle2.close()
file_handle3.close()
- 值得注意的是,获取的真值pose和SLAM输出的pose不在同一个坐标系下,如果要使用自己制作的数据集并进行精度评估,则需要使用evo评估工具。
- 使用时,由于真值pose帧率高(我这儿mocap输出是100Hz),而d435输出RGB和depth被设定为30Hz,所以两者时间戳会不同步。在使用evo工具时,则需要指定相关参数,否则评估将会出错,如下所示:
evo_ape tum Groundtruth.txt OurCameraTrajectory.txt -p -va --save_results results/Our.zip --t_max_diff=0.05 --t_offset=0.05
这儿的
--t_max_diff=0.05 --t_offset=0.05
和-a
分别表示允许的最大时间误差、时间偏移和对齐坐标系。
利用Realsense D435和Mocap制作TUM数据集相关推荐
- ROS下利用realsense采集RGBD图像合成点云
摘要:在ROS kinetic下,利用realsense D435深度相机采集校准的RGBD图片,合成点云,在rviz中查看点云,最后保存成pcd文件. 一. 各种bug 代码编译成功后,打开rviz ...
- realsense D435获取RGB-D数据集-制作.klg文件
记录个人工作日志.恳求大佬指点简单的方法!! 1. <利用ros记录话题,获得bag文件> 首先launch相机节点: roslaunch realsense2_camera rs_ca ...
- python制作训练集_利用Tensorflow简单实现VGGNet,从数据集制作到训练完成测试
VGGNet_TF 利用Tensorflow简单实现VGGNet,从数据集制作到训练完成测试 参考:<Tensorflow实战><Tensorflow 实战Google深度学习框架& ...
- 利用Arcgis制作图像分割数据集
利用Arcgis制作图像分割数据集,以制作农村道路标签数据进行二分类为例 一,进行矢量化获取矢量数据 二,制作掩膜 三,mask图像导出 四,原始遥感影像裁剪 五,mask图片和遥感图像裁剪及训练集. ...
- TUM数据集制作BundleFusion数据集
BundleFusion的数据集中,在生成.sens文件之前,包括彩色图,深度图和一个位姿文件,并且这个pose文件中的位姿态是有变化的,所以我怀疑,推测,在这个pose文件中可以写入groundtr ...
- Realsense D435保存图像
你可以走慢一点,但脚步不能停下来. Realsense是我使用的第3款深度传感器,前两款分别是Orbbec和Kinect v2,奥比中光的深度传感器只需要USB接口,但深度图的效果并不好,Kinect ...
- python制作图片数据集_Pytorch自己加载单通道图片用作数据集训练的实例
pytorch 在torchvision包里面有很多的的打包好的数据集,例如minist,Imagenet-12,CIFAR10 和CIFAR100.在torchvision的dataset包里面,用 ...
- 使用evo工具评估ORB_SLAM2在TUM数据集上的运行轨迹
目录 一.安装evo工具 二.运行RGB-D基准数据集 1.下载TUM数据集 2.关联rgb图像和depth图像 3.运行rgb-d数据集 三.使用evo评估 1.常用指令 2.绝对轨迹误差 3.相对 ...
- UR3机械臂+Realsense D435+ROS手眼标定记录
UR3机械臂+Realsense D435+ROS手眼标定记录 前面一段时间,由于实验室工作安排,上手了UR3机械臂和Realsense D435深度相机,在手眼标定这一段真的是让人心累,断断续续折腾 ...
最新文章
- 全国大学生智能汽车竞赛 --智慧物流创意组
- laravel--基础知识
- (五)Cisco dhcp snooping实例3-多交换机环境(DHCP服务器和DHCP客户端位于同VLAN)...
- HTML+CSS+JS实现 ❤️照相机快门图片动画特效❤️
- 有关UIView、subview的几个基础知识点-IOS开发 (实例)
- 电商APP商品详情页设计套路(分层PSD模板)!透析UI/UE必须懂的营销设计思维!
- 2021计算机一级新增知识点,2021年计算机一级知识点.doc
- 如何通过JS获取元素宽高
- 【bzoj4386】[POI2015]Wycieczki 矩阵乘法
- 麻辣鲜妻(80后爆笑爱情日志)
- echarts Map(地图) 不同颜色区块显示
- 在Linux中smbfs文件系统的挂载
- 【手写数字识别】基于matlab CNN网络手写数字识别分类【含Matlab源码 1286期】
- foremost windows_windows上安装foremost - kalibb
- 如何找python 包的位置
- 485集线器在安防监控系统的应用
- 微软技术大会-无人机为中国电信巡航基站
- 利用matplotlib绘制多个实时刷新的动态图表
- 【疑难杂症】Oculus Quest2 手机配对时找不到5-digit-code
- linux防火墙过滤规则
热门文章
- Python爬虫实战之爬取豆瓣详情以及影评
- android 主界面 round,一秒将安卓变WebOS!RoundR圆角界面体验
- SIMPLE ONLINE AND REALTIME TRACKING (SORT)论文阅读笔记
- html滑动开关按钮实现
- mongodb配置文件常用配置项
- 怎么定义vue-router的动态路由?怎么获取传过来的动态参数?
- 另类!这项目没有一行代码,30k star 和 近40w的内容收录,登顶GitHub热榜
- 【渝粤题库】陕西师范大学163101 旅游学概论 作业 (高起专)
- 树莓派4代开发板Raspberry Pi 4B 8G ARM主板电脑 树莓派4-8G现货 主板
- navicat for mysql 绿色版