1. KITTI官网
  2. Vision meets Robotics: The KITTI Dataset

1. KITTI数据集概述

1.1 传感器配置

  由于彩色相机成像过程中的拜耳阵列(Bayer Pattern)插值处理过程,彩色图像分辨率较低,而且对于光照敏感性不高,所以采集车配备了两组双目相机,一组灰度的,一组彩色的。个人猜测为了增加相机的水平视场角,每个相机镜头前又各安装了一个光学镜头。

传感器类型 详细信息
灰度相机 2台140像素的PointGray Flea2灰度相机, FL2-14S3M-C
彩色相机 2台140万像素PointGray Flea2彩色相机, FL2-14S3C-C
光学镜头 4个Edmund光学镜头,焦距4mm,90°水平孔径,35°垂直孔径角
激光雷达 1台Velodyne HDL-64E激光,扫描频率10Hz,64线,0.09°角度分辨率,2cm探测精度,每秒130万点数,探测距离120m
GPS/IMU惯导系统 1个OXTS TR3003惯导,6轴,采集频率100Hz,L1/L2信号波段,0.02m和0.1°的精度

  传感器车身排布如下图所示。

1.2 数据采集

  KITTI整个数据集是在德国卡尔斯鲁厄采集的,采集时长6小时。KITTI官网放出的数据大约占采集全部的25%,去除了测试集中相关的数据片段,按场景可以分为“道路”、“城市”、“住宅区”、“校园”和“行人”5类。
  采集车形式路径如下图所示,用红蓝黑区分GPS信号的质量,红色是精度最高的,有RTK矫正;蓝色无矫正信号;黑色缺失GPS信号,该部分数据已从数据集中剔除。

  1. 图像:采用8bit PNG格式保存。裁剪掉了原始图像的引擎盖和天空部分,并且根据相机参数进行了畸变矫正,最终图片为50万像素左右。
  2. 激光:逆时针旋转,采用浮点数二进制文件保存。保存了激光点(x,y,z)(x,y,z)(x,y,z)坐标和反射率rrr信息,每一帧平均12万个激光点。
  3. 图像和激光同步:相机曝光时机是由激光控制的,当激光扫描到正前方(即相机朝向角度)时,会触发相机快门,KITTI会记录激光3个时间戳,旋转起始和结束的时刻,以及触发相机曝光的时刻。

1.3 数据标注

  对于相机视野内的每个动态目标,KITTI都提供了基于激光坐标系的3D标注信息,定义了小车、面包车、 卡车、行人、坐着的人、自行车、有轨电车7种目标类型,其他比如拖车、代步车的小众类型目标统一归为“Misc”类别。3D标注信息包括目标尺寸、世界坐标以及偏航角(翻滚角和俯仰角默认等于0)。

1.4 传感器标定

  为了尽可能降低时间来带的系统偏差,KITTI每天采集完数据后,都会对所有传感器重新进行一次标定。

传感器同步
  使用激光雷达的时间戳作为基准类同步其他传感器。对于相机,通过激光雷达触发相机快门的方式来最小化动态目标带来的偏差。GPS/IMU无法进行同步,但是由于采集频率较高,最大的时间误差也只有5ms。所有传感器的时间戳使用系统时钟记录。

相机标定
  4个相机光心均对齐到同一平面上。由于成像存在枕形畸变,畸变矫正图像均从1392×5121392\times5121392×512裁剪到1224×3701224\times3701224×370像素大小。

激光标定
  首先根据左侧灰度相机的位置安装激光雷达,然后基于选择50个手工选点的标定误差进行最优化,并根据KITTI立体视觉榜单Top3方法的性能变化来保证标定的鲁棒性。


2. 3D目标检测数据集概述

2.1 数据下载

  3D目标检测数据集包含7481张训练图片,7518张测试图片,以及相应的点云数据,共包含80256个标注目标。对应的官方下载路径如下(建议复制链接用迅雷下载):

  1. Download left color images of object data set (12 GB)
  2. Download the 3 temporally preceding frames (left color) (36 GB) (非必需)
  3. Download Velodyne point clouds, if you want to use laser information (29 GB)
  4. Download camera calibration matrices of object data set (16 MB)
  5. Download training labels of object data set (5 MB)
  6. Download object development kit (1 MB) (including 3D object detection and bird’s eye view evaluation code)

图片、激光点云、标注真值、标定参数通过图片序号一一对应。

2.2 数据解析

2.2.1 3D框标注

字段 字段长度 单位 含义
Type 1 - 目标类型
Truncated 1 - 目标截断程度:0~1之间的浮点数
表示目标距离图像边界的程度
Occluded 1 - 目标遮挡程度:0~3之间的整数
0:完全可见 1:部分遮挡 2:大部分遮挡 3:未知
Alpha 1 弧度 目标观测角:[−pi,pi][-pi, pi][−pi,pi]
Bbox 4 像素 目标2D检测框位置:左上顶点和右下顶点的像素坐标
Dimensions 3 3D目标尺寸:高、宽、长
Location 3 目标3D框底面中心坐标:(x,y,z)(x, y,z)(x,y,z),相机坐标系,
Rotation_y 1 弧度 目标朝向角:[−pi,pi][-pi, pi][−pi,pi]

  3D框标注信息格式如下,这里说明一下Alpha和Rotaion_y的区别和联系:

  • Rotation_y是目标的朝向角,即车头方向和相机xxx轴正方向的夹角(顺时针方向为正),描述的是目标在现实世界中的朝向,不随目标位置的变化而变化,如图∠BOC\angle BOC∠BOC所示。
  • Alpha是目标观测角,描述的是目标相对于相机视角的朝向,随目标方位角theta变化而变化,如图∠BOD\angle BOD∠BOD所示。
  • Rotation_y和Alpha之间可以相互转换。因为∠AOC=90°−theta\angle AOC=90°-theta∠AOC=90°−theta,所以有∠AOB=∠AOC−∠BOC=90°−theta−rotaion_y\angle AOB=\angle AOC-\angle BOC=90°-theta-rotaion\_y∠AOB=∠AOC−∠BOC=90°−theta−rotaion_y又因为∠AOB+∠BOD=90°\angle AOB+ \angle BOD=90°∠AOB+∠BOD=90°可得alpha=∠BOD=90°−∠AOB=theta+rotation_yalpha=\angle BOD=90°-\angle AOB=theta + rotation\_yalpha=∠BOD=90°−∠AOB=theta+rotation_y考虑到rotation_y和alpha都是逆时针方向为负,所以有−alpha=theta−rotation_y-alpha=theta-rotation\_y−alpha=theta−rotation_y即alpha=rotation_y−thetaalpha=rotation\_y-thetaalpha=rotation_y−theta有兴趣的同学也可以自己用KITTI标签数据验证一下,会发现总是会有零点几度的偏差,估计是KITTI保存有效位数造成的数据损失。

2.2.2 激光点云

  激光点云数据采用二进制存储,逐点保存,每个激光点对应4个float数据(x,y,z,r)(x,y,z,r)(x,y,z,r),依次解析即可,python解析代码如下:

import numpy as np
import structdef read_lidar_info(file_path):size = os.path.getsize(file_path)point_num = int(size / 16)assert point_num * 16 == sizelidar_pt_list = np.zeros((point_num, 4), np.float)with open(file_path, 'rb') as f:for i in range(point_num * 4):data = f.read(4)val = struct.unpack('f', data)row = int(i / 4)col = i % 4lidar_pt_list[row][col] = val[0]lidar_pt_list = lidar_pt_list.transpose()return lidar_pt_list

2.2.3 标定数据

  为了尽可能减少标定的系统误差,KITTI每天都会重新对传感器进行一次标定,因此每张图片都有一个对应的txt标定参数文件,如下图所示。

参数名称 含义
P0~P3 3×43 \times 43×4的相机投影矩阵,0~3分别对应左侧灰度相机、右侧灰度相机、左侧彩色相机、右侧彩色相机
R0_rect 3×33 \times 33×3的旋转修正矩阵
Tr_velo_to_cam 3×43 \times 43×4的激光坐标系到Cam 0坐标系的变换矩阵
Tr_imu_to_velo 3×43 \times 43×4的IMU坐标系到激光坐标系的变换矩阵

目标3D框到图像的投影

  目标在相机坐标系下的坐标X=(x,y,z,1)TX=(x,y,z,1)^TX=(x,y,z,1)T到图像像素坐标系Y=(u,v,1)TY=(u,v,1)^TY=(u,v,1)T的投影遵循:Y=Prect(i)XY=P^{(i)}_{rect}XY=Prect(i)​X激光点云到图像的投影

  目标在激光坐标系下的坐标X=(x,y,z,1)TX=(x,y,z,1)^TX=(x,y,z,1)T到图像像素坐标系Y=(u,v,1)TY=(u,v,1)^TY=(u,v,1)T的投影遵循:Y=Prect(i)Rrect(0)TvelocamXY=P^{(i)}_{rect}R^{(0)}_{rect}T^{cam}_{velo}XY=Prect(i)​Rrect(0)​Tvelocam​X其中Prect(i)P^{(i)}_{rect}Prect(i)​对应标定参数的P0~P3,因为这里使用的左侧彩色相机,所以用的是P2投影矩阵。另外,Rrect(0)R^{(0)}_{rect}Rrect(0)​和TvelocamT^{cam}_{velo}Tvelocam​在标定文件中是3×33\times 33×3的矩阵,实际使用时需要用0扩充到4×44\times44×4大小,并赋值Rrect(0)(3,3)=1R^{(0)}_{rect}(3, 3)=1Rrect(0)​(3,3)=1,Tvelocam(3,3)=1T^{cam}_{velo}(3,3)=1Tvelocam​(3,3)=1。
  最终效果如下:

KITTI 3D目标检测数据集解析(完整版)相关推荐

  1. KITTI 3D目标检测数据集入门

    下载地址与描述 数据集官网下载地址: The KITTI Vision Benchmark Suite 3D目标检测数据集由7481个训练图像和7518个测试图像以及相应的点云数据组成,包括总共802 ...

  2. KITTI 3D目标检测离线评估工具包说明

    KITTI 3D目标检测离线评估工具包说明 本文是KITTI 3D目标检测离线评估工具包的使用说明和相关代码学习文件,从这里可以下载.更新于2018.09.20. 文章目录 KITTI 3D目标检测离 ...

  3. 重磅!谷歌发布3D目标检测数据集及检测方案

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:新智元 AI博士笔记系列推荐 周志华<机器学习> ...

  4. CVPR 2020 | 港中文提出3D目标检测新框架DSGN

    ©PaperWeekly 原创 · 作者|张承灏 学校|中科院自动化所硕士生 研究方向|双目深度估计 本文介绍的是香港中文大学贾佳亚团队在 CVPR 2020 上提出的 3D 目标检测新框架--深度立 ...

  5. 一文尽览 | 基于点云、多模态的3D目标检测算法综述!(Point/Voxel/Point-Voxel)

    点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心技术交流群 后台回复[ECCV2022]获取ECCV2022所有自动驾驶方向论文! 目前 ...

  6. kitti数据集在3D目标检测中的入门

    数据集官网下载地址: http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d 3D目标检测数据集由7481个训练图像 ...

  7. 【单目3D目标检测】MonoDLE论文精读与代码解析

    文章目录 Preface Abstract Contributions Diagnostic Experiments Pipeline Revisiting Center Detection Trai ...

  8. 3D目标检测之数据集

    目录 1. KITTI Dataset 2. Waymo Open Dataset 3. NuScenes DataSet 4. Appllo Scape 5. Lyft L5 6. Argovers ...

  9. Facebook 开源3D目标检测框架VoteNet,曾刷新两大数据集最高精度

    点击我爱计算机视觉标星,更快获取CVML新技术 VoteNet为Facebook何恺明等人于今年4月在论文Deep Hough Voting for 3D Object Detection in Po ...

  10. 何恺明团队最新研究:3D目标检测新框架VoteNet,两大数据集刷新最高精度

    [导读]FAIR何恺明等人团队提出3D目标检测新框架VoteNet,直接处理原始数据,不依赖任何2D检测器.该模型设计简单,模型紧凑,效率高,在两大真实3D扫描数据集上实现了最先进的3D检测精度. 当 ...

最新文章

  1. ThinkPHP5.1接收post、get参数
  2. Google AI 系统 DeepMind无法通过 高中数学
  3. HttpClient 大量连接等待异常的处理
  4. Spark学习之第一个程序打包、提交任务到集群
  5. DW —— 简易计算器 (JavaScript)
  6. 设计模式——解释器模式
  7. urlconnection.connect()和url.openconnection()的区别
  8. 给内联元素设置宽高的几种方式
  9. 快速稀疏角点光流框架(Fast sparse corner optical flow framework)
  10. word2vec理论与实践
  11. AMD GPU任务调度(1)—— 用户态分析
  12. PHP socket以及http、socket、tcp、udp
  13. 【视频学习笔记】计算机视觉与深度学习_北京邮电大学_鲁鹏(⭐⭐⭐⭐⭐)
  14. Win10系统怎么卸载软件
  15. testin云测操作步骤
  16. Applier编译安装
  17. 山东理工大学计算机学院答辩,计算机学院毕业设计规范与流程-山东理工大学-计算机科学与技术学院.doc...
  18. 劳易测BPS 307i SM 100 - 条码定位系统
  19. Fateboard界面进不去
  20. 网站分析数据(即用户行为数据)的三种收集方式详解

热门文章

  1. IBM Watson:好的AI能够在方方面面推动人类文明的发展
  2. PostgreSQL数据库从入门到精通
  3. EasyNVR调16分屏播放ws-flv内存溢出导致浏览器崩溃问题的解决
  4. Linux安装tomcat8
  5. 深圳大学C C++ 数据结构题目答案清单完整题库(含期中模拟 期末模拟 期末真题 考前练习)
  6. 游戏出海成为全球化趋势
  7. [C语言学习]C语言程序设计基础(一)
  8. win7升级自带ie8到ie11版本(在不能联网的状态下)
  9. win7 IE8无法升级IE11
  10. 微信小程序使用wxParse解析html代码