2. 相机成像模型:针孔相机模型原理、内参矩阵、畸变模型

相机成像模型是3D视觉的数学基石,它将三维世界中的点映射到二维图像平面上。本章从最经典的针孔相机模型出发,逐步拆解内参矩阵、外参矩阵和畸变模型,为后续多相机联合标定建立统一的数学语言。

2.1 针孔相机模型原理

针孔相机模型(Pinhole Camera Model)是几何光学中最简化的成像抽象。它假设光线沿直线传播,穿过一个无限小的针孔,在后方成像平面上形成倒立的实像。实际应用中,我们通常将成像平面“虚拟”到针孔前方(归一化平面),从而得到正立的数学等价模型。

核心假设: 所有场景点、针孔中心、像点三点共线,且光线不发生弯曲。该假设在无畸变理想镜头下成立。

设三维空间点 P = (X, Y, Z) 在相机坐标系下的坐标为 (Xc, Yc, Zc),其投影到归一化成像平面上的坐标为:

x = Xc / Zc
y = Yc / Zc

这一过程将三维坐标压缩为二维归一化坐标,丢失了深度信息 Zc,但保留了方向。后续通过内参矩阵将归一化坐标转换为像素坐标。

针孔相机模型几何示意图 针孔相机模型几何示意图 三维点 P 光心 O 成像平面 像点 p f(焦距) Z(深度) 光线从 P 点经光心 O 投影到成像平面 p 点,焦距 f 决定成像缩放比例

2.2 内参矩阵(Intrinsic Matrix)

内参矩阵 K 描述了从归一化成像平面到像素坐标系的仿射变换,包含焦距和主点两个核心参数。其数学形式为:

K = [ fx   0    cx ]
    [ 0    fy   cy ]
    [ 0     0     1  ]
参数 符号 物理含义 单位
焦距 x 方向 fx 镜头物理焦距 × 像素在 x 方向的密度(f / dx) 像素
焦距 y 方向 fy 镜头物理焦距 × 像素在 y 方向的密度(f / dy) 像素
主点 x 坐标 cx 光轴与成像平面交点的像素列坐标 像素
主点 y 坐标 cy 光轴与成像平面交点的像素行坐标 像素
工程提示: 现代相机传感器像素通常为正方形(dx = dy),此时 fx = fy。但工业相机或手机广角镜头可能存在非正方形像素,需分别标定。

内参矩阵将归一化坐标 (x, y) 转换为像素坐标 (u, v):

[ u ]   [ fx   0    cx ] [ x ]
[ v ] = [ 0    fy   cy ] [ y ]
[ 1 ]   [ 0     0     1  ] [ 1 ]

展开后得到:

u = fx * x + cx
v = fy * y + cy

2.3 外参矩阵(Extrinsic Matrix)

外参矩阵 [R | t] 描述了世界坐标系到相机坐标系的刚体变换,包含旋转矩阵 R(3×3)和平移向量 t(3×1)。

Xcam = R * Xworld + t

在齐次坐标下可写为:

[ Xcam ]   [ R   t ] [ Xworld ]
[ Ycam ] = [       ] [ Yworld ]
[ Zcam ]   [ 0   1 ] [ Zworld ]
[  1   ]             [   1   ]
分量 维度 自由度 物理含义
旋转矩阵 R 3×3 3(欧拉角 / 轴角) 世界坐标系绕相机坐标系的三个轴向旋转
平移向量 t 3×1 3 世界坐标系原点在相机坐标系下的位置
常见误区: 外参矩阵的旋转部分必须是正交矩阵(RTR = I,det(R) = +1)。标定结果中若 R 不满足正交性,说明标定过程存在数值误差或数据异常。

2.4 畸变模型(Distortion Model)

实际镜头并非理想针孔,光线通过透镜时会发生弯曲,导致图像变形。畸变主要分为径向畸变和切向畸变两类。

2.4.1 径向畸变(Radial Distortion)

径向畸变由透镜形状的非理想性引起,表现为图像点沿径向方向向内(桶形畸变)或向外(枕形畸变)偏移。常用多项式模型描述:

xcorrected = x * (1 + k1r² + k2r⁴ + k3r⁶)
ycorrected = y * (1 + k1r² + k2r⁴ + k3r⁶)

其中 r² = x² + y²,k1、k2、k3 为径向畸变系数。对于普通镜头,通常只使用 k1、k2;广角或鱼眼镜头需要 k3。

2.4.2 切向畸变(Tangential Distortion)

切向畸变由镜头与成像平面不平行(装配误差)引起,导致图像点沿切线方向偏移:

xcorrected = x + [2p1xy + p2(r² + 2x²)]
ycorrected = y + [p1(r² + 2y²) + 2p2xy]

其中 p1、p2 为切向畸变系数。

畸变类型对比示意图 畸变类型对比示意图 理想图像 桶形畸变(负径向) 枕形畸变(正径向) 径向畸变使直线变弯曲,切向畸变使图像产生梯形变形;标定时通常联合估计 5 个畸变系数 (k₁, k₂, k₃, p₁, p₂)

2.5 完整投影方程

综合内参、外参和畸变,一个三维世界点投影到像素坐标的完整流程如下:

  1. 世界 → 相机: Xcam = R · Xworld + t
  2. 归一化投影: x = Xcam / Zcam, y = Ycam / Zcam
  3. 畸变校正: 对 (x, y) 应用径向 + 切向畸变模型,得到 (xd, yd)
  4. 像素映射: u = fx · xd + cx, v = fy · yd + cy
标定目标: 通过已知 3D-2D 对应点对,联合优化内参矩阵 K、畸变系数 (k₁, k₂, k₃, p₁, p₂) 以及每张图像的外参 [R | t],使重投影误差最小化。

2.6 参数汇总表

参数类别 参数符号 数量 是否随图像变化
内参 fx, fy, cx, cy 4 否(同一相机固定)
径向畸变 k1, k2, k3 3 否(同一相机固定)
切向畸变 p1, p2 2 否(同一相机固定)
外参(每张图像) R (3×3), t (3×1) 6 是(每张图像不同)