KITTI数据集
1.KITTI数据集概述
KITTI数据集由德国卡尔斯鲁厄理工学院与丰田美国技术研究院共同发起创建,现已成为全球范围内规模最大的自动驾驶领域计算机视觉算法评估基准数据集。该数据集主要用于评估立体视觉(stereo)、光流(optical flow)、视觉定位(visual odometry)、三维物体识别(object detection)以及三维追踪(tracking)等自动驾驶相关技术在实际车载环境中的应用效果。KITTI涵盖了城市街道、乡村道路以及高速公路等多种真实场景下的图像数据,每张图像中最多可包含约15辆车辆和30名行人,并伴随不同程度的遮挡与截断现象。该集合总共包含389对立体图像与光流图,提供约39.2公里的视觉定位序列,同时还拥有超过20万张具有三维标注的图像[1] 。所有数据均以每秒10帧的速度进行同步采集并保存。从内容分类来看,原始数据集可划分为'Road'(道路),'City'(城市),'Residential'(住宅区),'Campus'(校园)及'Person'(人物类别五大类。其中,针对三维物体识别任务,具体分类包括汽车(car)、面包车(van)、卡车(truck)、行人(person pedestrian)、坐着的人行者(person(sitting))以及自行车(cyclist),此外还包括其他类别(miscellaneous).
2.数据采集平台
如图1所示,在KITTI数据集的数据采集平台上安装了两组灰度摄像头、两套彩色摄像头、一台Velodyne 64-line三维激光雷达、四个光学镜头以及一台GPS定位系统;具体传感器参数如下[2]:
- 使用Point Gray黑白Flea-SP系列摄像头(型号为FL-55-BT),每台均为单色成像设备
- 每台均配备有索尼ICX-CCD图像传感器(型号为ICX-CCD),尺寸为½英寸
- 具备全局快门功能以确保长时间曝光效果
- 配备Edmund Optics镜头组(型号为ED-Mount),共四组镜头
- 镜头焦距设定为4毫米,并具备广角视角(约90度),可调节区域内的垂直视角(ROI)至约35度
- 配备 velodyne HDL-64E旋转三维激光扫描仪(LiDAR),扫描速率高达每秒约一百三十万个点
- 具备六轴Inertial Measurement Unit(IMU)与GPS组合导航系统,在频率上达到每秒一百赫兹水平
- 系统支持RTK-Lite模式定位精度可达厘米级,并具备高精度的方位角测量功能

数据采集平台界面
如图2所示展示了传感器的配置平面视图。为了构建双目立体视觉系统,在实验环境中布置了一对双目相机阵列。其中主相机采用普通彩色摄像机(仅适合明亮环境),而为了提高空间精度则配备了两台双目立体灰度相机作为辅助设备;这两台灰度相机与主相机的距离设定为6厘米以确保良好的三维重建效果。
根据实验要求并结合文献[2]中的方法学建议:
• 主相机:x轴朝向右方、y轴向下、z轴向前
• 灰度激光雷达(Velodyne):x轴向前、y轴向左、z轴向上
• GPS/IMU系统:x轴向前、y轴向左、z轴向上

图-2 传感器设置
3.Dataset详述
图-3呈现了KITTI数据集的典型样本,并将其划分为五个类别:道路区、城市区、住宅区、校园区和人群区。原始数据在2011年采集了5天的时间,并共包含180GB的数据。

图-3 KITTI数据集的样本,展现KITTI数据集的多样性。
3.1 数据组织形式
在论文[2]中提到的数据组织形式可能源于较早版本,并与KITTI数据集官网公布的格式有所不同,在本文中进行简要说明。

图-4 数据组织形式
data_object_image_2
|── testing
│ └── image_2
└── training
└── image_2
下图是training数据集的label文件夹目录结构。
training/
└── label_2
3.2 Annotations
KITTI数据集基于激光雷达坐标系实现了运动物体在摄像头视角下的3D边界框标注。该数据集包含8个类别标记:Car、Van、Truck、Pedestrian、Person(sitting)、Cyclist、Tram以及Misc(包括Trailers和Segways等)。论文[2]详细说明了3D标注信息存储在date_drive_tracklets.xml文件中,并指出每个物体的标注由所属类别及其三维尺寸(高度height、宽度width和长度length)构成。这些标签按任务子数据集分别存储于label文件夹中存在细微差异。为了阐述KITTI数据集的标注格式,在Object detection任务的数据集中进行说明。这些说明可在Object detection kit的readme.txt文档中找到。通过下载训练标签大小为5MB的数据包即可获取所有图像及其对应的.txt注释文件,在解压后即可访问这些资源。每张图像与其对应的注释.txt文件如图-5所示展示关系

图-5 object检测样本与注释

请注意,在此标记中使用了'DontCare'来表示无法标记的区域。例如,在这种情况下
3.3 Development Kit
KITTI各个子数据集都提供了一个开发工具包 development kit,默认情况下由cpp目录、matlab目录、mapping目录以及readme.txt文件构成。下图展示了object detection任务下的devkit_object目录结构,在该目录中我们可以看到C++目录主要用于存储评估模型的源代码evaluate_object.cpp等关键组件。mapping目录下的所有文件都负责存储从训练集到原始数据集的映射关系,并通过这些资源使开发者能够同时使用激光雷达点云、GPS数据、右侧面板彩色摄像机以及灰度摄像机图像等多种多模态数据进行处理工作。matlab目录下的工具箱则包含了读写标签的功能模块,并提供了绘制2D/3D标注框和运行演示脚本等功能组件。而readme.txt文档同样重要,在其中详述了某个子数据集的数据格式介绍、基准测试方法以及评估指标等详细信息
devkit_object
|── cpp
│ |── evaluate_object.cpp
│ └── mail.h
|── mapping
│ |── train_mapping.txt
│ └── train_rand.txt
|── matlab
│ |── computeBox3D.m
│ |── computeOrientation3D.m
│ |── drawBox2D.m
│ |── drawBox3D.m
│ |── projectToImage.m
│ |── readCalibration.m
│ |── readLabels.m
│ |── run_demo.m
│ |── run_readWriteDemo.m
│ |── run_statistics.m
│ |── visualization.m
│ └── writeLabels.m
4.评价准则Evaluation Metrics
4.1 stereo与visual odometry任务
KITTY数据集根据不同任务采用了不同的评估标准。对于立体图像与光流(stereo and optical flow),基于disparity与end-point error计算得出平均错误像素数目(average number of erroneous pixels)。而对于视觉测距与SLAM任务(visual odometry/SLAM),基于轨迹终点(trajectory end-point)的误差进行评估。传统的做法通常会综合考虑平移与旋转的影响;而KITTY则分别进行评估[1]:

图-6 Stereo和optical flow的预测结果与评估
4.2 3D物体检测和方向预测
目标检测需要同时实现目标定位和目标识别两项任务。其中,通过比较预测边框和ground truth边框的重叠程度(Intersection over Union,IoU)和阈值(e.g. 0.5)的大小判定目标定位的正确性;通过置信度分数和阈值的比较确定目标识别的正确性。以上两步综合判定目标检测是否正确,最终将多类别目标的检测问题转换为“某类物体检测正确、检测错误”的二分类问题,从而可以构造混淆矩阵,使用目标分类的一系列指标评估模型精度。
KITTI数据集采用文献[3] 用到的平均正确率(Average Precision,mAP)评估单类目标检测模型的结果。PASCAL Visual Object Classes Challenge2007 (VOC2007)[3] 数据集使用Precision-Recall曲线进行定性分析,使用average precision(AP)定量分析模型精度。物体检测评估标准对物体漏检和错检进行惩罚,同时规定对同一物体重复且正确的检测只算一次,多余的检测视为错误(假阳性)。
对于每一张样本和某一个给定类型的检测器,算法输出预测结果 ,表示检测出图像中有个物体,每个物体的位置信息和置信度分布是和。
为了评估边界框定位的准确性,使用检测框与ground truth框之间的重合度来度量:

当且仅当检测到的目标边框与同一类别图像上的ground truth标注相匹配时才认为是正确的匹配结果
考虑一个固定的类别

评估AP涉及对P-R曲线进行积分运算。在t为离散数值时,在每个t点上计算对应的召回率与精确度乘积,并累加这些乘积得到结果。为了提高效率和准确性,PASCAL VOC2007采用了插值方法,通过在等间距 recall 值上取平均精确度来近似计算 AP.

每个召回率r上的精确值由大于r所对应精确率的最大值插值来决定:

对于KITTI目标检测任务,在高度超过25像素的目标上实施评估标准,并将容易混淆的类别归为一类以降低假阳性率;同时采用41个等间距recall上的精确值平均值来近似计算分类器的AP值。

在因变量r的情况下,在因变量r的情况下,在因变量r的情况下,在因变量r的情况下,在因变量r的情况下,在因变量r的情况下,在因变量r的情况下,在因变量r的情况下,在因变量r的情况下,在因变量r的情况下,在因变量r的情况下,在因变量r的情况下

其中定义为符号D(r)代表在召回率r水平上所有被预测为正样本的数据集。定义符号∆θ(i)代表检测到的目标i的预测角度与真实标注之间的差异量度。为了减少将多个检测结果与同一真实目标关联的情况(即当目标间交并比IoU达到50%以上时),我们引入了一个惩罚因子δi:若目标i已经被分配给一个真实目标,则δi设值1;否则设值0。
5. 数据使用实践
KITTI数据集的标注信息更为详实,在实际应用中或许只需其中的一部分字段,并非必须将其转译为其他数据集的形式。
Reference
[1] Andreas Geiger, Philip Lenz, 和 Raquel Urtasun. 我们准备好应对自动驾驶了吗? KITTI 视觉基准套件. CVPR, 2012
[2] Andreas Geiger, Philip Lenz, Christoph Stiller, 和 Raquel Urtasun. 视觉与机器人结合: KITTI 数据集. IJRR, 2013
[3] M Everingham, L Van Gool, C.I Williams, J Winn, 和 A Zisserman. Pascal 视觉物体分类挑战 2011 (VOC2011) 结果.
[4] Jesse_Mx.SD: 单次检测多目标框检测器 训练KITTI数据集(1).
[SSD: 单次检测多目标框检测器 训练KITTI数据集(1)_Jesse_Mx的博客-博客]( "SSD: 单次检测多目标框检测器 训练KITTI数据集(1)_Jesse_Mx的博客-博客")
[5]manutdzou.manutdzou/KITTI_SSD.GitHub - manutdzou/KITTI_SSD: SSD检测器针对KITTI
附录

该段描述了两幅图表的内容:第一幅展示了不同类物体在数据集中出现的频率分布(上半部分)。第二幅则聚焦于车辆和行人在两个主要方向上的统计分布情况(下半部分)。

图-8 每张图中不同类别物体出现频率统计。

图-9 分别包含运动速度与加速减速阶段(除静止情况)的速度与加速度分布统计直方图;
另外还包括视频时长分布的统计直方图;
此外,在校园环境与城市区域场景下分别绘制了帧数分布的统计直方图。
