KITTI数据集解析和可视化
文章目錄
- 一、KITTI數(shù)據(jù)集簡介
- 1.1 介紹
- 1.2 下載
 
- 二、數(shù)據(jù)解析
- 2.0 數(shù)據(jù)集結(jié)構(gòu)
- 2.1 ImageSets
- 2.2 Testing & Training
- 2.2.1 calib
- 2.2.2 image_2
- 2.2.3 label_2
- 2.2.4 planes
- 2.2.5 velodyne
 
 
- 三、數(shù)據(jù)集的下載和組織
- 參考
一、KITTI數(shù)據(jù)集簡介
1.1 介紹
- 文章鏈接
 《Are we ready for Autonomous Driving? The KITTI Vision Benchmark Suite (2012)》
- 概述
 KITTI數(shù)據(jù)集是目前國際上最大的自動(dòng)駕駛場景下的計(jì)算機(jī)視覺算法評測數(shù)據(jù)集。該數(shù)據(jù)集用于評測立體圖像(stereo),光流(optical flow),視覺測距(visual odometry),3D物體檢測(object detection)和3D跟蹤(tracking)等計(jì)算機(jī)視覺技術(shù)在車載環(huán)境下的性能。
 KITTI包含市區(qū)、鄉(xiāng)村和高速公路等場景采集的真實(shí)圖像數(shù)據(jù),每張圖像中最多達(dá)15輛車和30個(gè)行人,還有各種程度的遮擋與截?cái)唷?br /> 3D目標(biāo)檢測數(shù)據(jù)集由7481個(gè)訓(xùn)練圖像和7518個(gè)測試圖像以及相應(yīng)的點(diǎn)云數(shù)據(jù)組成,包括總共80256個(gè)標(biāo)記對象。
- 數(shù)據(jù)采集平臺(tái)
Kitti的數(shù)據(jù)采集車,頂上是一個(gè)64線的velodyne激光雷達(dá),前面有四個(gè)攝像頭分別是cam0~3,其中0和1是灰度相機(jī),2和3是rgb相機(jī)。激光雷達(dá)的坐標(biāo)系遵循右手定則,而相機(jī)坐標(biāo)系遵循左手定則,如圖所示。
 
 為了生成雙目立體圖像,相同類型的攝像頭相距54cm安裝。由于彩色攝像機(jī)的分辨率和對比度不夠好,所以還使用了兩個(gè)立體灰度攝像機(jī),它和彩色攝像機(jī)相距6cm安裝。
 
 四個(gè)相機(jī)經(jīng)過了嚴(yán)格的位置矯正,保證yz同值,x同軸,如果想進(jìn)行l(wèi)idar與camera的坐標(biāo)系轉(zhuǎn)換,默認(rèn)以cam0為基準(zhǔn),即如果是cam0轉(zhuǎn)到velodyne,就直接轉(zhuǎn),如果是cam其他轉(zhuǎn)velodyne,則先要轉(zhuǎn)到cam0,再轉(zhuǎn)到velodyne,相機(jī)和激光的坐標(biāo)轉(zhuǎn)換后續(xù)會(huì)詳細(xì)說明。
具體的傳感器參數(shù)如下:
 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?
- 坐標(biāo)系
 
為了方便傳感器數(shù)據(jù)標(biāo)定,規(guī)定坐標(biāo)系方向如下 :
- camera: x = right, y = down, z = forward
- velodyne: x = forward, y = left, z = up
- GPS/IMU: x = forward, y = left, z = up
1.2 下載
- 數(shù)據(jù)集官網(wǎng)
 數(shù)據(jù)集官網(wǎng)下載地址
- 百度網(wǎng)盤下載鏈接
 鏈接:https://pan.baidu.com/s/1-4WchJlcZ2guwcfbHqrdFw
 提取碼:grys
 建議使用百度網(wǎng)盤的下載鏈接(因?yàn)槲募貏e大,而且官網(wǎng)的下載速度很慢。)
進(jìn)入官網(wǎng),下圖紅色框標(biāo)記的為我們需要的數(shù)據(jù):
- 彩色圖像數(shù)據(jù)(12GB)
- 點(diǎn)云數(shù)據(jù)(29GB)
- 相機(jī)矯正數(shù)據(jù)(16MB)
- 標(biāo)簽數(shù)據(jù)(5MB)。
其中彩色圖像數(shù)據(jù)、點(diǎn)云數(shù)據(jù)、相機(jī)矯正數(shù)據(jù)均包含training(7481)和testing(7518)兩個(gè)部分,標(biāo)簽數(shù)據(jù)只有training數(shù)據(jù)。
 
二、數(shù)據(jù)解析
2.0 數(shù)據(jù)集結(jié)構(gòu)
按照官方給出的OpenPCDet中的KITTI數(shù)據(jù)集的組織方法,排布數(shù)據(jù)集
data │── kitti │??│── ImageSets │??│── testing │??│??├── calib & image_2 & velodyne │??│── training │??│??├── calib & image_2 & label_2 & planes & velodyne- image_2 即2號彩色相機(jī)所拍攝的圖片(.png);
- calib對應(yīng)每一幀的外參(.txt);
- label_2是每幀的標(biāo)注信息(.txt);
- velodyne是Velodyne64所得的點(diǎn)云文件(.bin)
2.1 ImageSets
數(shù)據(jù)集列表信息,一般包括如下3部分:
- train.txt:訓(xùn)練集 列表信息
- test.txt:測試集 列表信息
- val.txt:驗(yàn)證集 列表信息
2.2 Testing & Training
2.2.1 calib
calib文件是相機(jī)、雷達(dá)、慣導(dǎo)等傳感器的矯正數(shù)據(jù)。以“000001.txt”文件為例,內(nèi)容如下:
P0: 7.215377000000e+02 0.000000000000e+00 6.095593000000e+02 0.000000000000e+00 0.000000000000e+00 7.215377000000e+02 1.728540000000e+02 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 P1: 7.215377000000e+02 0.000000000000e+00 6.095593000000e+02 -3.875744000000e+02 0.000000000000e+00 7.215377000000e+02 1.728540000000e+02 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 P2: 7.215377000000e+02 0.000000000000e+00 6.095593000000e+02 4.485728000000e+01 0.000000000000e+00 7.215377000000e+02 1.728540000000e+02 2.163791000000e-01 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 2.745884000000e-03 P3: 7.215377000000e+02 0.000000000000e+00 6.095593000000e+02 -3.395242000000e+02 0.000000000000e+00 7.215377000000e+02 1.728540000000e+02 2.199936000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 2.729905000000e-03 R0_rect: 9.999239000000e-01 9.837760000000e-03 -7.445048000000e-03 -9.869795000000e-03 9.999421000000e-01 -4.278459000000e-03 7.402527000000e-03 4.351614000000e-03 9.999631000000e-01 Tr_velo_to_cam: 7.533745000000e-03 -9.999714000000e-01 -6.166020000000e-04 -4.069766000000e-03 1.480249000000e-02 7.280733000000e-04 -9.998902000000e-01 -7.631618000000e-02 9.998621000000e-01 7.523790000000e-03 1.480755000000e-02 -2.717806000000e-01 Tr_imu_to_velo: 9.999976000000e-01 7.553071000000e-04 -2.035826000000e-03 -8.086759000000e-01 -7.854027000000e-04 9.998898000000e-01 -1.482298000000e-02 3.195559000000e-01 2.024406000000e-03 1.482454000000e-02 9.998881000000e-01 -7.997231000000e-01-  P0~P3 Prect(i)P_{rect}^{(i)}Prect(i)? :矯正后的相機(jī)投影矩陣 R3?4R^{3*4}R3?4 
 0、1、2、3 代表相機(jī)的編號,0表示左邊灰度相機(jī),1右邊灰度相機(jī),2左邊彩色相機(jī),3右邊彩色相機(jī)。
 
 其中bx(i)b_x^{(i)}bx(i)?表示相對于參考攝像機(jī)0的基準(zhǔn)值(以米為單位)
-  R0_rect Rrect(i)R_{rect}^{(i)}Rrect(i)? :矯正后的相機(jī)旋轉(zhuǎn)矩陣R3?3R^{3*3}R3?3 
 在實(shí)際計(jì)算時(shí),需要將該3x3的矩陣擴(kuò)展為4x4的矩陣,方法為在第四行和第四列添加全為0的向量,并且將(4, 4)的索引值設(shè)為1。
-  Tr_velo_to_cam (Tvelocam)(T_{velo}^{cam})(Tvelocam?) :從雷達(dá)到相機(jī)0的旋轉(zhuǎn)平移矩陣 (R3?4R^{3*4}R3?4) 
 在實(shí)際計(jì)算時(shí),需要將該3x4的矩陣擴(kuò)展為4x4的矩陣,方法為增加第四行向量[0,0,0,1]。這個(gè)矩陣其實(shí)包括了兩個(gè)部分,其一是3x3的旋轉(zhuǎn)矩陣,其二是1x3的平移向量。
 
-  Tr_imu_to_velo (Timuvelo)(T_{imu}^{velo})(Timuvelo?) : 從慣導(dǎo)或GPS裝置到相機(jī)的旋轉(zhuǎn)平移矩陣 (R3?4R^{3*4}R3?4) 
 如果要將激光雷達(dá)坐標(biāo)系中的點(diǎn)x投影到左側(cè)的彩色圖像(P2)y中,可使用如下公式:
 
 若想將激光雷達(dá)坐標(biāo)系中的點(diǎn)x投射到其他攝像頭,只需替換P2矩陣即可(例如右邊的彩色相機(jī)P3)。
2.2.2 image_2
image文件以8位PNG格式存儲(chǔ),圖集如下:
 
2.2.3 label_2
label文件是KITTI中object的標(biāo)簽和評估數(shù)據(jù),以“000001.txt”文件為例,包含樣式如下:
Truck 0.00 0 -1.57 599.41 156.40 629.75 189.25 2.85 2.63 12.34 0.47 1.49 69.44 -1.56 Car 0.00 0 1.85 387.63 181.54 423.81 203.12 1.67 1.87 3.69 -16.53 2.39 58.49 1.57 Cyclist 0.00 3 -1.65 676.60 163.95 688.98 193.93 1.86 0.60 2.02 4.59 1.32 45.84 -1.55 DontCare -1 -1 -10 503.89 169.71 590.61 190.13 -1 -1 -1 -1000 -1000 -1000 -10 DontCare -1 -1 -10 511.35 174.96 527.81 187.45 -1 -1 -1 -1000 -1000 -1000 -10 DontCare -1 -1 -10 532.37 176.35 542.68 185.27 -1 -1 -1 -1000 -1000 -1000 -10 DontCare -1 -1 -10 559.62 175.83 575.40 183.15 -1 -1 -1 -1000 -1000 -1000 -10? 每一行代表一個(gè)object,每一行都有16列分別表示不同的含義,具體如下:
-  第1列(字符串):代表物體類別(type) 
 總共有9類,分別是:Car、Van、Truck、Pedestrian、Person_sitting、Cyclist、Tram、Misc、DontCare。
 其中DontCare標(biāo)簽表示該區(qū)域沒有被標(biāo)注,比如由于目標(biāo)物體距離激光雷達(dá)太遠(yuǎn)。為了防止在評估過程中(主要是計(jì)算precision),將本來是目標(biāo)物體但是因?yàn)槟承┰蚨鴽]有標(biāo)注的區(qū)域統(tǒng)計(jì)為假陽性(false positives),評估腳本會(huì)自動(dòng)忽略DontCare區(qū)域的預(yù)測結(jié)果。
-  第2列(浮點(diǎn)數(shù)):代表物體是否被截?cái)?#xff08;truncated) 
 數(shù)值在0(非截?cái)?#xff09;到1(截?cái)?#xff09;之間浮動(dòng),數(shù)字表示指離開圖像邊界對象的程度。
-  第3列(整數(shù)):代表物體是否被遮擋(occluded) 
 整數(shù)0、1、2、3分別表示被遮擋的程度。
-  第4列(弧度數(shù)):物體的觀察角度(alpha) 
 取值范圍為:-pi ~ pi(單位:rad),它表示在相機(jī)坐標(biāo)系下,以相機(jī)原點(diǎn)為中心,相機(jī)原點(diǎn)到物體中心的連線為半徑,將物體繞相機(jī)y軸旋轉(zhuǎn)至相機(jī)z軸,此時(shí)物體方向與相機(jī)x軸的夾角(如下圖所示,y軸垂直與屏幕)
-  第5~8列(浮點(diǎn)數(shù)):物體的2D邊界框大小(bbox) 
 四個(gè)數(shù)分別是xmin、ymin、xmax、ymax(單位:pixel),表示2維邊界框的左上角和右下角的坐標(biāo)。
-  第9~11列(浮點(diǎn)數(shù)):3D物體的尺寸(dimensions) 
 分別是高、寬、長(單位:米)
-  第12-14列(浮點(diǎn)數(shù)):3D物體的位置(location) 
 分別是x、y、z(單位:米),特別注意的是,這里的xyz是在相機(jī)坐標(biāo)系下3D物體的中心點(diǎn)位置。
-  第15列(弧度數(shù)):3D物體的空間方向(rotation_y) 
 取值范圍為:-pi ~ pi(單位:rad),它表示,在照相機(jī)坐標(biāo)系下,物體的全局方向角(物體前進(jìn)方向與相機(jī)坐標(biāo)系x軸的夾角),如下圖所示。
-  第16列(浮點(diǎn)數(shù)):檢測的置信度(score) 
 
2.2.4 planes
# Plane Width 4 Height 1 -1.851372e-02 -9.998285e-01 -5.362310e-04 1.678761e+002.2.5 velodyne
velodyne文件是激光雷達(dá)的測量數(shù)據(jù)(繞其垂直軸(逆時(shí)針)連續(xù)旋轉(zhuǎn)),以“000001.bin”文件為例,內(nèi)容如下:
8D 97 92 41 39 B4 48 3D 58 39 54 3F 00 00 00 00 83 C0 92 41 87 16 D9 3D 58 39 54 3F 00 00 00 00 2D 32 4D 42 AE 47 01 3F FE D4 F8 3F 00 00 00 00 37 89 92 41 D3 4D 62 3E 58 39 54 3F 00 00 00 00 E5 D0 92 41 12 83 80 3E E1 7A 54 3F EC 51 B8 3D 7B 14 70 41 2B 87 96 3E 50 8D 37 3F CD CC 4C 3E 96 43 6F 41 7B 14 AE 3E 3D 0A 37 3F E1 7A 14 3F 2F DD 72 41 5E BA C9 3E 87 16 39 3F 00 00 00 00 FA 7E 92 41 5E BA 09 3F 58 39 54 3F 00 00 00 00 66 66 92 41 EC 51 18 3F CF F7 53 3F 00 00 00 00 A4 70 92 41 77 BE 1F 3F CF F7 53 3F 00 00 00 00 A4 70 92 41 8D 97 2E 3F 58 39 54 3F 00 00 00 00 ...點(diǎn)云數(shù)據(jù)以浮點(diǎn)二進(jìn)制文件格式存儲(chǔ),每行包含8個(gè)數(shù)據(jù),每個(gè)數(shù)據(jù)由四位十六進(jìn)制數(shù)表示(浮點(diǎn)數(shù)),每個(gè)數(shù)據(jù)通過空格隔開。一個(gè)點(diǎn)云數(shù)據(jù)由四個(gè)浮點(diǎn)數(shù)數(shù)據(jù)構(gòu)成,分別表示點(diǎn)云的x、y、z、r(強(qiáng)度 or 反射值),點(diǎn)云的存儲(chǔ)方式如下表所示:
 
三、數(shù)據(jù)集的下載和組織
- 百度網(wǎng)盤下載鏈接
 鏈接:https://pan.baidu.com/s/1-4WchJlcZ2guwcfbHqrdFw
 提取碼:grys
從百度網(wǎng)盤下載如下框出的文件。
 
其中 xxx.zip 和xxx.z01、xxx.z02、xxx.z03 是分包文件,必須全部下載后才能夠解壓。
然后通過xftp把下載的壓縮包全部上傳到云服務(wù)器上。
 分包文件的解壓方法,以 data_object_image_2.zip 為例子。
解壓之后的文件結(jié)構(gòu)如下所示。
 
 如下所示,在kitti文件夾下新建testing和training 目錄。然后把上一步解壓后得到的data_object_image2/testing/image_2 文件放入到data/kitti/testing 文件夾下;把上一步解壓后得到的data_object_image2/training/image_2 文件放入到data/kitti/training 文件夾下。
最終的組織架構(gòu)如下圖所示:
 
 
 
 
參考
參考博客:
 【1】https://blog.csdn.net/i6101206007/article/details/11225682
 【2】https://blog.csdn.net/u013086672/article/details/103913361
總結(jié)
以上是生活随笔為你收集整理的KITTI数据集解析和可视化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 2021酒店便捷型IPTV系统云桌面
- 下一篇: Linux信号量
