博客
关于我
(一)KITTI数据集用于3D目标检测
阅读量:797 次
发布时间:2023-03-28

本文共 1962 字,大约阅读时间需要 6 分钟。

KITTI数据集介绍

数据基本情况

KITTI数据集由德国卡尔斯鲁厄科技学院和丰田芝加哥研究院开源,是一套广泛应用于自动驾驶和3D目标检测领域的多模态数据集,最初发布于2012年3月20日。该数据集基于CVPR2012会议发表的论文,涵盖了市区、郊区和高速公路等多种交通场景。数据采集时间为2011年9月26日至30日及10月3日,均为白天操作。

数据采集平台

采集平台由多个传感器组成,主要包括:

  • 2个140万像素的黑白相机
  • 2个140万像素的彩色相机
  • 4个爱特蒙特光学镜头
  • 1个64线Velodyne 3D激光扫描仪
  • 1个OXTS RT3003惯导系统

坐标系说明

  • 相机坐标系:Z轴为前方,Y轴为下方,整体为右手坐标系。
  • 激光雷达坐标系:X轴为正前方,Z轴为竖直向上,Y轴根据右手定则确定。
  • IMU/GPS系统的坐标系与激光雷达一致。

传感器标定及时间同步

系统以激光雷达旋转一周为一个帧,通过触发相机拍照实现时间同步。IMU数据采集频率为100Hz,记录时间戳,与相机数据匹配时误差不超过5ms。相机标定通过校准实现,所有相机中心对齐以便图像校正。每天开始采集前进行全局标定。

传感器参数

  • calib_cam_to_cam.txt:相机间的旋转矩阵、投影矩阵及校正尺寸。
  • calib_velo_to_cam.txt:激光雷达到相机的齐次变换矩阵。
  • calib_imu_to_velo.txt:IMU到激光雷达的齐次变换矩阵。

数据文件结构

数据文件夹结构如下:

- image_02/000008.png- label_02/000008.txt- calib/000008.txt- velodyne/000008.bin- plane/

数据内容

  • 时间戳:velodyne-points文件夹下包含timestamps_start.txt、timestamps_end.txt和timestamps.txt。
  • 图像数据:图像经过去引擎盖和天空后的校正结果。
  • OXTS数据:包含经纬度、速度、加速度等30个字段。
  • 雷达数据:浮点数二进制文件,包含x、y、z坐标及反射强度,每帧生成约120000个3D点。

3D目标检测

数据集支持多种任务,包括3D目标检测。标注类别包括:

  • Car/Van/Truck/Pedestrian/Person_sitting/Cyclist/Tram/Misc

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/

你可能感兴趣的文章
Objective-C实现MinHeap最小堆算法(附完整源码)
查看>>
Objective-C实现multilayer perceptron classifier多层感知器分类器算法(附完整源码)
查看>>
Objective-C实现n body simulationn体模拟算法(附完整源码)
查看>>
Objective-C实现naive string search字符串搜索算法(附完整源码)
查看>>
Objective-C实现natural sort自然排序算法(附完整源码)
查看>>
Objective-C实现nested brackets嵌套括号算法(附完整源码)
查看>>
Objective-C实现nevilles method多项式插值算法(附完整源码)
查看>>
Objective-C实现newtons second law of motion牛顿第二运动定律算法(附完整源码)
查看>>
Objective-C实现newton_raphson牛顿拉夫森算法(附完整源码)
查看>>
Objective-C实现NLP中文分词(附完整源码)
查看>>
Objective-C实现NLP中文分词(附完整源码)
查看>>
Objective-C实现not gate非门算法(附完整源码)
查看>>
Objective-C实现NumberOfIslands岛屿的个数算法(附完整源码)
查看>>
Objective-C实现n皇后问题算法(附完整源码)
查看>>
Objective-C实现OCR文字识别(附完整源码)
查看>>
Objective-C实现odd even sort奇偶排序算法(附完整源码)
查看>>
Objective-C实现page rank算法(附完整源码)
查看>>
Objective-C实现PageRank算法(附完整源码)
查看>>
Objective-C实现pascalTriangle帕斯卡三角形算法(附完整源码)
查看>>
Objective-C实现perfect cube完全立方数算法(附完整源码)
查看>>