KITTI数据集下载及解析_u013086672的博客-CSDN博客 - 图1

KITTI 数据集下载及解析

W. Xiao, Visual group

版本 更新时间 更新内容 作者
1 V 1.0 2020.01.09 完成主体内容 W. Xiao
2

1 简介

KITTI 数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。该数据集用于评测立体图像 (stereo),光流(optical flow),视觉测距(visual odometry),3D 物体检测(object detection) 和 3D 跟踪 (tracking) 等计算机视觉技术在车载环境下的性能。KITTI 包含市区、乡村和高速公路等场景采集的真实图像数据,每张图像中最多达 15 辆车和 30 个行人,还有各种程度的遮挡与截断。 3D 目标检测数据集由7481个训练图像和7518个测试图像以及相应的点云数据组成,包括总共80256个标记对象。

下图红色框标记的为我们需要的数据,分别是彩色图像数据(12GB)、点云数据(29GB)、相机矫正数据(16MB)、标签数据(5MB)。其中彩色图像数据、点云数据、相机矫正数据均包含 training(7481)和 testing(7518)两个部分,标签数据只有 training 数据。
KITTI数据集下载及解析_u013086672的博客-CSDN博客 - 图2

官网下载地址为:http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d (国内目前还下载不了,需要的可移步我的 CSDN 博客:KITTI 数据集下载(百度云)

1.1 数据采集平台

KITTI数据集下载及解析_u013086672的博客-CSDN博客 - 图3

图 1.1 3D 物体的观察角和方位角

如图 1.1 所示,KITTI 数据集的数据采集平台装配有 2 个灰度摄像机,2 个彩色摄像机,一个 Velodyne 64 线 3D 激光雷达,4 个光学镜头,以及 1 个 GPS 导航系统。具体的传感器参数如下:

  • 2 × PointGray Flea2 grayscale cameras (FL2-14S3M-C), 1.4 Megapixels, 1/2” Sony ICX267 CCD, global shutter
  • 2 × PointGray Flea2 color cameras (FL2-14S3C-C), 1.4 Megapixels, 1/2” Sony ICX267 CCD, global shutter
  • 4 × Edmund Optics lenses, 4mm, opening angle ∼ 90◦, vertical opening angle of region of interest (ROI) ∼ 35◦
  • 1 × Velodyne HDL-64E rotating 3D laser scanner, 10 Hz, 64 beams, 0.09 degree angular resolution, 2 cm distance accuracy, collecting ∼ 1.3 million points/second, field of view: 360◦ horizontal, 26.8◦ vertical, range: 120 m
  • 1 × OXTS RT3003 inertial and GPS navigation system, 6 axis, 100 Hz, L1/L2 RTK, resolution: 0.02m / 0.1◦
    KITTI数据集下载及解析_u013086672的博客-CSDN博客 - 图4

图 1.2 传感器布置图

传感器布置平面图如图 1.2 所示。为了生成双目立体图像,相同类型的摄像头相距 54cm 安装。由于彩色摄像机的分辨率和对比度不够好,所以还使用了两个立体灰度摄像机,它和彩色摄像机相距 6cm 安装。

1.2 坐标系

KITTI数据集下载及解析_u013086672的博客-CSDN博客 - 图5

图 1.3 物体坐标系

  • camera: x = right, y = down, z = forward
  • velodyne: x = forward, y = left, z = up
  • GPS/IMU: x = forward, y = left, z = up

2 数据解析

2.1 image 文件

image 文件以 8 位 PNG 格式存储,图集如下:
KITTI数据集下载及解析_u013086672的博客-CSDN博客 - 图6

2.2 velodyne 文件

velodyne 文件是激光雷达的测量数据(绕其垂直轴(逆时针)连续旋转),以 “000001.bin” 文件为例,内容如下:

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

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

| pointcloud-1 | pointcloud-2 |

| x | y | z | r | x | y | z | r |

| pointcloud-3 | pointcloud-4 |

| x | y | z | r | x | y | z | r |

| … | pointcloud-n |

| x | y | z | r | x | y | z | r |

2.3 calib 文件

calib 文件是相机、雷达、惯导等传感器的矫正数据。以 “000001.txt” 文件为例,内容如下:

P0: 7.215377000000e+02 0.000000000000e+00 6.095593000000e+02 0.000000000000e+00 0.000000000000e+00 7.215377000000e+02 1.728540000000e+02 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00
P1: 7.215377000000e+02 0.000000000000e+00 6.095593000000e+02 -3.875744000000e+02 0.000000000000e+00 7.215377000000e+02 1.728540000000e+02 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00
P2: 7.215377000000e+02 0.000000000000e+00 6.095593000000e+02 4.485728000000e+01 0.000000000000e+00 7.215377000000e+02 1.728540000000e+02 2.163791000000e-01 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 2.745884000000e-03
P3: 7.215377000000e+02 0.000000000000e+00 6.095593000000e+02 -3.395242000000e+02 0.000000000000e+00 7.215377000000e+02 1.728540000000e+02 2.199936000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 2.729905000000e-03
R0_rect: 9.999239000000e-01 9.837760000000e-03 -7.445048000000e-03 -9.869795000000e-03 9.999421000000e-01 -4.278459000000e-03 7.402527000000e-03 4.351614000000e-03 9.999631000000e-01
Tr_velo_to_cam: 7.533745000000e-03 -9.999714000000e-01 -6.166020000000e-04 -4.069766000000e-03 1.480249000000e-02 7.280733000000e-04 -9.998902000000e-01 -7.631618000000e-02 9.998621000000e-01 7.523790000000e-03 1.480755000000e-02 -2.717806000000e-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

文件中每一行代表一个参数名,冒号后面是参数矩阵,具体如下:

  • P0~P4(P r e c t (i) _{rect}^{(i)} rect(i)):矫正后的相机投影矩阵(R 3 x 4 ^{3\rm{x}4} 3x4)

0、1、2、3 代表相机的编号,0 表示左边灰度相机,1 右边灰度相机,2 左边彩色相机,3 右边彩色相机。
T v e l o c a m = (f u ( i) 0 c u ( i ) − f u ( i ) b x ( i ) 0 f v ( i ) c v ( i ) 0 0 0 1 0 ) (1) \rm{\mathbf T}_{velo}^{cam} =

(fu(i)0cu(i)−fu(i)bx(i)0fv(i)cv(i)00010)

\tag{1} Tvelocam=⎝⎜⎛fu(i)000fv(i)0cu(i)cv(i)1−fu(i)bx(i)00⎠⎟⎞(1)
其中 b (i) x 表示相对于参考摄像机 0 的基准值(以米为单位)。

  • R0rect(R r e c t (i) {rect}^{(i)} rect(i)):矫正后的相机旋转矩阵(R 3 x 3 ^{3\rm{x}3} 3x3)

在实际计算时,需要将该 3x3 的矩阵扩展为 4x4 的矩阵,方法为在第四行和第四列添加全为 0 的向量,并且将(4, 4)的索引值设为 1。

  • Trvelo_to_cam(T v e l o c a m {velo}^{cam} velocam):从雷达到相机的旋转平移矩阵(R 3 x 4 ^{3\rm{x}4} 3x4)

在实际计算时,需要将该 3x4 的矩阵扩展为 4x4 的矩阵,方法为增加第四行向量[0,0,0,1]。这个矩阵其实包括了两个部分,其一是3x3 的旋转矩阵,其二是1x3 的平移向量
T v e l o c a m = (R v e l o c a m t v e l o c a m 0 1) (2) \rm{\mathbf T}_{velo}^{cam} =

(Rvelocamtvelocam01)

\tag{2} Tvelocam=(Rvelocam0tvelocam1)(2)
R v e l o c a m ∈ R 3 x 3 . . . r o t a t i o n m a t r i x : v e l o d y n e → c a m e r a t v e l o c a m ∈ R 3 x 3 . . . t r a n s l a t i o n v e c t o r : v e l o d y n e → c a m e r a (3)

Rvelocam∈R3x3…rotationmatrix:velodyne→cameratvelocam∈R3x3…translationvector:velodyne→camera

\tag{3} Rvelocam∈R3x3…rotationmatrix:velodyne→cameratvelocam∈R3x3…translationvector:velodyne→camera(3)

  • Trimu_to_velo(T i m u v e l o {imu}^{velo} imuvelo):从惯导或 GPS 装置到相机的旋转平移矩阵(R 3 x 4 ^{3\rm{x}4} 3x4)

与 Tr_velo_to_cam 类似。

  • 如果要将激光雷达坐标系中的点 x 投影到左侧的彩色图像(P2)y 中,可使用如下公式:
    y = P 2 ∗ R 0 r e c t ∗ T r v e l o t o c a m ∗ x (4) \rm{y} = P2 R0_rect Tr_velo_to_cam * x \tag{4} y=P2∗R0_rect∗Tr_velo_to_cam∗x(4)
  • 若想将激光雷达坐标系中的点 x 投射到其他摄像头,只需替换 P2 矩阵即可(例如右边的彩色相机 P3)。

2.4 label 文件

label 文件是 KITTI 中 object 的标签和评估数据,以 “000001.txt” 文件为例,包含样式如下:

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

每一行代表一个 object,每一行都有 16 列分别表示不同的含义,具体如下:

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

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

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

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

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

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

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

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

  • 第 16 列(整数):检测的置信度(score)
    要特别注意的是,这个数据只在测试集的数据中有(待确认)。
    KITTI数据集下载及解析_u013086672的博客-CSDN博客 - 图7

图 1 3D 物体的观察角和方位角

3 KITTI 可视化

目前已经完成了 pointcloud、gt boxes、label、dt boxes(PointRCNN)等可视化,后续会把体素化加进去,先贴个可视化效果图:
KITTI数据集下载及解析_u013086672的博客-CSDN博客 - 图8

—— end ——
https://blog.csdn.net/u013086672/article/details/103913361