KITTI数据集操作笔记

本文详细记录了操作KITTI数据集的过程,包括读取oxts序列数据并转换为csv,计算行驶距离和轨迹,处理点云二进制数据,将标签数据保存为csv,以及点云在图像上的投影方法,涵盖了从数据预处理到视觉呈现的多个步骤。
摘要由CSDN通过智能技术生成

在这里插入图片描述

本文所用数据示例参考👉详见👈

1.读取序列oxts数据并存储为csv文件

输入:选择oxts序列数据文件夹
输出:csv文件数据

from tkinter import filedialog
import pandas as pd
import numpy as np
import os


def read_oxts(path):  # 读取oxts数据
    df = pd.read_csv(path, header=None, sep=' ')
    return df


def openFile():  # oxts文件夹路径
    filename = filedialog.askdirectory(title="Select oxts file folder")
    return filename


IMU_COLUMN_NAMES = ['lat', 'lon', 'alt', 'roll', 'pith', 'yaw', 'vn', 've', 'vf', 'vl', 'vu', 'ax', 'ay', 'az', 'af',
                    'al', 'au', 'wx', 'wy', 'wz', 'wf', 'wl', 'wu', 'posacc', 'velacc', 'navstat', 'numsats', 'posmode',
                    'velomde', 'orimode']  # 字段名称
results = []
results.append(IMU_COLUMN_NAMES)
paths = openFile()
for filepath, dirnames, filenames in os.walk(paths):
    for i in range(len(filenames)):
        path = os.path.join(filepath, filenames[i])
        file = read_oxts(path)
        results.append(file.values.tolist()[0])

results = np.array(results)

pd.DataFrame(results).to_csv("D:\Data\output.csv", header=None, index=None)

在这里插入图片描述

2.使用oxts序列数据计算距离

输入:选择oxts序列数据文件夹
输出:gps/imu计算的距离图

import matplotlib.pylab as plt
from tkinter import filedialog
import pandas as pd
import numpy as np
import os


def read_sequence_oxts():  # 读取序列oxts数据
    def read_oxts(path):
        df = pd.read_csv(path, header=None, sep=' ')
        return df

    def openFile():  # oxts文件夹路径
        filename = filedialog.askdirectory(title="Select oxts file folder")
        return filename

    IMU_COLUMN_NAMES = ['lat', 'lon', 'alt', 'roll', 'pith', 'yaw', 'vn', 've', 'vf', 'vl', 'vu', 'ax', 'ay', 'az',
                        'af', 'al', 'au', 'wx', 'wy', 'wz', 'wf', 'wl', 'wu', 'posacc', 'velacc', 'navstat', 'numsats',
                        'posmode', 'velomde', 'orimode']  # 字段名称
    results = []
    results.append(IMU_COLUMN_NAMES)
    paths = openFile()
    for filepath, dirnames, filenames in os.walk(paths):
        for i in range(len(filenames)):
            path = os.path.join(filepath, filenames[i])
            file = read_oxts(path)
            results.append(file.values.tolist()[0])

    return np.array(results)


def cal_gps_distances(data):  # 用GPS计算距离
    distances = []

    # 使用经纬度计算两个经纬度之间的大圆距离meter
    def compute_great_circle_distance(lat1, lon1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值