You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从KITTI 2015标定文件提取基线与焦距用于深度估计?

从KITTI 2015标定文件提取基线与焦距的方法

背景

我是图像处理新手,需使用KITTI 2015立体图像,通过Census变换和汉明距离实现深度估计,当前需要明确如何从数据集的标定文件中提取基线(baseline)和焦距(focal length)。

标定文件参数概览

calib_cam_to_cam/000nr.txt(nr取值000-199,对应图像对编号)

该文件包含以下参数:

  • S_xx:图像xx校正前的尺寸,1×2矩阵
  • K_xx:图像xx校正前的3×3内参标定矩阵
  • D_xx:图像xx校正前的1×5畸变向量
  • R_xx:相机xx的3×3旋转外参矩阵
  • T_xx:相机xx的3×1平移外参向量
  • S_rect_xx:图像xx校正后的尺寸,1×2矩阵
  • R_rect_xx:使图像平面共面的3×3校正旋转矩阵
  • P_rect_xx:校正后的3×4投影矩阵

calib_velo_to_cam/000nr.txt

该文件包含以下参数:

  • R:将3D点从Velodyne坐标系转换到相机坐标系的3×3旋转矩阵
  • T:将3D点从Velodyne坐标系转换到相机坐标系的3×1平移向量
  • delta_f:左右彩色相机焦距的差值,单目相机取值为0
  • delta_c:左右彩色相机主点的差值,单目相机取值为0

具体提取步骤

焦距(Focal Length)

对于校正后的立体图像,直接从calib_cam_to_cam文件的P_rect_xx矩阵中提取:

  • P_rect_02对应左相机的校正投影矩阵,P_rect_03对应右相机的校正投影矩阵
  • 投影矩阵的标准结构为:
    [f_u, 0, c_u, 0]
    [0, f_v, c_v, 0]
    [0, 0, 1, 0]
    
  • 焦距可选取f_u或f_v(KITTI数据集中两者数值近似相等),例如从P_rect_02的第一行第一列数值获取f_u

基线(Baseline)

基线是左右相机光心之间的水平距离,有两种常用计算方式:

  1. 基于外参向量计算:
    • 从calib_cam_to_cam文件中获取左相机到参考相机的平移向量T_02,以及右相机到参考相机的平移向量T_03
    • 计算左右相机的平移差:T_diff = T_03 - T_02
    • 基线长度为该向量X轴分量的绝对值(KITTI立体相机为水平布置,基线沿X轴)
  2. 基于投影矩阵快速计算:
    • 从P_rect_03矩阵中取第一行第四列的数值(即P_rect_03[0][3])
    • 结合左相机焦距f_u,通过公式计算:baseline = -P_rect_03[0][3] / f_u

内容的提问来源于stack exchange,提问作者Vulsan Bianca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 21:05:28