1、kitti數據采集平台
KITTI數據集的數據采集平台裝配有2個灰度攝像機,2個彩色攝像機,一個Velodyne64線3D激光雷達,4個光學鏡頭,以及1個GPS導航系統。圖示為傳感器的配置平面圖,為了生成雙目立體圖像,相同類型的攝像頭相距54cm安裝。由於彩色攝像機的分辨率和對比度不夠好,所以還使用了兩個立體灰度攝像機,它和彩色攝像機相距6cm安裝。(模擬雙目攝像機?)
2、kitti 激光雷達、攝像頭數據融合:
要將Velodyne坐標中的點x投影到左側的彩色圖像中y:
使用公式:y = P_rect_2 * R0_rect *Tr_velo_to_cam * x
將Velodyne坐標中的點投影到右側的彩色圖像中:
使用公式:y = P_rect_3 * R0_rect *Tr_velo_to_cam * x
Tr_velo_to_cam * x :是將Velodyne坐標中的點x投影到編號為0的相機(參考相機)坐標系中
R0_rect *Tr_velo_to_cam * x :是將Velodyne坐標中的點x投影到編號為0的相機(參考相機)坐標系中,再修正
P_rect_2 * R0_rect *Tr_velo_to_cam * x :是將Velodyne坐標中的點x投影到編號為0的相機(參考相機)坐標系中,再修正,然后投影到編號為2的相機(左彩色相機)
注意:
P_rect_2 (標號為2的攝像機的內參矩陣,只和相機內部參數有關,比如焦距和光心位置)
R0_rect(相機0的矯正旋轉矩陣)
Tr_velo_to_cam(點雲到相機的外參矩陣)
3、kitti 提供的校正文件解析:以(2011_09_26_calib文件夾中的文件為例)文件夾中包含三個文件
(1)calib_cam_to_cam.txt(相機到相機的標定):
其中
- S_xx:1x2 矯正前的圖像xx的大小
- K_xx:3x3 矯正前攝像機xx的校准矩陣
- D_xx:1x5 矯正前攝像頭xx的失真向量
- R_xx:3x3 (外部)的旋轉矩陣(從相機0到相機xx)
- T_xx:3x1 (外部)的平移矢量(從相機0到相機xx)
- S_rect_xx:1x2 矯正后的圖像xx的大小
- R_rect_xx:3x3 糾正旋轉矩陣(使圖像平面共面)
- P_rect_xx:3x4 矯正后的投影矩陣 (內參矩陣,前面第一行為前面四個數據,依次三行)
(2)calib_velo_to_cam.txt
其中
- R:3x3旋轉矩陣
- T:3x1平移向量
- delta_f:棄用
- delta_c:棄用
- Tr_velo_to_cam = (R | T)(點雲到相機的外參矩陣3x4)
(3)calib_imu_to_velo.txt
Y = P_rect_xx * R_rect_00 * (R|T)_velo_to_cam * (R|T)_imu_to_velo * X
4、 傳感器標定
(1)calib_cam_to_cam.txt (P_rect_xx)
相機的標定,即為通過某個已知的目標,求取相機內參矩陣的過程。最常用的標定目標就是棋盤格。
准備好棋盤格照片之后采用matlab 自帶的tools Camera Calibrator進行標定
-
單目攝像機需要標定的參數雙目都需要標定
-
雙目攝像機比單目攝像機多標定的參數(R和T)主要是描述兩個攝像機相對位置關系的參數,這些參數在立體校正和對極幾何中用處很大
(2)calib_velo_to_cam.txt
主要是得到點雲到圖像的旋轉平移矩陣:Tr_velo_to_cam = (R | T)