当前位置:   article > 正文

【KITTI数据集中Raw_Data数据标定文件中的参数关系解读】_raw_data/relation.txt

raw_data/relation.txt

KITTI数据集中Raw_Data数据标定文件中的参数关系解读

上一节本人将KITTI Odometry数据集中的参数文件进行了解释。本节主要针对一些做融合slam的人,将Raw_Data数据标定文件中的参数按照自己的理解做如下阐述。其中,所讲之处如有错误,欢迎各位批评指正。

一、下载Raw_Data文件

我们从官网下载原始的Raw_Data数据:
在这里插入图片描述

下载下来以后,我们拿synced+rectified data版本数据为例进行参数文件解读,解压数据包可以发现数据以以下结构排列:

 
└── 2011_10_03
    ├── 2011_10_03_drive_0047_sync
    │   ├── image_00
    │   │   ├── data
    │   │   └── timestamps.txt
    │   ├── image_01
    │   │   ├── data
    │   │   └── timestamps.txt
    │   ├── image_02
    │   │   ├── data
    │   │   └── timestamps.txt
    │   ├── image_03
    │   │   ├── data
    │   │   └── timestamps.txt
    │   ├── oxts
    │   │   ├── data
    │   │   ├── dataformat.txt
    │   │   └── timestamps.txt
    │   └── velodyne_points
    │       ├── data
    │       ├── timestamps_end.txt
    │       ├── timestamps_start.txt
    │       └── timestamps.txt
    ├── calib_cam_to_cam.txt
    ├── calib_imu_to_velo.txt
    └── calib_velo_to_cam.txt
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

二、calib.txt文件内容解读

首先,对于calib_imu_to_velo和calib_velo_to_cam文件结构相对简单,内部仅包含了一个矩阵,分别表示imu到雷达坐标系的变换以及雷达到未矫正相机0的变换。
随后,对于calib_cam_to_cam文件内部较为复杂如图所示:

在这里插入图片描述
其中下标00号代表左边灰度相机、01号代表右边灰度相机、02号代表左边彩色相机、03号代表右边彩色相机;S_i代表1x2 矫正前的图像i的大小、K_i代表3x3 矫正前摄像机i的校准矩阵、D_i代表1x5 矫正前摄像头i的失真向量、R_i代表3x3(外部)的旋转矩阵(从相机0到相机i)、T_i代表3x1(外部)的平移矢量(从相机0到相机i)、S_rect_i代表1x2 矫正后的图像i的大小、R_rect_i代表3x3 纠正旋转矩阵(使图像平面共面)、P_rect_i代表3x4 矫正后的投影矩阵。
虽然calib_cam_to_cam包含的参数较多,但是对于我们而言,在计算外参和内参过程中仅用到了R_rect_i和P_rect_i。所以我们仅对各个相机的两个矫正矩阵进行解读即可。对于每个相机i而言,由于安装误差,通常相机坐标系不在一个直线上,为了解决这个问题,因此引入矫正矩阵。先利用R_rect_0对雷达到未矫正相机0进行旋转初步修正:
Ttemp_velo= Rrect_0 * Tunrect_cam0_velo
随后,同一直线理想(等同于最终修正)的相机0、1、2、3均与初步修正相机0存在平移偏差。因此P_rect_i可以理解为理想(最终修正)相机i的内参矩阵*初步修正相机0相对于理想(最终修正)相机i的外参矩阵即

P_rect_i= ∣ f x 0 c x 0 0 f y c y 0 0 0 1 0 ∣

|fx0cx00fycy00010|
fx000fy0cxcy1000 * ∣ 1 0 0 T x 0 1 0 0 0 0 1 0 0 0 0 1 ∣
|100Tx010000100001|
100001000010Tx001
= ∣ f x 0 c x f x ∗ T x 0 f y c y 0 0 0 1 0 ∣
|fx0cxfxTx0fycy00010|
fx000fy0cxcy1fxTx00

所以,对于相机0、1、2、3而言,他们最终修正的内参矩阵K_cami=P_rect_i(0:3, 0:3),初步修正相机0相对于理想(最终修正)相机i的外参矩阵Tcami_temp=

∣ 1 0 0 P r e c t i ( 0 , 3 ) / P r e c t i ( 0 , 0 ) 0 1 0 0 0 0 1 0 0 0 0 1 ∣

|100Precti(0,3)/Precti(0,0)010000100001|
100001000010Precti(0,3)/Precti(0,0)001

所以我们利用calib文件得到四个相机内参数的同时,还可以得到雷达、imu与四个最终修正相机之间的外参数即:

Tcami_velo=Tcami_temp*Ttemp_velo

Tcami_imu=Tcami_velo*Tvelo_imu

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/378075?site
推荐阅读
相关标签
  

闽ICP备14008679号