KITTI数据集内参文件解析

文章详细介绍了相机内参的表现形式,包括P0~P3相机投影矩阵的3X4结构及其原因。解释了R0_rect修正矩阵的作用,用于使多相机成像共面。还阐述了如何将激光雷达坐标转换到相机坐标,以及将3D点云映射到2D图像平面的过程,涉及外参矩阵Tr_velo_to_cam的使用,并提到了深度估计中的距离计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内参的表现形式

 方便展示,做了换行
 方便展示,做了换行

内参对应介绍

其中P0~P3是对应的相机投影矩阵,也就是相机的内参
正常情况下相机内参为3X3的矩阵,
在这里为3X4的原因是要把不同位置的相机平面统一到P0相机下
所以额外加了一列的偏移量,P0相机对应位置则为全0
相机内参公式如下:

\begin{pmatrix} f_x& 0& c_x\\ 0& f_y& c_y\\ 0& 0& 1 \end{pmatrix}

其中f_xf_y为像素焦距,单位为像素,即单位长度的像素个数

c_xc_y为光心到 CMOS 零点的偏移,也就是相机光心在像素坐标系中的坐标

R0_rect(3X3)为P0相机的修正矩阵,目的是为了使4个相机成像达到共面的效果,保证4个相机光心在同一个xoy平面上(这个xoy面与激光雷达中心的关系???)。

于是在进行外参矩阵变化之后,需要于R0_rect相乘得到相机坐标系下的坐标

外参矩阵Tr_velo_to_cam(3X4)用于将激光雷达坐标系中的点转换到相机坐标系中

常用方法的对应公式

把激光雷达坐标系下的3d点云转到相机坐标系

N个3d点云坐标通常为(NX3)3代表(x,y,z)

需要在后面补1 (x,y,z,1)成为(NX4)

再与Tr_velo_to_cam的转置 (4X3)相乘 得到(NX3)的在各个相机坐标系下的3D点坐标

随后再乘上R0_rect修正矩阵的转置(3X3),将3d点统一到P0相机坐标系下(3X3)

NX4*4X3*3*3=NX3

P_{rect} = P_{velo} \cdot V2C^{T} \cdot R0_{rect}^{T}

把相机坐标系下的3d点云映射到图像平面2d点

同理,需要对N个3维度的点补1到(NX4)

需要参考相机内参的公式

\begin{bmatrix} u*z\\ v*z\\ z\\ \end{bmatrix} =\begin{bmatrix} u\\ v\\ 1\\ \end{bmatrix}*z =\begin{bmatrix} f_x & 0& c_x\\ 0& f_y& c_y\\ 0& 0& 1 \end{bmatrix} \begin{bmatrix} X\\ Y\\ Z \end{bmatrix}

再与P0~P3相机内参的转置(4X3)相乘,得到上式中最左边的表示,之后除以深度Z便可以得到在对应相机平面的坐标。

假如需要知道与该相机的距离(例如在深度估计任务中),则需要在深度上减去相机内参在Z轴上的偏移量

P_{img}=\left ( X,Y,Z \right ) = {P_{img}\cdot P_i}

\left ( u,v \right )=\frac{X,Y}{Z}

Depth_i=Z-P_{i_{2,3}}

若有不足,请批评指正

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值