1. 程式人生 > >KITTI資料集--引數

KITTI資料集--引數

一、kitti資料集,label解析

16個數代表的含義:

第1個字串:代表物體類別

'Car', 'Van', 'Truck','Pedestrian', 'Person_sitting', 'Cyclist','Tram',  'Misc' or  'DontCare'

注意,’DontCare’ 標籤表示該區域沒有被標註,比如由於目標物體距離鐳射雷達太遠。為了防止在評估過程中(主要是計算precision),將本來是目標物體但是因為某些原因而沒有標註的區域統計為假陽性(false positives),評估指令碼會自動忽略’DontCare’ 區域的預測結果。

第2個數:代表物體是否被截斷

從0(非截斷)到1(截斷)浮動,其中truncated指離開影象邊界的物件

第3個數:代表物體是否被遮擋

整數0,1,2,3表示被遮擋的程度

0:完全可見  1:小部分遮擋  2:大部分遮擋 3:完全遮擋(unknown)

第4個數:alpha,物體的觀察角度,範圍:-pi~pi

是在相機座標系下,以相機原點為中心,相機原點到物體中心的連線為半徑,將物體繞相機y軸旋轉至相機z軸,此時物體方向與相機x軸的夾角

第5~8這4個數:物體的2維邊界框

xmin,ymin,xmax,ymax

第9~11這3個數:3維物體的尺寸

高、寬、長(單位:米)

第12~14這3個數:3維物體的位置

 x,y,z(在照相機座標系下,單位:米)

第15個數:3維物體的空間方向:rotation_y

在照相機座標系下,物體的全域性方向角(物體前進方向與相機座標系x軸的夾角),範圍:-pi~pi

第16個數:檢測的置信度

二、kitti資料集,calib解析

要將Velodyne座標中的點x投影到左側的彩色影象中y:

使用公式:y = P2 * R0_rect *Tr_velo_to_cam * x

將Velodyne座標中的點投影到右側的彩色影象中:

使用公式:y = P3 * R0_rect *Tr_velo_to_cam * x

Tr_velo_to_cam * x    :是將Velodyne座標中的點x投影到編號為0的相機(參考相機)座標系中

R0_rect *Tr_velo_to_cam * x    :是將Velodyne座標中的點x投影到編號為2的相機(參考相機)座標系中

P2 * R0_rect *Tr_velo_to_cam * x     :是將Velodyne座標中的點x投影到編號為2的相機(參考相機)座標系中,再投影到編號為2的相機(左彩色相機)的照片上

注意:所有矩陣都儲存在主行中,即第一個值對應於第一行。 R0_rect包含一個3x3矩陣,需要將其擴充套件為4x4矩陣,方法是在右下角新增1,在其他位置新增0。 Tr_xxx是一個3x4矩陣(R | t),需要以相同的方式擴充套件到4x4矩陣!

通過使用校準資料夾中的3x4投影矩陣,可以將相機座標系中的座標投影到影象中,對於提供影象的左側彩色相機,必須使用P2。rotation_y和alpha之間的區別在於rotation_y直接在相機座標中給出,而alpha也會考慮從相機中心到物體中心的向量,以計算物體相對於相機的相對方向。 例如,沿著攝像機座標系的X軸面向的汽車,無論它位於X / Z平面(鳥瞰圖)中的哪個位置,它的rotation_y都為 0,而只有當此車位於相機的Z軸上時α才為零,當此車從Z軸移開時,觀察角度α將會改變。

三、原文(我不關注的部分就隨便翻譯了)

摘要 - 我們提出了從大眾旅行車捕獲的新型資料集,用於移動機器人和自動駕駛研究。總之,我們使用各種感測器模式(如高解析度彩色和灰度立體相機,Velodyne 3D鐳射掃描器和高精度GPS / IMU慣性導航系統),以10-100 Hz記錄6小時的交通情景。這些場景是多樣的,捕捉真實世界的交通情況,從高速公路到農村到有許多靜態和動態物體的城市內景。我們的資料是經過校準,同步和時間戳的,我們提供校正和原始影象序列。我們的資料集還包含3D tracklets形式的物件標籤,並提供立體,光學流,物體檢測和其他任務的線上基準。本文介紹了我們的錄製平臺,資料格式和我們提供的實用程式。

KITTI資料集在德國卡爾斯魯厄市內外駕駛時從一個移動平臺(圖1)錄製(圖2)。 它包括來自組合GPS / IMU系統的相機影象,鐳射掃描,高精度GPS測量和IMU加速。該資料集的主要目的是推動計算機視覺和自動駕駛演算法的發展[1] - [7]。雖然我們的介紹性論文[8]主要關注基準,它們的建立和用於評估最先進的計算機視覺方法,但我們通過提供關於原始資料本身的技術細節來補充這些資訊。我們給出了關於如何訪問資料和評論感測器限制和常見隱患的準確說明。資料集可以從http://www.cvlibs.net/datasets/kitti下載。 對於相關工作的回顧,讀[8]

A、資料描述

a) image:

使用8位PNG檔案,彩色和灰度影象都以無失真壓縮進行儲存。 發動機罩和天空區域已被裁剪。 為了簡化對資料的處理,我們還提供修正的影象(rectifiedimages)。 修正後圖像的大小取決於校準引數,平均大約為50萬畫素。 修正前的原始影象也可以使用。

b) OXTS (GPS/IMU):

對於每一幀,我們將30個不同的GPS /IMU值儲存在文字檔案中:地理座標包括高度,全球定位,速度,加速度,角速率,精度和衛星資訊。 加速度和角速率都是使用兩個座標系指定的,一個座標系與車體(x,y,z)相連,另一個座標系對映到該位置的地表切面(f,l,U)。 我們偶爾會遇到與OXTS裝置短時間(約1秒)的通訊中斷,我們為此線性插入所有值,並將最後3個條目設定為'-1'以指示缺失的資訊。 dataformat.txt提供了更多細節。 轉換實用程式在開發工具包中提供。

c) Velodyne:

為了提高效率,Velodyne掃描儲存為浮點二進位制檔案,使用提供的C ++或MATLAB程式碼很容易解析。 每個點以其(x,y,z)座標和附加反射值(r)儲存。 雖然每次掃描的點數並不固定,但平均而言,每個檔案/幀的大小為~1.9MB,對應於〜120,000個3D點和反射率值。 請注意,Velodyne鐳射掃描器圍繞其垂直軸(逆時針)連續旋轉,可以使用時間戳檔案將其考慮在內。

B. Annotations

對於參考攝像機視野內的每個動態物件,我們以3D Velodyne座標表示的3D邊界框軌跡形式提供註釋。 我們定義了類別'車','貨車','卡車','行人','人(坐)','騎車者','電車'和'雜項'。 tracklets儲存在date_drive_tracklets.xml中每個物件都被分配一個類和它的3D尺寸(高度,寬度,長度)。 對於每一幀,我們都提供了三維物體的平移和旋轉,如圖7所示。請注意,我們只提供偏航角,而其他兩個角度假定接近零。此外,指定了遮擋和截斷的級別。 該開發工具包包含用於使用boost ::serialization 1庫讀取和寫入tracklets的C ++ /MATLAB程式碼。

 

為了進一步瞭解我們資料集的屬性,我們提供了包含註釋物件的所有序列的統計資料。在圖8中示出了兩個主要類別“汽車”和“行人”的物件的總數和物件方位。對於每個物件類別,每個影象的物件標籤的數量和所捕獲的序列的長度被顯示在 圖9.由GPS / IMU系統記錄的我們平臺的自運動以及有關序列長度和物件數量的統計資料在圖10中顯示了整個資料集。

C. Development Kit

KITTI網站上提供的原始資料開發工具包2包含帶有C ++包裝器的MATLA演示程式碼和一個readme.txt檔案,它提供了更多細節。 在這裡,我們將簡要討論最重要的特徵。在執行指令碼之前,需要使用指令碼make.m構建用於將tracklets讀入MATLAB結構和單元陣列的mex包裝器readTrackletsMex.cpp。 它從包含tracklet物件序列化的cpp資料夾中包裝檔案tracklets.h。 在C ++環境中工作時,該檔案也可以直接與之連線。

指令碼run_demoTracklets.m演示瞭如何從XML檔案中讀取3D邊界框tracklets並將其投影到攝像機的影象平面上。 3D Velodyne點雲在影象平面中的投影在run_demoVelodyne.m中演示。 參見圖6的說明。

指令碼run_demoVehiclePath.m顯示如何使用GPS / IMU資料讀取和顯示3D車輛軌跡。 它利用convertOxtsToPose(),它將GPS / IMU測量值作為輸入,並輸出車輛在歐幾里德空間的6D姿態。 對於這種轉換,我們利用墨卡託投影[10]

地球半徑r≈6378137米,標度s = (見上圖),(lat,lon)地理座標。 lat 0表示第一幀座標的緯度並唯一確定墨卡託比例。

loadCalibrationCamToCam()函式可用於讀取四個視訊感測器的內部和外部校準引數。其他3D剛體轉換可以使用loadCalibrationRigid()進行分析。

D. Benchmarks

除了原始資料外,我們的KITTI網站還提供了多種計算機視覺和機器人任務(如立體聲,光流,視覺測距,SLAM,三維物體檢測和三維物體追蹤)的評估基準。 有關基準和評估指標的詳細資訊,請參閱[8]。

IV. 感測器校準

我們注意到所有感測器都經過了仔細的同步和校準。 為了避免隨時間漂移,我們在錄製後每天都校準感測器。 請注意,即使感測器設定沒有在兩者之間改變,數字差異也是可能的。座標系定義如圖1和圖3所示,即:

 

符號:在下文中,我們用小寫字母(a)編寫標量,用粗體小寫(a)編寫向量,用粗體首字母(A)編寫矩陣。 從座標系統a到座標系統b的三維剛體變換將用 表示,T表示“變換”。

A. Synchronization同步

為了同步感測器,我們使用Velodyne 3D鐳射掃描器的時間戳作為參考,並將每個旋轉視為一個框架。 我們在連續旋轉的掃描器底部安裝了一個簧片觸點,面向前方時觸發相機。這最大限度地減少了由動態物件引起的範圍和影象觀察的差異。 不幸的是,GPS / IMU系統不能以這種方式同步。 相反,由於它提供100 Hz的更新,因此我們會收集特定幀的鐳射掃描器時間戳最接近的時間戳資訊,導致GPS / IMU與攝像機/ Velodyne資料包之間的最差時間差為5 ms 。 請注意,所有時間戳都可以通過插值方式隨時輕鬆獲得定位資訊。所有的時間戳已經使用系統時鐘記錄在主機上。

B. Camera Calibration相機校準

為了本質上和外在地校準攝像機,我們使用[11]中提出的方法。 請注意,所有相機中心都是對齊的,即它們位於相同的x / y平面上。 這很重要,因為它可以讓我們共同糾正所有影象。

每天的校準引數按照主要順序儲存在calib_cam_to_cam.txt中,使用以下標記:

這裡,i∈{0,1,2,3}是相機索引,其中0代表左灰度,1代表右灰度,2代表左彩色,3代表右邊彩色相機。 請注意,變數定義符合我們用於變形影象的OpenCV庫。 在使用同步和糾正的資料集時,只有具有"rect"下標的變數是相關的。 請注意,由於枕形失真效應,影象已被裁剪,使得修整後的影象尺寸小於1392×512畫素的原始尺寸。

x是3維空間中的點,x =(x,y,z,1)T

第i個相機影象中的點y =(u,v,1)T

二者投影關係為:

 第i個投影矩陣。 這裡,(竟然不會插入公式,就是上面這個矩陣右上角的那個"bx(i)")表示相對於參考相機0的基線(??)(以米為單位)。注意,為了將參考相機座標中的3D點x投影到第i像平面上的點y,旋轉矩陣Rrect(0)也必須考慮參考攝像機 的情況:

這裡Rrect(0)被擴充套件成4×4的矩陣,增加了第四個0行和第四個0列,Rrect(0)(4,4)這個元素為1。

C. Velodyne and IMU Calibration

通過使用[11]初始化剛體變換,我們已經註冊了Velodyne鐳射掃描器相對於參考攝像機座標系(攝像機0)。 接下來,我們根據50個手動選擇的對應關係的歐幾里德距離以及KITTI立體基準測試中3個頂級立體方法的視差誤差的穩健測量,優化了誤差標準[8]。 使用Metropolis-Hastings抽樣進行優化。

--------------------- 本文來自 吉利吉利曹 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/cuichuanchen3307/article/details/80596689?utm_source=copy