kitti数据集label解析和可视化教程

本文详细介绍了KITTI自动驾驶数据集的标注解析,包括物体类别、截断程度、遮挡情况等信息,并阐述了点云文件和相机校准参数的含义。此外,还提供了3D bounding box在图像坐标系中的转换方法,是理解自动驾驶视觉数据集的重要参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

kitti数据集label解析_hhhhhhzb的博客-优快云博客_kitti数据集label其中第1列truck 表示图中出现了卡车(一共有’Car’, ‘Van’, ‘Truck’,‘Pedestrian’, ‘Person_sitting’, ‘Cyclist’, ‘Tram’,‘Misc’ or 'DontCare’这些类别,Don’t care 是没有3D标注的,原因是雷达扫不了那么远,即使可以视觉检测出来)第2列0.0表示其是否被截断的程度为0。(如果车在图片边缘,那么就有可能发生部分被截断的情况。用0-1 表示被截断的程度。)第3列0表示没有被遮挡。(0表示完全可见,1表示部分遮.https://blog.youkuaiyun.com/hhhhhhzb/article/details/117913706

KITTI数据集--参数_jilijilicao的博客-优快云博客_kitti一、kitti数据集,label解析 16个数代表的含义:第1个字符串:代表物体类别'Car', 'Van', 'Truck','Pedestrian', 'Person_sitting', 'Cyclist','Tram',  'Misc' or  'DontCare'注意,’DontCare’ 标签表示该区域没有被标注,比如由于目标物体距离激光雷达太远。为了防止在评估过...https://blog.youkuaiyun.com/cuichuanchen3307/article/details/80596689?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1-80596689-blog-117913706.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1-80596689-blog-117913706.pc_relevant_antiscanv2&utm_relevant_index=2

KITTI自动驾驶数据集可视化教程_自动驾驶小学生的博客-优快云博客_kitti可视化https://blog.youkuaiyun.com/cg129054036/article/details/119516704

<center><font size=6 face="黑体">Kitti数据集相应参数说明</font></center>

1、数据的制作设备及一些参数说明:

​ 1)4路相机:

​ camera_0:左边灰度相机,<font color='red'>参考相机</font>

​ camera_1:右边灰度相机

​ camera_2:左边彩色相机

​ camera_3:右边彩色相机

​ 2)一个激光雷达:用于生成点云数据

​ 3)camera_0与camera_2、camera_1与camera_3的距离为0.06米

​ 4)camera_0与camera_1、camera_2与camera_3的距离为0.54米

​ 5)4路相机的高度都为1.65米

​ 6)激光雷达的高度为1.73米

​ 7)坐标系说明:

​ 相机坐标系: x = right, y = down, z = forward

​ 点云坐标系: x = forward, y = left, z = up

2、数据文件解释

2.1 label txt

​ 1)第1个值:代表类别,可以为['Car', 'Van', 'Truck','Pedestrian', 'Person_sitting', 'Cyclist','Tram', 'Misc' , 'DontCare']

​ 2)第2个值:代表物体是否被截断,从0到1浮动,0表示没被截断,1表示完全被截断,即超出图像范围

​ 3)第3个值:代表物体是否被遮挡,表示为整数0(完全可见)、1(小部分遮挡)、2(大部分遮挡)、3(完全遮挡)

​ 4)第4个值:代表物体的观察角度,可参考<font color=blue>这篇博客</font>的解释

​ 5)第5~8个值:代表物体的2D bounding box,分别为xmin、ymin、xmax、ymax

​ 6)第9~11个值:代表物体的高宽长(hwl)(单位:米)

​ 7)第12~14个值:代表3D bounding box的中心坐标(相机坐标系下)

2.2 point cloud file

一个bin文件为一张图像的相应点云,保存为Nx4的形式,4为(x, y, z, ref),x, y, z为相应的坐标(点云坐标系下),ref为反射率

2.3 calib txt

​ 1)P0:3x4,3x3为相机内参,最后一列为全0,对P0来说无意义

​ 2)P1:3x4,3x3为相机内参,该矩阵为校准后的camera_0相机坐标到camera_1图像坐标的映射

​ 3)P2:3x4,3x3为相机内参,该矩阵为校准后的camera_0相机坐标到camera_2图像坐标的映射

​ 4)P3:3x4,3x3为相机内参,该矩阵为校准后的camera_0相机坐标到camera_3图像坐标的映射

​ 5)R0_rect:3x3,参考坐标的校准旋转矩阵。校准是使多路相机的图像在同一个平面上

​ 6)Tr_velo_to_cam:点云坐标到参考坐标(即camera_0坐标系)的映射矩阵

示例:

​ 1、将label文件中的3D bounding box转换到图像坐标(以映射到左彩图为例):

​ y_image = P2 * R0_rect * R0_rot * x_ref_coord

​ 注:R0_rot为物体坐标到参考坐标的映射矩阵

​ 2、将点云坐标映射到图像坐标(以映射到左彩图为例):

​ y_image = P2 * R0_rect * Tr_velo_to_cam * x_velo_coord

参考连接:

1、博客https://medium.com/test-ttile/kitti-3d-object-detection-dataset-d78a762b5a4

2、kitti官方论文http://ww.cvlibs.net/publications/Geiger2013IJRR.pdf

 

### 使用 KITTI 数据集实现目标检测项目 #### 获取数据集 为了使用 KITTI 数据集进行目标检测的研究或开发工作,需先访问官方提供的下载页面获取所需的数据文件[^1]。 #### 准备环境 确保安装了必要的库来处理图像点云数据。常用的Python包有`numpy`, `opencv-python`, 专门用于3D视觉任务的`open3d`等工具。可以通过pip命令轻松安装这些依赖项: ```bash pip install numpy opencv-python open3d ``` #### 加载与预览数据 KITTI提供了多种类型的传感器数据,包括彩色图片、灰度图以及LiDAR扫描得到的三维点云信息。对于每种模态的数据读取方法如下所示: - **加载RGB图像** 可利用OpenCV或其他图像处理库打开并显示JPEG格式的照片。 ```python import cv2 img_path = 'path_to_kitti_dataset/image_02/<sequence_id>/<frame>.png' image = cv2.imread(img_path) cv2.imshow('Image', image) cv2.waitKey(0) cv2.destroyAllWindows() ``` - **解析标签文件** 标签通常保存在一个文本文件中,每一行代表一个物体实例及其属性(位置、尺寸、类别)。可以编写简单的脚本来提取感兴趣的信息。 ```python def parse_label_file(label_filepath): with open(label_filepath, 'r') as f: lines = f.readlines() objects = [] for line in lines: obj_info = line.strip().split(' ') class_name = obj_info[0] bbox = list(map(float, obj_info[4:8])) # xmin ymin xmax ymax dimensions = list(map(float, obj_info[8:11])) # height width length location = list(map(float, obj_info[11:14])) # x y z (in camera coords.) rotation_y = float(obj_info[14]) # Rotation around Y-axis object_dict = { "class": class_name, "bbox": bbox, "dimensions": dimensions, "location": location, "rotation_y": rotation_y } objects.append(object_dict) return objects ``` - **可视化点云数据** 对于激光雷达产生的点云数据,可借助开源软件如PCL(Point Cloud Library) 或者 Python中的 Open3D 库来进行渲染查看。 ```python import open3d as o3d import numpy as np pcd_path = 'path_to_kitti_dataset/velodyne_points/data/<frame>.bin' points = np.fromfile(pcd_path, dtype=np.float32).reshape(-1, 4)[:, :3] point_cloud = o3d.geometry.PointCloud() point_cloud.points = o3d.utility.Vector3dVector(points) o3d.visualization.draw_geometries([point_cloud]) ``` #### 构建模型架构 针对KITTI的目标检测挑战赛,可以选择现有的先进算法框架作为起点,比如基于深度学习的方法MonoDISMONO, Stereo R-CNN 等。也可以考虑采用两阶段或多视角融合策略提高精度。 #### 训练与评估 完成上述准备工作之后就可以着手训练自己的模型了。记得划分好训练集验证集测试集的比例,并定期在验证集上监控性能指标以调整超参数设置;最终通过提交至KITTIEvaluation Server获得正式的成绩反馈。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值