相机内外参2D-3D转换 - 实践

相机成像原理反向应用 | 如何运用相机内外参,将2D的照片(u,v)(u,v)(u,v)转换回3D世界坐标(x,y,z)(x,y,z)(x,y,z)

已知当前 mmm 个帧 fimf_i^mfim 的深度图 Dim\mathbf{D}_i^mDim和相机内外参数Eim\mathbf{E}_i^mEimKim\mathbf{K}_i^mKim,借助深度重投影重建 3D 点图Pim\mathcal{P}_i^mPim

Pim=Dim⋅Ki−1[u∣v∣1]⊤⋅Ei−1 \mathcal{P}_i^m = D_i^m \cdot K_i^{-1} [u|v|1]^\top \cdot E_i^{-1}Pim=DimKi1[uv∣1]Ei1

符号类型维度 / 取值范围核心物理意义
Pim\mathcal{P}_i^mPim输出3D 向量(x, y, z)2D 像素(u,v)在3D 世界坐标系中的坐标(单位:米),是最终需要的 3D 空间位置
DimD_i^mDim输入标量(>0)iii个候选帧中,像素(u,v)对应的深度值(即像素到相机的直线距离,单位:米)
KimK_i^mKim输入3×3 矩阵相机 内参矩阵(Intrinsic Matrix),描述相机光学特性(焦距、像素尺寸等)
EimE_i^mEim输入4×4 矩阵相机 外参矩阵(Extrinsic Matrix),描述相机在 3D 世界坐标系中的位置和姿态
[u∣v∣1]⊤[u|v|1]^\top[uv∣1]输入3D向量2D 像素的齐次坐标(Homogeneous Coordinate),(u,v) 是像素在图像中的行列坐标(单位:像素)
Ki−1K_i^{−1}Ki1中间变量3×3 矩阵相机内参矩阵的逆矩阵,用于将 “像素坐标” 转化为 “相机坐标系下的射线方向”
Ei−1E_i^{−1}Ei1中间变量4×4 矩阵相机外参矩阵的逆矩阵,用于将 “相机坐标系下的 3D 点” 转化为 “世界坐标系下的 3D 点”

该公式的计算过程是 “分步可逆” 的,对应相机成像的逆过程(相机成像:3D 世界→2D 图像;公式计算:2D 图像→3D 世界),具体拆解为 4 个关键步骤:

Stage1:2D 像素坐标→齐次坐标:[u∥v∥1]⊤[u\|v\|1]^\top[uv∥1]

增加 “1” 作为第三维,将离散的像素行列坐标(u,v)(u,v)(u,v)转化为连续的数学向量,方便后续利用矩阵乘法实现平移、旋转等变换。

Stage2:齐次坐标→相机坐标系下的射线方向:Ki−1⋅[u∥v∥1]⊤K_i^{-1}\cdot[u\|v\|1]^\topKi1[uv∥1]

通过相机内参的逆矩阵,消除“相机光学畸变”和“像素尺寸”的影响,得到“该像素在相机坐标系下的射线方向”。

Kim=[fx0cx0fycy001],∵K⋅射线=齐次坐标      ∴K−1⋅齐次坐标=射线 K_i^m = \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix}, \because K\cdot射线=齐次坐标~~~~~~\therefore K^{-1}\cdot齐次坐标=射线Kim=fx000fy0cxcy1K射线=齐次坐标K1齐次坐标=射线

3,33,13,1 \begin{matrix} 3,3 &&&&&&&&& 3,1 & &&&&&&&&& 3,1 \end{matrix}3,33,13,1

Stage3:射线方向→相机坐标系下的3D点:Dim⋅Ki−1⋅[u∥v∥1]⊤D_i^m\cdot K_i^{-1}\cdot[u\|v\|1]^\topDimKi1[uv∥1]

Stage4:相机坐标系→世界坐标系:Dim⋅Ki−1⋅[u∥v∥1]⊤⋅Ei−1D_i^m\cdot K_i^{-1}\cdot[u\|v\|1]^\top\cdot E_i^{-1}DimKi1[uv∥1]Ei1

描述相机在 3D 世界坐标系中的 “位置(平移)” 和 “姿态(旋转)”,标准形式为 “4×4 齐次矩阵”(前 3×3 为旋转矩阵RRR,后 3×1 为平移向量ttt,描述相机在世界中的位置):

Eim=[Rt01] E_i^m = \begin{bmatrix} R & t \\ 0 & 1 \end{bmatrix}Eim=[R0t1]

原理:在使用外参的时候,先把世界坐标系加上1作为第四维度,之后与外参运算

(x,y,z,1)⋅[Rt01]=四维齐次坐标 (x,y,z,1)\cdot\begin{bmatrix} R & t \\ 0 & 1 \end{bmatrix} = 四维齐次坐标(x,y,z,1)[R0t1]=四维齐次坐标

1,44,41,4 \begin{matrix} 1,4 && & 4,4 & &&& 1,4 \end{matrix}1,44,41,4

posted on 2025-11-05 09:10  slgkaifa  阅读(13)  评论(0)    收藏  举报

导航