KITTI数据集解析

2023-11-11

KITTI 数据集解析

本文主要是对于3D目标检测中,KITTI数据集的分析。

数据下载:

KITTI 官网链接

下载的主要有:

  1. left color images
  2. velodyne point clouds
  3. camera calibration matrices
  4. training labels

left color images

主要是图像数据。图像的方向为:x->右, y->下, z->前。

velodyne point clouds

激光雷达数据。KITTI中,采用的是velodyne的64线激光雷达,10Hz。 0.09 degree angular resolution。 2cm的距离精度。 FOV: 360度水平,26.8度垂直。 测量范围:120米。
下载的velodyne 数据包里面都是bin文件,点云数据包括(x,y,z,Intensity)。其坐标系方向为: x-> 前,y->左,z->上。以“000001.bin”文件为例,内容如下:

7b14 4642 1058 b541 9643 0340 0000 0000
46b6 4542 1283 b641 3333 0340 0000 0000
4e62 4042 9643 b541 b072 0040 cdcc 4c3d
8340 3f42 08ac b541 3bdf ff3f 0000 0000
e550 4042 022b b841 9cc4 0040 0000 0000
10d8 4042 022b ba41 4c37 0140 0000 0000
3fb5 3a42 14ae b541 5a64 fb3f 0000 0000
7dbf 3942 2731 b641 be9f fa3f 8fc2 f53d
cd4c 3842 3f35 b641 4c37 f93f ec51 383e
dbf9 3742 a69b b641 c3f5 f83f ec51 383e
2586 3742 9a99 b741 fed4 f83f 1f85 6b3e
                .
                .
                .

​点云数据以浮点二进制文件格式存储,每行包含8个数据,每个数据由四位十六进制数表示(浮点数),每个数据通过空格隔开。一个点云数据由四个浮点数数据构成,分别表示点云的x、y、z、i(强度 or 反射值),点云的存储方式如下表所示:

pointcloud-1 pointcloud-2
x y z i x y z i
pointcloud-3 pointcloud-4
x y z i x y z i

camera calibration matrices

相机雷达标定文件,主要用于將激光雷达投影在图像上显示。

P0: 7.070493000000e+02 0.000000000000e+00 6.040814000000e+02 0.000000000000e+00 0.000000000000e+00 7.070493000000e+02 1.805066000000e+02 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00
P1: 7.070493000000e+02 0.000000000000e+00 6.040814000000e+02 -3.797842000000e+02 0.000000000000e+00 7.070493000000e+02 1.805066000000e+02 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00
P2: 7.070493000000e+02 0.000000000000e+00 6.040814000000e+02 4.575831000000e+01 0.000000000000e+00 7.070493000000e+02 1.805066000000e+02 -3.454157000000e-01 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 4.981016000000e-03
P3: 7.070493000000e+02 0.000000000000e+00 6.040814000000e+02 -3.341081000000e+02 0.000000000000e+00 7.070493000000e+02 1.805066000000e+02 2.330660000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 3.201153000000e-03
R0_rect: 9.999128000000e-01 1.009263000000e-02 -8.511932000000e-03 -1.012729000000e-02 9.999406000000e-01 -4.037671000000e-03 8.470675000000e-03 4.123522000000e-03 9.999556000000e-01
Tr_velo_to_cam: 6.927964000000e-03 -9.999722000000e-01 -2.757829000000e-03 -2.457729000000e-02 -1.162982000000e-03 2.749836000000e-03 -9.999955000000e-01 -6.127237000000e-02 9.999753000000e-01 6.931141000000e-03 -1.143899000000e-03 -3.321029000000e-01
Tr_imu_to_velo: 9.999976000000e-01 7.553071000000e-04 -2.035826000000e-03 -8.086759000000e-01 -7.854027000000e-04 9.998898000000e-01 -1.482298000000e-02 3.195559000000e-01 2.024406000000e-03 1.482454000000e-02 9.998881000000e-01 -7.997231000000e-01

每个文件包含7个数据,分别为P0,P1,P2,P3,RO_rect,Tr_velo_to_cam,Tr_imu_to_velo

0、1、2、3 代表相机的编号,0表示左边灰度相机,1右边灰度相机,2左边彩色相机,3右边彩色相机。P0-P4是矫正后的相机投影矩阵 ( R 3 x 4 ) (R^{3\rm{x}4}) (R3x4)
RO_rect是矫正后的相机旋转矩阵 ( R 3 x 3 ) (R^{3\rm{x}3}) (R3x3)。在实际计算时,需要将该3x3的矩阵扩展为4x4的矩阵,方法为在第四行和第四列添加全为0的向量,并且将(4, 4)的索引值设为1。
Tr_velo_to_cam是雷达到相机的旋转平移矩阵
Tr_imu_to_velo是惯导到雷达的旋转平移矩阵。

如果要将激光雷达坐标系中的点x投影到左侧的彩色图像(P2)y中,可使用如下公式:
y = P 2 ∗ R 0 _ r e c t ∗ T r _ v e l o _ t o _ c a m ∗ x y=P2*R0\_rect * Tr\_velo\_to\_cam * \rm{x} y=P2R0_rectTr_velo_to_camx

training labels

这个文件夹主要是训练图片的label。 举个例子

Truck 0.00 0 -1.57 599.41 156.40 629.75 189.25 2.85 2.63 12.34 0.47 1.49 69.44 -1.56
Car 0.00 0 1.85 387.63 181.54 423.81 203.12 1.67 1.87 3.69 -16.53 2.39 58.49 1.57
Cyclist 0.00 3 -1.65 676.60 163.95 688.98 193.93 1.86 0.60 2.02 4.59 1.32 45.84 -1.55
DontCare -1 -1 -10 503.89 169.71 590.61 190.13 -1 -1 -1 -1000 -1000 -1000 -10
DontCare -1 -1 -10 511.35 174.96 527.81 187.45 -1 -1 -1 -1000 -1000 -1000 -10
DontCare -1 -1 -10 532.37 176.35 542.68 185.27 -1 -1 -1 -1000 -1000 -1000 -10
DontCare -1 -1 -10 559.62 175.83 575.40 183.15 -1 -1 -1 -1000 -1000 -1000 -10

每个图片对应于一个label 文件, 每一行代表一个object, 且有16个数据,分别为:

  1. 第一列(字符串) : 目标类别。 KITTI总共有9各类别:Car、Van、Truck、Pedestrian、Person_sitting、Cyclist、Tram、Misc、DontCare。其中DontCare标签表示该区域没有被标注,比如由于目标物体距离激光雷达太远。为了防止在评估过程中(主要是计算precision),将本来是目标物体但是因为某些原因而没有标注的区域统计为假阳性(false positives),评估脚本会自动忽略DontCare区域的预测结果。

  2. 第2列(浮点数):代表物体是否被截断(truncated)数值在0(非截断)到1(截断)之间浮动,数字表示指离开图像边界对象的程度。

  3. 第3列(整数):代表物体是否被遮挡(occluded)。整数0、1、2、3分别表示被遮挡的程度。

  4. 第4列(弧度数):物体的观察角度(alpha)。取值范围为:-pi ~ pi(单位:rad),它表示在相机坐标系下,以相机原点为中心,相机原点到物体中心的连线为半径,将物体绕相机y轴旋转至相机z轴,此时物体方向与相机x轴的夹角,如下图所示。

  5. 第5~8列(浮点数):物体的2D边界框大小(bbox)。四个数分别是xmin、ymin、xmax、ymax(单位:pixel),表示2维边界框的左上角和右下角的坐标。

  6. 第9~11列(浮点数):3D物体的尺寸(dimensions)。 分别是高、宽、长(单位:米)

  7. 第12-14列(浮点数):3D物体的位置(location)。 分别是x、y、z(单位:米),特别注意的是,这里的xyz是在相机坐标系下3D物体的中心点位置。

  8. 第15列(弧度数):3D物体的空间方向(rotation_y)。 取值范围为:-pi ~ pi(单位:rad),它表示,在照相机坐标系下,物体的全局方向角(物体前进方向与相机坐标系x轴的夹角),如下图所示。

  9. 第16列(浮点数):检测的置信度(score)。要特别注意的是,这个数据只在测试集的数据中有(待确认)。

training labels

当采集KITTI数据的时候,官网有一句话:
The cameras are triggered at 10 frames per second by the laser scanner(when facing forward) with shutter time adjusted dynamically(maximum shutter time 2ms)

Reference

  1. https://blog.csdn.net/u013086672/article/details/103913361?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&dist_request_id=d75fb144-cace-42d5-9f8c-63e009b8686e&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

KITTI数据集解析 的相关文章

随机推荐

  • java统计文章中单词出现的次数

    统计一篇文章中单词出现的次数 要存储单词和次数 根据次数排序输出 要用Map数据结构保存键值对 首先想到是用TreeMap
  • OpenType字库文件

    OpenType字库文件 一个OpenType字库文件以表的格式包含有数据 这些数据包含一个TrueType或一个PostScript outline 字库 光栅化程序使用字库里包含的表中的数据来渲染TrueType或者PostScript
  • 零基础程序员如何自学编程?用这6种方法就够了!

    PHP从入门到放弃 C语言从入门到放弃 Python从入门到放弃 在自学编程的过程中 一部分程序员遇到冰冷的英语字母 枯燥的编程教程 果断选择了放弃 但其实自学编程不是那么难 只要是理工科生 逻辑思维还行的小伙伴 编程入门完全可以 下面给程
  • 用Podman来代替Docker Desktop

    文章目录 用Podman来代替Docker Desktop 更新 前言 在Mac上安装Podman 在Windows上安装Podman 测试Podman 用podman compose运行Docker Compose 用Podman直接操作
  • Android实现省市区三级联动效果

    PickerView控件的作者在3 0版本中对PickerView源码进行了重构 重构后的PickerView添加了很多可自定义的属性 比如可以自定义文字颜色 大小等 使用也更加方便了 只是改动较大 使用方法也与2 0版本有不少差别 由于2
  • datacom-IPV6

    一 概念 1 IPV6与IPV4相比的优点 1 地址容量大 2 层次结构设计更合理 方便路由汇聚 3 即插即用 SLAAC 4 报头经过了简化 提高了转发效率 5 更安全 IPSEC 6 更好的移动性 7 QOS增强 2 IPV6和IPV4
  • 03Linux下静态库和动态库(共享库)的制作与使用

    Linux下静态库和动态库 共享库 的制作与使用 Linux操作系统支持的函数库分为 静态库 libxxx a 在编译时就将库编译进可执行程序中 lib 前缀 固定 a 后缀 固定 优点 程序的运行环境中不需要外部的函数库 缺点 可执行程序
  • Oracle 报表常用sql

    Oracle 报表常用sql 数据库建模式 用户 表空间 表 数据语句在最末尾 一 数据类型转化 函数 translate 字段 USING NCHAR CS 样例 SELECT translate COLUMN1 USING NCHAR
  • Centos8安装MySQL(亲测有效)

    1 下载压缩包 https cdn mysql com Downloads MySQL 5 7 mysql 5 7 29 1 el7 x86 64 rpm bundle tar 2 上传到服务器 命令 rz 3 解压 tar xvf mys
  • dll修复工具安装教程

    电脑显示dll软件报错 相信有很多小伙伴遇到过这种情况 一起来看看呗 亲测有用 可以一键检测和修复Windows系统中存在的DLL问题 SYS问题以及注册表问题 并拥有完善的DLL库供用户搜索下载 此外dll修复工具还支持注册表优化 启动项
  • 【论文&模型讲解】多模态对话 Multimodal Dialogue Response Generation

    文章目录 前言 0 摘要 1 Introduction 2 相关工作 2 1 文本对话回复生成 2 2 Text to Image 生成 3 Problem Formailzation 4 Approach 4 1 多模态 Tokeniza
  • C#中this关键字的使用

    01 消除字段歧义 public class Writer private int age private String name public Writer int age String name this age age this na
  • 灰灰-324-2019华科软院学硕上机(二)-魔方阵:vector、resize()、setw()

    魔方阵 古代又称 纵横图 是指组成元素为自然数1 2 n的平方的n n的方阵 其中每个元素值都不相等 且每行 每列以及主 副对角线上各n个元素之和都相等 阶数大于等于3 如3 3的魔方阵 8 1 6 3 5 7 4 9 2 奇数魔方阵的排列
  • ARDUINO使用GPRS发送GPS数据到OneNet测试

    功能 测试把固定的GPS数据发送到OneNet平台 调试途中碰到的问题 ARDUINO不支持sprintf的double打印 只能转换为char字符串然后再 s打印 include
  • 永磁同步电机(PMSM)磁场定向控制(FOC)电流环PI调节器参数整定

    文章目录 前言 一 调节器的工程设计方法 二 电流环PI调节器的参数整定 2 1 电流环的结构框图 2 2 典型I型系统 2 3 电流环PI参数整定计算公式 三 电流环PI调节器设计实例 3 1 永磁同步电机磁场定向的电流闭环控制 3 2
  • 关于qt 读写结构体

    目录 前言 一 注意事项 1 1 需求 1 2 读文件报错 1 2 1 文件写入 1 2 2 文件读取 1 2 3 文件写入 1 2 4 文件读取 二 解决方案 2 1 正确实例代码 2 1 1 头文件 2 1 2 源文件 2 1 3 文件
  • 响应式布局的常用解决方案对比(媒体查询、百分比、rem和vw/vh)

    简要介绍 前端开发中 静态网页通常需要适应不同分辨率的设备 常用的自适应解决方案包括媒体查询 百分比 rem和vw vh等 本文从px单位出发 分析了px在移动端布局中的不足 接着介绍了几种不同的自适应解决方案 本文原文在我的github主
  • 【粉丝问答9】一起入职的同事能力不如我,只因学历比我高,工资是我的两倍

    一起入职的同事能力不如我 只因学历比我高 工资是我的两倍 我想这是很多初入职场的同学经常会遇到的一个问题 本篇只针对研发人员 一口君有个朋友C君刚毕业的第一家 也遇到过类似的问题 C君是本科进入做路由器的协议开发工作 辛辛苦苦开发的软件模块
  • Linux Sed命令详解

    概述 sed是stream editor的简称 也就是流编辑器 它一次处理一行内容 处理时 把当前处理的行存储在临时缓冲区中 称为 pattern space 接着用sed命令处理缓冲区中的内容 处理完成后 把缓冲区的内容送往屏幕 接着处理
  • KITTI数据集解析

    KITTI 数据集解析 本文主要是对于3D目标检测中 KITTI数据集的分析 数据下载 KITTI 官网链接 下载的主要有 left color images velodyne point clouds camera calibration