Kitti数据集
本文为笔者自我学习的笔记,本人刚入门3D视觉,若有错误的地方恳请各位指正。另外参考了一篇热门博客:https://blog.csdn.net/Solomon1558/article/details/70173223。并使用了其中的一幅图像,侵删。
1. 简单介绍
Kitti数据集致力于提供一个更贴合户外驾驶场景的计算机视觉数据集。Kitti提供了一些自动驾驶场景下具有挑战性的测试基准:立体场景(stereo)、光学流动(optical flow)、视觉测距(visual odometry)、同时定位和地图构建(SLAM)、3D物体检测等。
Kitti包含中等城市市区、城郊和高速公路的环境采样。有389对立体场景和光流图(分辨率为1240*376,经过50%的基础事实校正)、39.2 km视觉测距序列以及超过200k 3D标注物体的图像(人工标注,比如汽车、货车、行人等)组成。
2. 具体的挑战和解决方案
具体遇到的挑战有:
-
实时采集大量的数据;
-
不同速率工作的传感器的校准;
-
最小化产生基础事实(ground truth)需要的监督数量;
-
为每个基准选取合适的序列和框架、每个任务的开发指标。
解决方案如下:
-
传感器的装配:两个彩色和两个灰度摄像机,一个激光扫描器,一个GPS定位单元。相同种类的摄像机之间距离为54cm,不同种之间距离为6cm。彩色便于物体检测和场景分割,灰度提供的对比度信息便于立体匹配和光流估计
-
传感器的标定:摄像机之间的、激光器和摄像机之间的、激光器和GPS之间的标定。标定过程此处省略。
-
基础事实的获取:用ICP算法配准一连串连续的帧。再把点云投射到图像上,自动消除落在图像外的点,再手动消除如窗等模糊的区域,便可以得到视差图,得到较高的立体场景基础事实密度。把点云投射到下一帧便可以得到光流场。视觉测距的基本事实可以在左边的摄像机校正后把GPS输出投射到坐标系系统中得到。3D物体检测的基础事实由人工标记得出,团队创建了可以展示3D激光点云和摄像机图像的标记工具,同时标记人员也会把包围框标记为可见、半遮挡、全遮挡(occluded)和被截的(truncated)。
-
基准(benchmark)选取:立体场景和光流基准——选取环境为静态的序列子集,用k-means算法取靠近每个分类中心点的元素去除比较暗的一些场景后作为基准。视觉测距基准——选取有高质量定位、速度变换的长序列。3D物体检测和方向估计基准——利用贪心算法,根据非遮挡物体数量和物体方向分布的熵来选定。
-
评估标准:立体场景和光流——设置合适的阈值后使用视差图(disparity)和端点误差(end-point error)的像素错误数量(非遮挡的和有对应基础事实的像素)的均值作为评估标准。视觉测距/SLAM——发展了前人的方法,首先分别处理旋转和平移变换,其次把误差当做轨迹的长度和速率的函数来评估。3D物体检测和方向估计基准分为三个部分——先用计算平均精准度(AP)的方法评估2D物体的探测情况,再用AOS指标评估物体探测和方向预测的综合表现,最后评估在3D物体方向检测任务中的分类和回归表现。
3. 数据集内容简述
3.1 整体结构
由此数据集的另一篇论文:Vision Meets Robotics 1和网上的一些笔记可以得到此数据集内容的一些特征。典型样本可以分为’Road’, ’City’, ’Residential’, ’Campus’ 和’Person’五类。原始数据采集于2011年的5天,数据大小为180G。首先是这个数据集的文件目录。
其中date和drive不是固定的名称而是占位符,表示采集数据的日期和视频编号。时间戳记录在Timestamps.txt文件中。同时后期处理的数据——校正和同步的视频流也会提供在网站上 2 。3D边框标注的信息存储在data_drive_tracklets.xml文件中。
也可以从官网上下载各个分任务的数据集,比如物体检测(Object detection),其中有训练和检测的数据集
3.2 标注(Annotations)的特征
由上文可以知道,kitti数据集人工为摄像的物体进行了3D边框标注。标注一共有8个类别——’Car’, ’Van’, ’Truck’, ’Pedestrian’, ’Person(sitting)’, ’Cyclist’, ’Tram’ 和’Misc’ (e.g., trailers, segways)。每一个物体的标注都由所属类别和3D尺寸(height,weight和length)组成。当前数据集的标注存于每种任务子数据集的label文件夹中,稍有不同。
每帧图像对应一个txt文件这个txt文件就是这帧图像的标注文件。标注文件中第一列是种类,之后全为数字。标注中各个字段的含义可以在Readme.txt文件中找到。下面是博客中的找到的标注文件描述。其中’DontCare’的预测结果会被评估脚本自动忽略。