摘要:本文融合了Are we ready for Autonomous Driving? The KITTI Vision Benchmark Suite和Vision meets Robotics: The KITTI Dataset两篇论文的内容,主要介绍KITTI数据集概述,数据采集平台,数据集详细描述,评价准则以及具体使用案例。本文对KITTI数据集提供一个较为详细全面的介绍,重点关注利用KITTI数据集进行各项研究与实验。

转载自:http://blog.csdn.net/solomon1558/article/details/70173223

1.KITTI数据集概述

  KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。该数据集用于评测立体图像(stereo),光流(optical flow),视觉测距(visual odometry),3D物体检测(object detection)和3D跟踪(tracking)等计算机视觉技术在车载环境下的性能。KITTI包含市区、乡村和高速公路等场景采集的真实图像数据,每张图像中最多达15辆车和30个行人,还有各种程度的遮挡与截断。整个数据集由389对立体图像和光流图,39.2 km视觉测距序列以及超过200k 3D标注物体的图像组成[1] ,以10Hz的频率采样及同步。总体上看,原始数据集被分类为’Road’, ’City’, ’Residential’, ’Campus’ 和 ’Person’。对于3D物体检测,label细分为car, van, truck, pedestrian, pedestrian(sitting), cyclist, tram以及misc组成。

2.数据采集平台

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

  • 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◦ 
         
                        图-1 数据采集平台 
      如图-2所示为传感器的配置平面图。为了生成双目立体图像,相同类型的摄像头相距54cm安装。由于彩色摄像机的分辨率和对比度不够好,所以还使用了两个立体灰度摄像机,它和彩色摄像机相距6cm安装。为了方便传感器数据标定,规定坐标系方向如下[2] : 
    • Camera: x = right, y = down, z = forward 
    • Velodyne: x = forward, y = left, z = up 
    • GPS/IMU: x = forward, y = left, z = up 
         
                        图-2 传感器设置

3.Dataset详述

  图-3展示了KITTI数据集的典型样本,分为 ’Road’, ’City’, ’Residential’, ’Campus’ 和’Person’五类。原始数据采集于2011年的5天,共有180GB数据。 

                    图-3 KITTI数据集的样本,展现KITTI数据集的多样性。

3.1 数据组织形式

  论文[2] 中提及的数据组织形式,可能是早期的版本,与目前KITTI数据集官网公布的形式不同,本文稍作介绍。 
如图-4所示,一个视频序列的所有传感器数据都存储于data_drive文件夹下,其中date和drive是占位符,表示采集数据的日期和视频编号。时间戳记录在Timestamps.txt文件。 
     
                    图-4 数据组织形式 
  对于从KITTI数据集官网下载的各个分任务的数据集,其文件组织形式较为简单。以Object detection为例,下图是Object Detection Evaluation 2012标准数据集中left color images文件的目录结构,样本分别存储于testing和training数据集。

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 (sit- ting)’, ’Cyclist’, ’Tram’ 和’Misc’ (e.g., Trailers, Segways)。论文[2] 中说明了3D标注信息存储于date_drive_tracklets.xml,每一个物体的标注都由所属类别和3D尺寸(height,weight和length)组成。当前数据集的标注存于每种任务子数据集的label文件夹中,稍有不同。 
  为了说明KITTI数据集的标注格式,本文以Object detection任务的数据集为例。数据说明在Object development kit的readme.txt文档中。从标注数据的链接 training labels of object data set (5 MB)下载数据,解压文件后进入目录,每张图像对应一个.txt文件。一帧图像与其对应的.txt标注文件如图-5所示。 
    
                    图-5 object detection样本与标注 
  为了理解标注文件各个字段的含义,需要阅读解释标注文件的readme.txt文件。该文件存储于object development kit (1 MB)文件中,readme详细介绍了子数据集的样本容量,label类别数目,文件组织格式,标注格式,评价方式等内容。下面介绍数据格式的label描述: 
     
  注意,’DontCare’ 标签表示该区域没有被标注,比如由于目标物体距离激光雷达太远。为了防止在评估过程中(主要是计算precision),将本来是目标物体但是因为某些原因而没有标注的区域统计为假阳性(false positives),评估脚本会自动忽略’DontCare’ 区域的预测结果。

3.3 Development Kit

  KITTI各个子数据集都提供开发工具 development kit,主要由cpp文件夹,matlab文件夹,mapping文件夹和readme.txt组成。下图以object detection任务的文件夹devkit_object为例,可以看到cpp文件夹主要包含评估模型的源代码evaluate_object.cpp。Mapping文件夹中的文件记录训练集到原始数据集的映射,从而开发者能够同时使用激光雷达点云,gps数据,右边彩色摄像机数据以及灰度摄像机图像等多模态数据。Matlab文件夹中的工具包含读写标签,绘制2D/3D标注框,运行demo等工具。Readme.txt文件非常重要,详述介绍了某个子数据集的数据格式,benchmark介绍,结果评估方法等详细内容。

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任务

  KITTI数据集针对不同的任务采用不同的评价准则。对于立体图像和光流(stereo and optical flow),依据disparity 和end-point error计算得到平均错误像素数目(average number of erroneous pixels)。 
  对于视觉测距和SLAM任务(visual odometry/SLAM),根据轨迹终点(trajectory end-point)的误差进行评估。传统的方法同时考虑平移和旋转的误差,KITTI分开评估[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匹配,此时。为了防止重复检测,如果边框与ground truth多个边框重合度都大于50%,取重合度最大的视为对的匹配。检测算法对真实物体的重复检测,只算其中一次为正确预测,其余的重复预测视为错误检测。 
  对于一个给定类别,N是该类所有图像上的真实物体数目。物体检测任务采用PR曲线和AP值评估模型精度,给定不同阈值t,得到不同的召回率和精确率,从而可以绘制P-R曲线,计算每个检测器的AP值: 
             
  评价精确率AP是P-R曲线的积分值,当t是离散的情况时,AP就是不同t的召回率对应的精确率的平均值。为了简化计算,PASCAL VOC2007采用插值的方法,使用11个等间距recall上的精确值的平均值作为分类器的AP。召回率取值[0,0.1,…,1],计算公式如下: 
             
  每个召回率r上的精确值由大于r所对应精确率的最大值插值来决定: 
             
  对于KITTI目标检测任务,仅仅评估目标高度大于25pixel的预测结果,将易混淆的类别视为同一类以减少假阳性(false positives)率,并且使用41个等间距recall上的精确值的平均值近似计算分类器的AP。 
对于物体方向预测,文献[1] 提出了一种新颖的方法:平均方向相似性,Average Orientation Similarity (AOS)。该指标被定义为: 
             
  其中,r代表物体检测的召回率recall。在因变量r下,方向相似性s∈[0,1]被定义为所有预测样本与ground truth余弦距离的归一化: 
             
  其中D(r)表示在召回率r下所有预测为正样本的集合,∆θ(i) 表示检出物体i的预测角度与ground truth的差。为了惩罚多个检出匹配到同一个ground truth,如果检出i已经匹配到ground truth(IoU至少50%)设置δi = 1,否则δi = 0。

5. 数据使用实践

  KITTI数据集的标注信息更加丰富,在实际使用中可能只需要一部分字段,或者需要转换成其他数据集的格式。例如可以将KITTI数据集转换成PASCAL VOC格式,从而更方便地使用Faster RCNN或者SSD等先进的检测算法进行训练。转换KITTI数据集需要注意源数据集和目标数据集的格式,类别标签的重新处理等问题,实现细节建议参考Jesse_Mx[4] 和github上manutdzou的开源项目[5] ,这些资料介绍了转换KITTI数据集为PASCAL VOC格式,从而方便训练Faster RCNN或者SSD等模型。

Reference

[1] Andreas Geiger and Philip Lenz and Raquel Urtasun. Are we ready for Autonomous Driving? The KITTI Vision Benchmark Suite. CVPR, 2012 
[2] Andreas Geiger and Philip Lenz and Christoph Stiller and Raquel Urtasun. Vision meets Robotics: The KITTI Dataset. IJRR, 2013 
[3] M. Everingham, L.Van Gool, C. K. I.Williams, J.Winn, and A. Zisserman. The PASCAL Visual Object Classes Challenge 2011 (VOC2011) Results. 
[4] Jesse_Mx.SD: Single Shot MultiBox Detector 训练KITTI数据集(1). 
http://blog.csdn.net/jesse_mx/article/details/65634482 
[5]manutdzou.manutdzou/KITTI_SSD.https://github.com/manutdzou/KITTI_SSD 
附录 
     
                    图-7 不同类别物体在数据集中出现的频率(上图); 
对于两个主要类别(车辆,行人)主要的方向统计直方图(下图) 
    
                    图-8 每张图中不同类别物体出现频率统计。 
    
                    图-9 分别为速度,加速度(排除静止状态)统计直方图;视频序列长度统计直方图;每种场景(e.g., Campus, city)的帧数统计直方图。

有关Slam的数据集:

SLAM benchmarking. http://kaspar.informatik.uni-freiburg.de/~slamEvaluation/datasets.php
KITTI SLAM dataset. http://www.cvlibs.net/datasets/kitti/eval_odometry.php. 包括 单目视觉 ,双目视觉, velodyne, POS 轨迹
OpenSLAM .https://www.openslam.org/links.html
CMU Visual Localization Data Set: Dataset collected using the Navlab 11 equipped with IMU, GPS, Lidars and cameras.
NYU RGB-D Dataset: Indoor dataset captured with a Microsoft Kinect that provides semantic labels.
TUM RGB-D Dataset: Indoor dataset captured with Microsoft Kinect and high-accuracy motion capturing.
New College Dataset: 30 GB of data for 6 D.O.F. navigation and mapping (metric or topological) using vision and/or laser.
The Rawseeds Project: Indoor and outdoor datasets with GPS, odometry, stereo, omnicam and laser measurements for visual, laser-based, omnidirectional, sonar and multi-sensor SLAM evaluation.
Victoria Park Sequence: Widely used sequence for evaluating laser-based SLAM. Trees serve as landmarks, detection code is included.
Malaga Dataset 2009 and Malaga Dataset 2013: Dataset with GPS, Cameras and 3D laser information, recorded in the city of Malaga, Spain.
Ford Campus Vision and Lidar Dataset: Dataset collected by a Ford F-250 pickup, equipped with IMU, Velodyne and Ladybug.

数据集:KITTI数据集分析相关推荐

  1. 【KITTI】KITTI数据集简介(三) — 图像数据image_2

    KITTI数据集种共包含了4相机数据,2个灰度相机和2个彩色相机,其中image_2存储了左侧彩色相机采集的RGB图像数据(RGB).其他图像数据本次暂时不介绍,后续算法研究如果用到再进行补充. 相机 ...

  2. kitti数据集_超全的3D视觉数据集汇总

    加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动! 同时提供每月大咖直播分享.真实项目需求对接.干货资讯汇总 ...

  3. KITTI数据集--参数

    一.kitti数据集,label解析 16个数代表的含义: 第1个字符串:代表物体类别 'Car', 'Van', 'Truck','Pedestrian', 'Person_sitting', 'C ...

  4. 使用PCL库将KITTI数据集可视化

    PCL点云可视化 KITTI数据集浅析 KITTI数据集简介 KITTI基本结构 Calib Velodyne 标签数据解析 点云数据可视化 创建点云对象 创建视窗对象 添加点云到视窗 相机参数的设置 ...

  5. 计算机视觉数据集介绍:KITTI数据集

    KITTI数据集简介 KITTI数据集是由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,利用组装的设备齐全的采集车辆对实际交通场景进行数据采集获得的公开数据集.该数据集包含丰富多样的传感器数据( ...

  6. 【ORB_SLAM3运行KITTI数据集报错的解决办法】

    ORB_SLAM3无法运行KITTI数据集解决办法 文章目录 问题分析 解决办法 文章目录 在使用KITTI数据集运行orb_slam3的单目和双目的例子时,出现运行不了直接中断程序的情况,这里提供了 ...

  7. KITTI数据集上MaskRCNN检测效果示例

    KITTI数据集上MaskRCNN检测效果示例 在Semantic Instance Segmentation Evaluation中,MaskRCNN性能效果排名第一. Test Image 0 I ...

  8. jetson nano 用 tensorrt 运行 nanodet(kitti数据集)

    题目是目标,我们先一步一步来做,第一步是训练神经网络, 我用的是 kitti 数据集,训练顺序为,第一步,拿到kitti数据集,第二步,把kitti数据集修改为voc数据集格式,第三步,修改配置文件进 ...

  9. 行代码实现数据集可视化、分析与比较

    GitHub上一位博主告诉你:不用学,用sweetviz就行. 这是一个基于Python编写的数据分析软件,只要掌握3种函数用法,一行Python代码就能实现数据集可视化.分析与比较. 我们以Tita ...

最新文章

  1. OSPF末节和完全末节实验
  2. Citrix XenServer 关键配置文件
  3. tomcat 和apache的整合的方法及配置(一)
  4. mysql存储过程遍历新增_MySQL存储过程:内部调用存储过程、存储过程实现遍历数据库建表以及修改字段...
  5. 一张图告诉你BCH路线分歧的现状
  6. 用 70 行代码给你自己写一个 strace
  7. linux 杀掉php,Linux_在Linux系统中使用xkill命令杀掉未响应的进程,我们如何在Linux中杀掉一个资 - phpStudy...
  8. 简单却实用的的例子:Jquery获取 radio 选中后的文字
  9. Oracle之例外(异常)
  10. bzoj4033: [HAOI2015]树上染色(树形dp)
  11. tomcat本地部署war包的方式
  12. iperf详细使用方法
  13. 【Android】 NDK开发中JNI配置及调用GPIO
  14. springboot上传图片
  15. 威廉玛丽学院计算机专业好吗,威廉玛丽学院计算机
  16. 微信10亿日活场景下,后台系统微服务架构实践
  17. html中怎么写css代码,html style样式标签元素教程
  18. [51nod1326]遥远的旅途
  19. 谷歌联盟无法收到pin码的解决方案
  20. 电脑翻译软件-大家都觉得好用的免费电脑翻译软件

热门文章

  1. 水培营养素行业调研报告 - 市场现状分析与发展前景预测
  2. 批量图片重命名(excel、代码实现)
  3. PyScripter显示行号
  4. sicp3.5.2、3.5.3节部分习题尝试解答
  5. Android版本更新
  6. 【干货】Android实现支付宝当面付
  7. 微信小程序生成带参数的二维码
  8. 云e办学习笔记(十六)Redis集成菜单
  9. Unity3D - 使用天空盒子(Using Skyboxes)
  10. 蓝牙耳机连接苹果手机成功,但是手机音乐依然外放。