1.KITTI數(shù)據(jù)集概述
KITTI數(shù)據(jù)集由德國卡爾斯魯厄理工學(xué)院和豐田美國技術(shù)研究院聯(lián)合創(chuàng)辦,是目前國際上最大的自動駕駛場景下的計算機視覺算法評測數(shù)據(jù)集。
該數(shù)據(jù)集用于評測立體圖像(stereo),光流(optical flow),視覺測距(visual odometry),3D物體檢測(object detection)和3D跟蹤(tracking)等計算機視覺技術(shù)在車載環(huán)境下的性能。
KITTI包含市區(qū)、鄉(xiāng)村和高速公路等場景采集的真實圖像數(shù)據(jù),每張圖像中最多達15輛車和30個行人,還有各種程度的遮擋與截斷。整個數(shù)據(jù)集由389對立體圖像和光流圖,39.2 km視覺測距序列以及超過200k 3D標(biāo)注物體的圖像組成[1] ,以10Hz的頻率采樣及同步。
總體上看,原始數(shù)據(jù)集被分類為’Road’, ’City’, ’Residential’, ’Campus’ 和 ’Person’。對于3D物體檢測,label細(xì)分為car, van, truck, pedestrian, pedestrian(sitting), cyclist, tram以及misc組成。
地址: http://www.cvlibs.net/datasets/kitti
相關(guān)論文:
1、Geiger A, Lenz P, Urtasun R. Are we ready for autonomous driving? the kitti vision benchmark suite[C]//2012 IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2012: 3354-3361.
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.數(shù)據(jù)采集平臺
如圖-1所示,KITTI數(shù)據(jù)集的數(shù)據(jù)采集平臺裝配有2個灰度攝像機,2個彩色攝像機,一個Velodyne 64線3D激光雷達,4個光學(xué)鏡頭,以及1個GPS導(dǎo)航系統(tǒng)。
具體的傳感器參數(shù)如下[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?

如圖-2所示為傳感器的配置平面圖。為了生成雙目立體圖像,相同類型的攝像頭相距54cm安裝。
由于彩色攝像機的分辨率和對比度不夠好,所以還使用了兩個立體灰度攝像機,它和彩色攝像機相距6cm安裝。為了方便傳感器數(shù)據(jù)標(biāo)定,規(guī)定坐標(biāo)系方向如下[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數(shù)據(jù)集的典型樣本,分為 ’Road’, ’City’, ’Residential’, ’Campus’ 和’Person’五類。原始數(shù)據(jù)采集于2011年的5天,共有180GB數(shù)據(jù)。

3.1 數(shù)據(jù)組織形式
論文[2] 中提及的數(shù)據(jù)組織形式,可能是早期的版本,與目前KITTI數(shù)據(jù)集官網(wǎng)公布的形式不同,本文稍作介紹。
如圖-4所示,一個視頻序列的所有傳感器數(shù)據(jù)都存儲于data_drive文件夾下,其中date和drive是占位符,表示采集數(shù)據(jù)的日期和視頻編號。時間戳記錄在Timestamps.txt文件。

下載地址: 有大神將其放在了自己的服務(wù)器方便大家下載, http://dataset.f3322.net:666/share/kitti/



3.2 Development Kit
KITTI各個子數(shù)據(jù)集都提供開發(fā)工具 development kit,主要由cpp文件夾,matlab文件夾,mapping文件夾和readme.txt組成。
下圖以object detection任務(wù)的文件夾devkit_object為例,可以看到cpp文件夾主要包含評估模型的源代碼evaluate_object.cpp。
Mapping文件夾中的文件記錄訓(xùn)練集到原始數(shù)據(jù)集的映射,從而開發(fā)者能夠同時使用激光雷達點云,gps數(shù)據(jù),右邊彩色攝像機數(shù)據(jù)以及灰度攝像機圖像等多模態(tài)數(shù)據(jù)。
Matlab文件夾中的工具包含讀寫標(biāo)簽,繪制2D/3D標(biāo)注框,運行demo等工具。Readme.txt文件非常重要,詳述介紹了某個子數(shù)據(jù)集的數(shù)據(jù)格式,benchmark介紹,結(jié)果評估方法等詳細(xì)內(nèi)容。
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
3.3 GPS/IMU位姿數(shù)據(jù)
OXTS (GPS/IMU):
對于每一幀,我們將30個不同的GPS /IMU值存儲在文本文件中:地理坐標(biāo)包括高度,全球定位,速度,加速度,角速率,精度和衛(wèi)星信息。加速度和角速率都是使用兩個坐標(biāo)系指定的,一個坐標(biāo)系與車體(x,y,z)相連,另一個坐標(biāo)系映射到該位置的地表切面(f,l,U)。
我們偶爾會遇到與OXTS設(shè)備短時間(約1秒)的通信中斷,我們?yōu)榇司€性插入所有值,并將最后3個條目設(shè)置為'-1'以指示缺失的信息。dataformat.txt提供了更多細(xì)節(jié)。轉(zhuǎn)換實用程序在開發(fā)工具包中提供。
主要提供以下30個數(shù)值:
- lat: latitude of the oxts-unit (deg)
- lon: longitude of the oxts-unit (deg)
- alt: altitude of the oxts-unit (m)
- roll: roll angle (rad), 0 = level, positive = left side up (-pi…pi)
- pitch: pitch angle (rad), 0 = level, positive = front down (-pi/2…pi/2)
- yaw: heading (rad), 0 = east, positive = counter clockwise (-pi…pi)
- vn: velocity towards north (m/s)
- ve: velocity towards east (m/s)
- vf: forward velocity, i.e. parallel to earth-surface (m/s)
- vl: leftward velocity, i.e. parallel to earth-surface (m/s)
- vu: upward velocity, i.e. perpendicular to earth-surface (m/s)
- ax: acceleration in x, i.e. in direction of vehicle front (m/s^2)
- ay: acceleration in y, i.e. in direction of vehicle left (m/s^2)
- az: acceleration in z, i.e. in direction of vehicle top (m/s^2)
- af: forward acceleration (m/s^2)
- al: leftward acceleration (m/s^2)
- au: upward acceleration (m/s^2)
- wx: angular rate around x (rad/s)
- wy: angular rate around y (rad/s)
- wz: angular rate around z (rad/s)
- wf: angular rate around forward axis (rad/s)
- wl: angular rate around leftward axis (rad/s)
- wu: angular rate around upward axis (rad/s)
- posacc: velocity accuracy (north/east in m)
- velacc: velocity accuracy (north/east in m/s)
- navstat: navigation status
- numsats: number of satellites tracked by primary GPS receiver
- posmode: position mode of primary GPS receiver
- velmode: velocity mode of primary GPS receiver
- orimode: orientation mode of primary GPS receiver
可以利用matlab程序中的oxts = loadOxtsliteData('2011_xx_xx_drive_xxxx')來解析GPS/IMU數(shù)據(jù),然后利用pose = convertOxtsToPose(oxts)程序?qū)xts數(shù)據(jù)轉(zhuǎn)換為米制單位位姿,用一個4x4的剛體變換矩陣表示。
3.4 傳感器標(biāo)定
這部分內(nèi)容對于想要利用KITTI中多個傳感器數(shù)據(jù)進行傳感器融合相關(guān)算法開發(fā)至關(guān)重要。
raw data數(shù)據(jù)集中提供了三個標(biāo)定文件,分別是:
calib_cam_to_cam.txt——相機到相機之間的標(biāo)定:
-
-S_xx:表示圖像矯正前的尺寸——寬 高
-
-K_xx:表示相機xx圖像矯正前的標(biāo)定矩陣,3x3大小
-
-D_xx:矯正前相機xx的1x5畸變向量
-
-R_xx:相機xx的3x3旋轉(zhuǎn)矩陣(相機外參)
-
-T_xx:相機xx的3x1平移向量(相機外參)
-
-S_rect_xx:矯正后相機xx圖像尺寸
-
-R_rect_xx:3x3的矯正旋轉(zhuǎn)矩陣用來使圖像平面共面
-
-P_rect_xx:矯正后3x4的投影矩陣(表示將矯正后相機00下坐標(biāo)轉(zhuǎn)到相機xx下圖像像素的投影矩陣)
注意:在使用同步矯正數(shù)據(jù)集時,我們一般只會用到P_rect_xx矩陣和R_rect_00矩陣。
D_xx解釋:
圖像的畸變主要有兩種:徑向畸變和切向畸變。
徑向畸變:正中心位置的畸變最小,隨著半徑的增大,畸變增大。徑向畸變可以分為枕形畸變和桶形畸變:

徑向畸變矯正公式如下(泰勒級數(shù)展開式前3項):

切向畸變:在透鏡與成像平面不平行時就會產(chǎn)生,類似于透視變換。

切向畸變的矯正公式如下:

calib_velo_to_cam.txt——激光雷達到相機之間的對準(zhǔn):
-
-R:3x3的旋轉(zhuǎn)矩陣
-
-T:3x1的平移向量
R|T共同組成一個剛體變換矩陣,用來將激光雷達坐標(biāo)系下的一個點轉(zhuǎn)換到左側(cè)灰度相機(即cam00)坐標(biāo)系下。在開發(fā)激光雷達和相機融合相關(guān)算法時會用到。
calib_img_to_velo.txt——GPS/IMU到激光雷達之間的對準(zhǔn):
-
-R:3x3的旋轉(zhuǎn)矩陣
-
-T:3x1的平移向量
3.5 深度預(yù)測、深度完成模塊的數(shù)據(jù)介紹
激光數(shù)據(jù)被保存成png格式(uint16)與真實距離(米)之間的關(guān)系:png的像素值除以256,來源:
http://www.cvlibs.net/datasets/kitti/eval_depth_all.php
Download development kit (48 K)中的 readme.txt(http://www.cvlibs.net/downloads/depth_devkit.zip)
disp(u,v) = ((float)I(u,v))/256.0; valid(u,v) = I(u,v)>0;
KITTI中的3D激光雷達點云(官網(wǎng)下載的raw文件中的sync文件下的)bin文件(infile),轉(zhuǎn)成pcd文件(outfile)存儲代碼:
// load point cloud
fstream input(infile.c_str(), ios::in | ios::binary);
if(!input.good()){
cerr << "Could not read file: " << infile << endl;
exit(EXIT_FAILURE);
}
input.seekg(0, ios::beg);
pcl::PointCloud::Ptr points (new pcl::PointCloud) ;
int i;
for (i=0; input.good() && !input.eof(); i++) {
PointXYZI point;
input.read((char *) &point.x, 3*sizeof(float));
input.read((char *) &point.intensity, sizeof(float));
points->push_back(point);
}
input.close();
cout << "Read KTTI point cloud with " << i << " points, writing to " << outfile << endl;
pcl::PCDWriter writer;
// Save DoN features
writer.write (outfile, *points, false);
3.6 pose數(shù)據(jù)介紹
數(shù)據(jù)集位置:
https://s3.eu-central-1.amazonaws.com/avg-kitti/devkit_odometry.zip
在文件夾 devkit_odometry/devkit/reame.txt 中說明: 在poses目錄下,包含00.txt-10.txt 11個序列,每一個文件包換Nx12個表格,N代表幀數(shù)。
每一行利用3x4轉(zhuǎn)移矩陣代表左邊相機(猜想這里指的是 Cam 0, 左側(cè)的灰度相機)坐標(biāo)系統(tǒng)的位姿,轉(zhuǎn)移矩陣將當(dāng)前幀左邊相機系統(tǒng)中的一個點映射到第0幀的坐標(biāo)系統(tǒng)中。轉(zhuǎn)移矩陣中平移的部分表示當(dāng)前相機位置(相對于第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,即世界坐標(biāo)系的點Pw到相機坐標(biāo)系的點Pc的變換矩陣,(camera pose 的逆是Twc, 即 Pw = Twc * Pc)。這里的pose.txt保存時,以第一幀(的相機坐標(biāo)系)作為世界坐標(biāo)系(即 0,0,0,0,0,0,1),保存的為第i幀相機坐標(biāo)系下的點到第0幀(世界坐標(biāo)系)的變換,即Twc(相機位姿的逆)。
示例:sequence 00 的poses(軌跡)00.txt

審核編輯 :李倩
-
數(shù)據(jù)采集
+關(guān)注
關(guān)注
40文章
6805瀏覽量
115433 -
計算機視覺
+關(guān)注
關(guān)注
9文章
1705瀏覽量
46514 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1222瀏覽量
25232
原文標(biāo)題:KITTI數(shù)據(jù)集解讀絡(luò)!
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
凌華科技推出全新MCM-216/218 邊緣DAQ數(shù)據(jù)采集解決方案
自動駕駛系統(tǒng)要完成哪些計算機視覺任務(wù)?
信捷PLC以太網(wǎng)通訊數(shù)據(jù)采集解決方案 相關(guān)資料推薦
光洋PLC以太網(wǎng)通訊數(shù)據(jù)采集解決方案 相關(guān)資料推薦
完整傳感器數(shù)據(jù)采集解決方案簡化工業(yè)數(shù)據(jù)采集系統(tǒng)設(shè)計
無人駕駛數(shù)據(jù)集你只知道Kitti嗎?而實際比你想象的多
大華股份AI取得KITTI Sceneflow排行榜第一

KOYUELEC光與電子提供SUNLORDINC順絡(luò)電子數(shù)據(jù)免費
分享一個比較常見的?絡(luò)問題--丟包

UG-1533:評估ADAQ4003 18位2 MSPSμ模塊數(shù)據(jù)采集解決方案

虹科方案 | 汽車CAN/LIN總線數(shù)據(jù)采集解決方案

網(wǎng)關(guān)數(shù)據(jù)采集解決方案

PLC數(shù)據(jù)采集解決方案

評論