本文共 1962 字,大约阅读时间需要 6 分钟。
KITTI数据集由德国卡尔斯鲁厄科技学院和丰田芝加哥研究院开源,是一套广泛应用于自动驾驶和3D目标检测领域的多模态数据集,最初发布于2012年3月20日。该数据集基于CVPR2012会议发表的论文,涵盖了市区、郊区和高速公路等多种交通场景。数据采集时间为2011年9月26日至30日及10月3日,均为白天操作。
采集平台由多个传感器组成,主要包括:
系统以激光雷达旋转一周为一个帧,通过触发相机拍照实现时间同步。IMU数据采集频率为100Hz,记录时间戳,与相机数据匹配时误差不超过5ms。相机标定通过校准实现,所有相机中心对齐以便图像校正。每天开始采集前进行全局标定。
数据文件夹结构如下:
- image_02/000008.png- label_02/000008.txt- calib/000008.txt- velodyne/000008.bin- plane/
数据集支持多种任务,包括3D目标检测。标注类别包括:
3D目标检测标注基于激光雷达坐标系,使用7个自由度:中心点坐标、长宽高及偏航角。检测框在相机坐标系下标注,长度宽度高度分别对应x、y、z轴。
数据集包含7481张训练数据和7518张测试数据,其中Car和Pedestrian类别标注较为充分。KITTI官方评估框架使用Car/Pedestrian/Cyclist三类进行算法评估。
使用Open3D读取点云数据:
import numpy as npimport structimport open3d as o3ddef convert_kitti_bin_to_pcd(binFilePath): size_float = 4 list_pcd = [] with open(binFilePath, "rb") as f: byte = f.read(size_float * 4) while byte: x, y, z, intensity = struct.unpack("ffff", byte) list_pcd.append([x, y, z]) byte = f.read(size_float * 4) np_pcd = np.asarray(list_pcd) pcd = o3d.geometry.PointCloud() pcd.points = o3d.utility.Vector3dVector(np_pcd) return pcd# 读取示例数据bs = "/path/to/data/kitti/000008.bin"pcds = convert_kitti_bin_to_pcd(bs)o3d.visualization.draw_geometries([pcds])# 保存点云o3d.io.write_point_cloud('000008.pcd', pcds, write_ascii=False, compressed=False, print_progress=False) 通过以上介绍,可以对KITTI数据集有一个基本的认识。后续将结合多模态数据实现3D目标检测任务。
转载地址:http://lahfk.baihongyu.com/