KITTI数据集解析和可视化

这篇具有很好参考价值的文章主要介绍了KITTI数据集解析和可视化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、KITTI数据集简介

1.1 介绍

  • 文章链接
    《Are we ready for Autonomous Driving? The KITTI Vision Benchmark Suite (2012)》
  • 概述
    KITTI数据集是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。该数据集用于评测立体图像(stereo),光流(optical flow),视觉测距(visual odometry),3D物体检测(object detection)和3D跟踪(tracking)等计算机视觉技术在车载环境下的性能。
    KITTI包含市区、乡村和高速公路等场景采集的真实图像数据,每张图像中最多达15辆车和30个行人,还有各种程度的遮挡与截断。
    3D目标检测数据集由7481个训练图像和7518个测试图像以及相应的点云数据组成,包括总共80256个标记对象。
  • 数据采集平台

Kitti的数据采集车,顶上是一个64线的velodyne激光雷达,前面有四个摄像头分别是cam0~3,其中0和1是灰度相机,2和3是rgb相机。激光雷达的坐标系遵循右手定则,而相机坐标系遵循左手定则,如图所示。
kitti数据集可视化,# 3d目标检测,计算机视觉,深度学习,人工智能
为了生成双目立体图像,相同类型的摄像头相距54cm安装。由于彩色摄像机的分辨率和对比度不够好,所以还使用了两个立体灰度摄像机,它和彩色摄像机相距6cm安装。
kitti数据集可视化,# 3d目标检测,计算机视觉,深度学习,人工智能
四个相机经过了严格的位置矫正,保证yz同值,x同轴,如果想进行lidar与camera的坐标系转换,默认以cam0为基准,即如果是cam0转到velodyne,就直接转,如果是cam其他转velodyne,则先要转到cam0,再转到velodyne,相机和激光的坐标转换后续会详细说明。

具体的传感器参数如下:
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数据集可视化,# 3d目标检测,计算机视觉,深度学习,人工智能

为了方便传感器数据标定,规定坐标系方向如下 :

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

1.2 下载

  • 数据集官网
    数据集官网下载地址
  • 百度网盘下载链接
    链接:https://pan.baidu.com/s/1-4WchJlcZ2guwcfbHqrdFw
    提取码:grys
    建议使用百度网盘的下载链接(因为文件特别大,而且官网的下载速度很慢。)

进入官网,下图红色框标记的为我们需要的数据:

  • 彩色图像数据(12GB)
  • 点云数据(29GB)
  • 相机矫正数据(16MB)
  • 标签数据(5MB)。

其中彩色图像数据、点云数据、相机矫正数据均包含training(7481)和testing(7518)两个部分,标签数据只有training数据。
kitti数据集可视化,# 3d目标检测,计算机视觉,深度学习,人工智能

二、数据解析

2.0 数据集结构

按照官方给出的OpenPCDet中的KITTI数据集的组织方法,排布数据集

data
│──  kitti
│  │── ImageSets
│  │── testing
│  │  ├── calib & image_2 & velodyne
│  │── training
│  │  ├── calib & image_2 & label_2 & planes & velodyne
  • image_2 即2号彩色相机所拍摄的图片(.png);
  • calib对应每一帧的外参(.txt);
  • label_2是每帧的标注信息(.txt);
  • velodyne是Velodyne64所得的点云文件(.bin)

2.1 ImageSets

数据集列表信息,一般包括如下3部分:

  • train.txt:训练集 列表信息
  • test.txt:测试集 列表信息
  • val.txt:验证集 列表信息

2.2 Testing & Training

2.2.1 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~P3 P r e c t ( i ) P_{rect}^{(i)} Prect(i)矫正后的相机投影矩阵 R 3 ∗ 4 R^{3*4} R34
    0、1、2、3 代表相机的编号,0表示左边灰度相机,1右边灰度相机,2左边彩色相机,3右边彩色相机。
    kitti数据集可视化,# 3d目标检测,计算机视觉,深度学习,人工智能
    其中 b x ( i ) b_x^{(i)} bx(i)表示相对于参考摄像机0的基准值(以米为单位)

  • R0_rect R r e c t ( i ) R_{rect}^{(i)} Rrect(i)矫正后的相机旋转矩阵 R 3 ∗ 3 R^{3*3} R33
    在实际计算时,需要将该3x3的矩阵扩展为4x4的矩阵,方法为在第四行和第四列添加全为0的向量,并且将(4, 4)的索引值设为1。

  • Tr_velo_to_cam ( T v e l o c a m ) (T_{velo}^{cam}) (Tvelocam) :从雷达到相机0的旋转平移矩阵 ( R 3 ∗ 4 R^{3*4} R34)
    在实际计算时,需要将该3x4的矩阵扩展为4x4的矩阵,方法为增加第四行向量[0,0,0,1]。这个矩阵其实包括了两个部分,其一是3x3的旋转矩阵,其二是1x3的平移向量。
    kitti数据集可视化,# 3d目标检测,计算机视觉,深度学习,人工智能

  • Tr_imu_to_velo ( T i m u v e l o ) (T_{imu}^{velo}) (Timuvelo) : 从惯导或GPS装置到相机的旋转平移矩阵 R 3 ∗ 4 R^{3*4} R34
    如果要将激光雷达坐标系中的点x投影到左侧的彩色图像(P2)y中,可使用如下公式:
    kitti数据集可视化,# 3d目标检测,计算机视觉,深度学习,人工智能
    若想将激光雷达坐标系中的点x投射到其他摄像头,只需替换P2矩阵即可(例如右边的彩色相机P3)。

1、将 Velodyne 坐标中的点 x 投影到左侧的彩色图像中 y,使用公式 y = P2 * R0_rect * Tr_velo_to_cam * x
2、将 Velodyne 坐标中的点 x 投影到右侧的彩色图像中 y,使用公式 y = P3 * R0_rect * Tr_velo_to_cam * x
3、将 Velodyne 坐标中的点 x 投影到编号为 0 的相机(参考相机)坐标系中,使用公式 R0_rect * Tr_velo_to_cam * x
4、将 Velodyne 坐标中的点 x 投影到编号为 0 的相机(参考相机)坐标系中,再投影到编号为 2 的相机(左彩色相机)的照片上,使用公式 P2 * R0_rect * Tr_velo_to_cam * x

2.2.2 image_2

image文件以8位PNG格式存储,图集如下:
kitti数据集可视化,# 3d目标检测,计算机视觉,深度学习,人工智能

2.2.3 label_2

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轴的夹角(如下图所示,y轴垂直与屏幕)

  • 第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轴的夹角),如下图所示。

  • 第16列(浮点数):检测的置信度(score)
    kitti数据集可视化,# 3d目标检测,计算机视觉,深度学习,人工智能

2.2.4 planes

# Plane
Width 4
Height 1
-1.851372e-02 -9.998285e-01 -5.362310e-04 1.678761e+00

2.2.5 velodyne

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

8D 97 92 41 39 B4 48 3D 58 39 54 3F 00 00 00 00 
83 C0 92 41 87 16 D9 3D 58 39 54 3F 00 00 00 00 
2D 32 4D 42 AE 47 01 3F FE D4 F8 3F 00 00 00 00 
37 89 92 41 D3 4D 62 3E 58 39 54 3F 00 00 00 00 
E5 D0 92 41 12 83 80 3E E1 7A 54 3F EC 51 B8 3D 
7B 14 70 41 2B 87 96 3E 50 8D 37 3F CD CC 4C 3E 
96 43 6F 41 7B 14 AE 3E 3D 0A 37 3F E1 7A 14 3F 
2F DD 72 41 5E BA C9 3E 87 16 39 3F 00 00 00 00 
FA 7E 92 41 5E BA 09 3F 58 39 54 3F 00 00 00 00 
66 66 92 41 EC 51 18 3F CF F7 53 3F 00 00 00 00 
A4 70 92 41 77 BE 1F 3F CF F7 53 3F 00 00 00 00 
A4 70 92 41 8D 97 2E 3F 58 39 54 3F 00 00 00 00 
...

点云数据以浮点二进制文件格式存储,每行包含8个数据,每个数据由四位十六进制数表示(浮点数),每个数据通过空格隔开。一个点云数据由四个浮点数数据构成,分别表示点云的x、y、z、r(强度 or 反射值),点云的存储方式如下表所示:
kitti数据集可视化,# 3d目标检测,计算机视觉,深度学习,人工智能

三、数据集的下载和组织

  • 百度网盘下载链接
    链接:https://pan.baidu.com/s/1-4WchJlcZ2guwcfbHqrdFw
    提取码:grys

从百度网盘下载如下框出的文件。
kitti数据集可视化,# 3d目标检测,计算机视觉,深度学习,人工智能

其中 xxx.zipxxx.z01xxx.z02xxx.z03 是分包文件,必须全部下载后才能够解压。

然后通过xftp把下载的压缩包全部上传到云服务器上。
分包文件的解压方法,以 data_object_image_2.zip 为例子。

# 先将压缩包合并
zip -s 0 data_object_image_2.zip --out image_02.zip
# 再次解压
unzip image_02.zip

解压之后的文件结构如下所示。
kitti数据集可视化,# 3d目标检测,计算机视觉,深度学习,人工智能
如下所示,在kitti文件夹下新建testingtraining 目录。然后把上一步解压后得到的data_object_image2/testing/image_2 文件放入到data/kitti/testing 文件夹下;把上一步解压后得到的data_object_image2/training/image_2 文件放入到data/kitti/training 文件夹下。

然后新建一个文件夹ImageSets,并进入到该文件夹下。
下载官方已经提供好的划分kitti数据集文件:test.txt train.txt val.txt trainval.txt

# test.txt
wget -c https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/test.txt --no-check-certificate --content-disposition -O test.txt
# train.txt
wget -c https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/train.txt --no-check-certificate --content-disposition -O train.txt
# val.txt
wget -c https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/val.txt --no-check-certificate --content-disposition -O val.txt
# trainval.txt
wget -c https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/trainval.txt --no-check-certificate --content-disposition -O trainval.txt

kitti数据集可视化,# 3d目标检测,计算机视觉,深度学习,人工智能

最终的组织架构如下图所示:
kitti数据集可视化,# 3d目标检测,计算机视觉,深度学习,人工智能

有时候我们可能多个项目都使用到同一个数据集,这时候可以建立软链接

比如我的原始kitti数据集下载到了/data/zyw/project/data/kitti , 但是我在mmdetection3d/data 文件夹下需要kitti文件夹。
为了节省内存开销,我们不直接复制,而是创建软链接。

cd mmdetection3d/data
ln –s  /data/zyw/project/data/kitti  kitti

四、可视化

4.1 CloudCompare软件

CloudCompare功能强大,直接安装这个软件是最简单的可视化方法。

  • cloudcompare官网下载地址
    选择对应的版本进行下载
    kitti数据集可视化,# 3d目标检测,计算机视觉,深度学习,人工智能

  • 或者从百度网盘下载 (winows64,CloudCompare 2.12.4)
    链接:https://pan.baidu.com/s/1RWDdMByK1trY–d05-SlHg

  • 显示-语言翻译-简体中文
    kitti数据集可视化,# 3d目标检测,计算机视觉,深度学习,人工智能

提取码:zfjo

  • 点击文件-compare
    kitti数据集可视化,# 3d目标检测,计算机视觉,深度学习,人工智能
    可以打开多种格式的点云文件
    kitti数据集可视化,# 3d目标检测,计算机视觉,深度学习,人工智能
    可视化效果如下
    kitti数据集可视化,# 3d目标检测,计算机视觉,深度学习,人工智能

4.2 PCL库

通过配置PCL来可视化点云,相对比较复杂,具体可以参考下面的博客~
【PCL1.11.0+win10+vs2019】环境配置/ 点云格式转换及可视化

参考

参考博客:
【1】https://blog.csdn.net/i6101206007/article/details/11225682
【2】https://blog.csdn.net/u013086672/article/details/103913361文章来源地址https://www.toymoban.com/news/detail-788794.html

到了这里,关于KITTI数据集解析和可视化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 3D目标检测数据集 KITTI(标签格式解析、点云转图像、点云转BEV)

    本文介绍在3D目标检测中,理解和使用KITTI 数据集,包括KITTI 的基本情况、下载数据集、标签格式解析、3D框可视化、点云转图像、画BEV鸟瞰图等,并配有实现代码。 目录  1、KITTI数据集3D框可视化 2、KITTI 3D数据集 3、下载数据集 4、标签格式 5、标定参数解析 6、点云数据--投

    2024年02月09日
    浏览(43)
  • 【3D目标检测】KITTI数据集介绍

    KITTI数据集很大,包括了很多任务,使用的训练样本7481个,测试样本7518个。但测试样本我们是不可见的,所以一般将将7481个训练样本划分为3712与3769分别作为训练集和测试集。 下载部分参考:OpenPCDet——环境配置和训练测试(升级系统、Nvidia驱动、cuda11.3、cudnn8.2) 具体解释

    2023年04月15日
    浏览(52)
  • KITTI 3D目标检测数据集入门

    数据集官网下载地址: The KITTI Vision Benchmark Suite 3D目标检测数据集由7481个训练图像和7518个测试图像以及相应的点云数据组成,包括总共80256个标记对象。 上图红色框标记的为我们需要的数据,分别是 彩色图像数据(12GB) 、 点云数据(29GB) 、 相机矫正数据(16MB) 、 标签

    2023年04月08日
    浏览(53)
  • (一)KITTI数据集用于3D目标检测

    KITTI 是德国卡尔斯鲁厄科技学院和丰田芝加哥研究院开源的数据集,最早发布于 2012 年 03 月 20 号。 对应的论文Are we ready for Autonomous Driving? The KITTI Vision Benchmark Suite发表在 CVPR2012 上。 KITTI 数据集搜集自德国 卡尔斯鲁厄 市,包括市区/郊区/高速公路等交通场景。采集于 2011 年

    2024年02月10日
    浏览(48)
  • kitti数据集解析以及在mmdection3d中的pkl文件参数解析

    kitti数据集存在4个相机,其中0和1为灰度相机,2和3为彩色相机,各设备之间的安装示意图如下所示: 如图所示: 相机坐标系:x轴向右,y轴向下,z轴向前 雷达坐标系:x轴向前,y轴向左,z轴向上 GPS/IMU坐标系:x轴向前,y轴向左,z轴向上(与车base_link坐标系相同) 从上图可

    2023年04月23日
    浏览(33)
  • KITTI数据集内参文件解析

     方便展示,做了换行 其中P0~P3是对应的相机投影矩阵,也就是相机的内参 正常情况下相机内参为3X3的矩阵, 在这里为3X4的原因是要把不同位置的相机平面统一到P0相机下 所以额外加了一列的偏移量,P0相机对应位置则为全0 相机内参公式如下: 其中和为像素焦距,单位为像

    2024年02月07日
    浏览(42)
  • 基于Kitti数据集的智能驾驶目标检测系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于Kitti数据集的智能驾驶目标检测系统可用于日常生活中检测与定位行人(Pedestrian)、面包车(Van)、坐着的人(Person Sitting)、汽车(Car)、卡车(Truck)、骑自行车的人(Cyclist)、有轨电车(Tram)以及其他目标(Misc),利用深度学习算法可实现图片、视频、摄像

    2024年02月16日
    浏览(44)
  • Open3D——批量将KITTI数据集的.bin文件转换成.pcd点云格式

    Open3D——批量将KITTI数据集的.bin文件转换成.pcd点云格式 随着自动驾驶、智能制造等应用的逐渐推广,在处理三维点云数据方面的需求越来越大。而KITTI数据集是一个包含激光雷达、相机、GPS等多种传感器数据的三维视觉数据集,广泛用于计算机视觉领域的研究。 然而KITTI数据

    2024年01月16日
    浏览(42)
  • 【目标跟踪】MOT数据集GroundTruth可视化

    MOT15数据集下载:https://pan.baidu.com/s/1foGrBXvsanW8BI4eybqfWg?pwd=8888 以下为一行gt示例: 1,1,1367,393,73,225,1,-1,-1,-1 各列数据对应含义如下 frame:图片帧id id:目标id bb_left:bbox左上角坐标x bb_top:bbox左上角坐标y bb_width:bbox的宽度 bb_height:bbox的高度 conf:置信度 x:三维坐标系x值,对于

    2024年02月09日
    浏览(40)
  • 【数据可视化】2D/3D动画

    ◼ CSS3 transform属性允许你旋转,缩放,倾斜或平移给定元素。 ◼ Transform是形变的意思(通常也叫变换),transformer就是变形金刚 ◼ 常见的函数transform function有: ---- 平移:translate(x, y) ---- 缩放:scale(x, y) ---- 旋转:rotate(deg) ---- 倾斜:skew(deg, deg) ◼ 通过上面的几个函数,我们

    2024年02月08日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包