參考
4,KITTI數據集
5,KITTI數據集的使用——雷達與相機的數據融合(講解了坐標系轉換的公式)
image_00:左側灰度相機圖像序列
image_01:右側灰度相機圖像序列
image_02:左側彩色相機圖像序列
image_03:右側彩色相機圖像序列
oxts:GPS/IMU位姿相關信息序列
velodyne_points:激光雷達數據序列
image_00 _01 ... 文件夾下:
data 圖片文件
timestamps時間戳文件
oxts文件夾下:
數據文件
數據介紹
時間戳文件
velodyne_points文件夾
data: 包含有雷達掃描到的數據,點雲形式,每個點以 (x,y,z,i) 格式存儲,i為反射值
時間戳文件:start+end/2中心時間文件 start文件 end文件
calib文件:
calib_cam_to_cam.txt
,包含各相機的標定參數
- S_xx: 1x2 矯正前xx號相機的圖片尺寸
- K_xx: 3x3 矯正前xx號相機的標定參數
- D_xx: 1x5 矯正前xx號相機的畸變系數
- R_xx: 3x3 外參,xx號相機的旋轉矩陣
- T_xx: 3x1 外參,xx號相機的平移矩陣
- S_rect_xx: 1x2 矯正后XX號相機的圖片尺寸
- R_rect_xx: 3x3 旋轉矩陣,用於矯正xx號相機,使得圖像平面共面(原話是make image planes co-planar)。
- P_rect_0x: 3x4 投影矩陣,用於從矯正后的0號相機坐標系 投影到 X號相機的圖像平面。
這里只用到最后兩個矩陣R_rect和P_rect
calib_velo_to_cam.txt
,從雷達坐標系到0號相機坐標系的轉換
- R: 3x3 旋轉矩陣
- T: 3x1 平移矩陣
- delta_f 和delta_c 已被棄用
由此可以得出從雷達坐標系變換到xx號相機的圖像坐標系的公式:
設X為雷達坐標系中的齊次坐標,Y為對應在xx號相機的圖像坐標系的齊次坐標,則
- (R|T) : 雷達坐標系 -> 0號相機坐標系
- R_rect_00: 0號相機坐標系 -> 矯正后的0號相機坐標系
- P_rect_0x: 矯正后的0號相機坐標系 -> x號相機的圖像平面
解讀devkit
官網提供的樣例代碼中 run_demoVelodyne.m 實現了將雷達點雲投影到相機圖像
代碼流程
- 從所給路徑中讀取標定文件,獲取具體矩陣數值
- 根據上述公式,計算投影矩陣 P_velo_to_img,即 Y = P_velo_to_img * X
- 從所給路徑中讀取相機圖片,並加載雷達的點雲數據。由於只做展示用,為了加快運行速度,對於雷達點雲,每隔5個點只保留1個點
- 移除那些距離雷達5米之內(雷達的x方向)的點 (猜測這些點落在相機和雷達之間,故不會出現在圖像平面上)
- 作投影計算,得到投影到二維圖像上的點
6.在圖像上畫出投影后的點,按照深度(雷達點的x方向值)確定顏色,彩色則是暖色越近,冷色越遠;灰度則是深色越近,淺色越遠。