Loading [MathJax]/extensions/tex2jax.js

TUM: how to use TUM dataset - TUM数据集的使用

Share:

目标

  • 如何使用TUM数据集?
  • 如何用SLAM跑TUM数据集?
  • 如何评价SLAM定位的好坏?

获取数据集

For example:

wget -c https://vision.in.tum.de/rgbd/dataset/freiburg3/rgbd_dataset_freiburg3_walking_halfsphere.tgz
wget -c https://vision.in.tum.de/rgbd/dataset/freiburg3/rgbd_dataset_freiburg3_walking_rpy.tgz

Unzip:

tar zxvf rgbd_dataset_freiburg3_walking_halfsphere.tgz

数据集目录结构:

  rgbd_dataset_freiburg3_walking_rpy tree -L 1
.
├── accelerometer.txt
├── associations.txt
├── depth
├── depth.txt
├── groundtruth.txt
├── rgb
└── rgb.txt

关联彩色图像与深度图像

先要下载RGBD benchmark

associate.py rgb.txt depth.txt > associations.txt

associations.txt 内容格式:

  • RGB timestamp, float
  • RGB image, string
  • Depth timestamp, float
  • Depth image, string

For example:

1341846647.802247 rgb/1341846647.802247.png 1341846647.802269 depth/1341846647.802269.png
1341846647.834093 rgb/1341846647.834093.png 1341846647.834105 depth/1341846647.834105.png
...

仿真

ORB SLAM2

运行参数:

  • Vocabulary
  • TUM.yaml
  • dataset directory
  • associations.txt

For example:

 ./Examples/RGB-D/rgbd_tum ./Vocabulary/ORBvoc.txt ./Examples/RGB-D/TUM3.yaml /root/Dataset/TUM/freiburg3/rgbd_dataset_freiburg3_walking_rpy /root/Dataset/TUM/freiburg3/rgbd_dataset_freiburg3_walking_rpy/associations.txt 

用数据集进行验证

  • 先要下载 rgbd_benchmark_tools
svn checkout https://svncvpr.in.tum.de/cvpr-ros-pkg/trunk/rgbd_benchmark/rgbd_benchmark_tools
  • 下载 Ground truth
wget -c https://vision.in.tum.de/rgbd/dataset/freiburg3/rgbd_dataset_freiburg3_walking_rpy-groundtruth.txt
  • ATE Error of rgbd_dataset_freiburg3_walking_rpy
 evaluate_ate.py --plot ate.png --verbose --save_associations ate_associate.txt ../rgbd_dataset_freiburg3_walking_rpy-groundtruth.txt ../KeyFrameTrajectory.txt
compared_pose_pairs 388 pairs
absolute_translational_error.rmse 1.085461 m
absolute_translational_error.mean 0.970126 m
absolute_translational_error.median 1.135803 m
absolute_translational_error.std 0.486909 m
absolute_translational_error.min 0.047486 m
absolute_translational_error.max 1.905858 m

ate.png

  • RPE Error of rgbd_dataset_freiburg3_walking_rpy
evaluate_rpe.py --fixed_delta --plot rpe.png --save rpe.txt --verbose ../rgbd_dataset_freiburg3_walking_rpy-groundtruth.txt ../KeyFrameTrajectory.txt
compared_pose_pairs 364 pairs
translational_error.rmse 0.385744 m
translational_error.mean 0.290880 m
translational_error.median 0.203410 m
translational_error.std 0.253352 m
translational_error.min 0.000000 m
translational_error.max 1.024328 m
rotational_error.rmse 7.523788 deg
rotational_error.mean 5.614611 deg
rotational_error.median 0.064197 deg
rotational_error.std 5.008347 deg
rotational_error.min 0.000000 deg
rotational_error.max 19.987115 deg

rpe.png

groundtruth_file 数据格式

groundtruth_file      ground-truth trajectory file (format: "timestamp tx ty  tz qx qy qz qw")
estimated_file        estimated trajectory file (format: "timestamp tx ty tz qx qy qz qw")

For example:

1341846647.802247 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.0000000
1341846647.866652 0.0070123 0.0018382 -0.0068172 0.0032666 0.0019550 0.0018201 0.9999911
...

2D到3D点的转换

fx = 525.0  # focal length x
fy = 525.0  # focal length y
cx = 319.5  # optical center x
cy = 239.5  # optical center y

factor = 5000 # for the 16-bit PNG files
# OR: factor = 1 # for the 32-bit float images in the ROS bag files

for v in range(depth_image.height):
  for u in range(depth_image.width):
    Z = depth_image[v,u] / factor;
    X = (u - cx) * Z / fx;
    Y = (v - cy) * Z / fy;

相机内参

Camera    fx  fy  cx  cy  d0  d1  d2  d3  d4
(ROS default)    525.0   525.0   319.5   239.5   0.0 0.0 0.0 0.0 0.0
Freiburg 1 RGB    517.3   516.5   318.6   255.3   0.2624  -0.9531 -0.0054 0.0026  1.1633
Freiburg 2 RGB    520.9   521.0   325.1   249.7   0.2312  -0.7849 -0.0033 -0.0001 0.9172
Freiburg 3 RGB    535.4   539.2   320.1   247.6   0   0   0   0   0

Post a Comment