【代码笔记】准备Kitti raw中的Pose数据

KITTI原始数据包含了车辆的oxts测量数据,并可用作原始序列的姿态。原始开发工具包中包含了一个将oxts测量数据转换为姿态的Matlab/Octave脚本。在这个脚本中,我们提供了一些代码的修改以及一些个人使用的脚本,用于将这些姿态数据转换为Python可用的形式,并与我们正在使用的kitti_visualize仓库和其他仓库一起提供。

具体步骤

  • 在 “devkit_raw_data/devkit/matlab” 加入 “produce_poses_mat.m”,
function [pose,pose_mat]=produce_poses_mat (base_dir)
% KITTI RAW DATA DEVELOPMENT KIT
% 
% Plots OXTS poses of a sequence
%
% Input arguments:
% base_dir .... absolute path to sequence base directory (ends with _sync)

% clear and close everything
%clear all; close all; clc;
disp('======= KITTI DevKit Demo =======');

% sequence base directory
if nargin<1
  base_dir = '/data/kitti_raw/2011_09_26/2011_09_26_drive_0001_sync';
end
base_dir
% load oxts data
oxts = loadOxtsliteData(base_dir);

% transform to poses
pose = convertOxtsToPose(oxts);

pose_mat = zeros(length(pose), 4, 4);
for i=1:length(pose)
  pose_mat(i, :, :) = pose{i};
end
output_path = strcat(base_dir, '/oxts/pose.mat');
save(output_path, 'pose_mat', '-v6'); % magic paramters?
  • 在相同路径加入python3 代码"produce_poses_mat.py",代码为:
import os

base_dir = "/data/kitti_raw" ### CHANGE THIS TO YOUR KITTI_RAW PATH

date_list = os.listdir(base_dir)

for date in date_list:
    date_path = os.path.join(base_dir, date)
    if os.path.isdir(date_path): # some one may have different single_files in the base_dir, filter out them
        seq_list = os.listdir(date_path)
        for seq in seq_list:
            seq_path = os.path.join(date_path, seq)
            if os.path.isdir(seq_path):
                print("Processing: ", seq_path)
                os.system(f"octave produce_poses_mat.m {seq_path}")

然后,运行:python3 produce_poses_mat.py,然后在每一个sequence中生成pose.mat。
注意:在我的测试中,使用os.system()无法调用seq_path,需要改成如下代码:

os.system(f"octave --eval 'produce_poses_mat(\"{seq_path}\")'")

然后在python中,可以读取pose:

import scipy.io as sio

pose_dict = sio.loadmat(odometry_mat)
odom_array = pose_dict[[key for key in list(pose_dict.keys()) if not key.startswith('__')][0]]
# the only non "__" key, should be a N, 4, 4 numpy array where N equals to the number of images of the sequence.

原文:https://gist.github.com/Owen-Liuyuxuan/27f12e15788acba76053df84a28f2291

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kitti 数据集是目前自动驾驶领域应用最广泛的真实数据集之一,其包括了一系列的数据集,如 raw 数据、odom 数据等。其 kitti raw 数据集包含了在城市环境下行驶的车辆拍摄的 287 对同步的彩色图像和深度图像。Kitti raw 数据集是很多自动驾驶算法的基础数据源,因此对于自动驾驶工程师们来说,这个数据集的下载和使用是非常有必要的。 那么要如何下载 kitti raw 完整数据呢?首先,我们需要到 kitti 官网上下载对应的压缩包,因为 kitti 数据集太大,直接下载比较慢,这里建议使用迅雷、idm 等加速软件进行下载。下载 zip 压缩包之后,解压出来最终的文件夹包含了两个文件夹,一个是 image_02,一个是 velodyne_points。image_02 文件夹包含了该序列的左彩色图像,以及右彩色图像。velodyne_points 文件夹包含了该序列的 Velodyne 点云数据。同时,读取官网里面提供的 README 文件,我们可以知道如何读取相机与激光雷达的内参数等信息。 当然,对于初学者来说,这个数据集完整地下载下来后,首先需要了解每一组数据的含义和数据格式,然后可以使用 Python 等编程语言进行读取和处理,或者直接使用各种自动驾驶算法提供的数据读取和处理工具进行操作。 总之,kitti raw 完整数据的下载和使用需要一定的时间和技术门槛,但是对于研究和实践自动驾驶领域的工程师而言,这个数据集是非常有价值的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值