KITTI数据集解读络!
来源 |古月居
知圈 | 进“滑板底盘群”请加微yanzhi-6,备注底盘
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、Geiger A, Lenz P, Stiller C, et al. Vision meets robotics: The kitti dataset[J]. The International Journal of Robotics Research, 2013, 32(11): 1231-1237.
3、Uhrig J, Schneider N, Schneider L, et al. Sparsity invariant cnns[C]//2017 international conference on 3D Vision (3DV). IEEE, 2017: 11-20.
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 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
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◦
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 × 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 × OXTS RT3003 inertial and GPS navigation system, 6 axis, 100 Hz, L1/L2 RTK, resolution: 0.02m / 0.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
3.Dataset详述
图-3展现了KITTI数据集的典型样本,分为 ’Road’, ’City’, ’Residential’, ’Campus’ 和’Person’五类。原始数据摘集于2011年的5天,共有180GB数据。
3.1 数据组织形式
论文[2] 中提及的数据组织形式,可能是早期的版本,与目前KITTI数据集官网公布的形式差别,本文稍做介绍。
如图-4所示,一个视频序列的所有传感器数据都存储于data_drive文件夹下,此中date和drive是占位符,表达摘集数据的日期和视频编号。时间戳笔录在Timestamps.txt文件。
下载地址: 有大神将其放在了本身的办事器便利各人下载, /
3.2 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介绍,成果评估办法等详尽内容。
3.3 GPS/IMU位姿数据
OXTS (GPS/IMU):
关于每一帧,我们将30个差别的GPS /IMU值存储在文本文件中:天文坐标包罗高度,全球定位,速度,加速度,角速度,精度和卫星信息。加速度和角速度都是利用两个坐标系指定的,一个坐标系与车体(x,y,z)相连,另一个坐标系映射到该位置的地表切面(f,l,U)。
我们偶尔会碰着与OXTS设备短时间(约1秒)的通信中断,我们为此线性插进所有值,并将最初3个条目设置为'-1'以指示缺失的信息。dataformat.txt供给了更多细节。转换适用法式在开发东西包中供给。
次要供给以下30个数值:
能够操纵matlab法式中的oxts = loadOxtsliteData('2011_xx_xx_drive_xxxx')来解析GPS/IMU数据,然后操纵pose = convertOxtsToPose(oxts)法式将oxts数据转换为米造单元位姿,用一个4x4的刚体变更矩阵表达。
3.4 传感器标定
那部门内容关于想要操纵KITTI中多个传感器数据停止传感器合成相关算法开发至关重要。
raw data数据集中供给了三个标定文件,别离是:
calib_cam_to_cam.txt——相机到相机之间的标定:
-S_xx:表达图像矫正前的尺寸——宽 高
-S_xx:表达图像矫正前的尺寸——宽 高
-K_xx:表达相机xx图像矫正前的标定矩阵,3x3大小
-K_xx:表达相机xx图像矫正前的标定矩阵,3x3大小
-D_xx:矫正前相机xx的1x5畸变向量
-D_xx:矫正前相机xx的1x5畸变向量
-R_xx:相机xx的3x3扭转矩阵(相机外参)
-R_xx:相机xx的3x3扭转矩阵(相机外参)
-T_xx:相机xx的3x1平移向量(相机外参)
-T_xx:相机xx的3x1平移向量(相机外参)
-S_rect_xx:矫正后相机xx图像尺寸
-S_rect_xx:矫正后相机xx图像尺寸
-R_rect_xx:3x3的矫正扭转矩阵用来使图像平面共面
-R_rect_xx:3x3的矫正扭转矩阵用来使图像平面共面
-P_rect_xx:矫正后3x4的投影矩阵(表达将矫正后相机00下坐标转到相机xx下图像像素的投影矩阵)
-P_rect_xx:矫正后3x4的投影矩阵(表达将矫正后相机00下坐标转到相机xx下图像像素的投影矩阵)
重视: 在利用同步矫正数据集时,我们一般只会用到P_rect_xx矩阵和R_rect_00矩阵。
D_xx阐明:
图像的畸变次要有两种:径向畸变和切向畸变。
径向畸变:正中心位置的畸变最小,跟着半径的增大,畸变增大。径向畸变能够分为枕形畸变和桶形畸变:
径向畸变矫正公式如下(泰勒级数展开式前3项):
切向畸变:在透镜与成像平面不服行时就会产生,类似于透视变更。
切向畸变的矫正公式如下:
calib_velo_to_cam.txt——激光雷到达相机之间的瞄准:
-R:3x3的扭转矩阵
-T:3x1的平移向量
R|T配合构成一个刚体变更矩阵,用来将激光雷达坐标系下的一个点转换到左侧灰度相机(即cam00)坐标系下。在开发激光雷达和相机合成相关算法时会用到。
calib_img_to_velo.txt——GPS/IMU到激光雷达之间的瞄准:
-R:3x3的扭转矩阵
-T:3x1的平移向量
3.5 深度揣测、深度完成模块的数据介绍
激光数据被保留成png格局(uint16)与实在间隔(米)之间的关系:png的像素值除以256,来源:
Download development kit (48 K) 中的 readme.txt()
disp(u,v) = ((float)I(u,v))/256.0; valid(u,v) = I(u,v)0;
KITTI中的3D激光雷达点云(官网下载的raw文件中的sync文件下的)bin文件(infile),转成pcd文件(outfile)存储代码:
3.6 pose数据介绍
数据集位置:
在文件夹 devkit_odometry/devkit/reame.txt 中阐明: 在poses目次下,包罗00.txt-10.txt 11个序列,每一个文件包换Nx12个表格,N代表帧数。
每一行操纵3x4转移矩阵代表右边相机(料想那里指的是 Cam 0, 左侧的灰度相机)坐标系统的位姿,转移矩阵将当前帧右边相机系统中的一个点映射到第0帧的坐标系统中。转移矩阵中平移的部门表达当前相机位置(相关于第0帧)。
原文: Folder 'poses': The folder 'poses' contains the ground truth poses (trajectory) for the first 11 sequences. This information can be used for training/tuning your method. Each file xx.txt contains a N x 12 table, where N is the number of frames of this sequence. Row i represents the i'th pose of the left camera coordinate system (i.e., z pointing forwards) via a 3x4 transformation matrix. The matrices are stored in row aligned order (the first entries correspond to the first row), and take a point in the i'th coordinate system and project it into the first (=0th) coordinate system. Hence, the translational part (3x1 vector of column 4) corresponds to the pose of the left camera coordinate system in the i'th frame with respect to the first (=0th) frame.
(john解读:ORB-SLAM3中相机位姿(camera pose)的表达是Tcw,即世界坐标系的点Pw到相机坐标系的点Pc的变更矩阵,(camera pose 的逆是Twc, 即 Pw = Twc * Pc)。那里的pose.txt保留时,以第一帧(的相机坐标系)做为世界坐标系(即 0,0,0,0,0,0,1),保留的为第i帧相机坐标系下的点到第0帧(世界坐标系)的变更,即Twc(相机位姿的逆)。
示例:sequence 00 的poses(轨迹)00.txt