2. 相机成像模型:针孔相机模型原理、内参矩阵、畸变模型
相机成像模型是3D视觉的数学基石,它将三维世界中的点映射到二维图像平面上。本章从最经典的针孔相机模型出发,逐步拆解内参矩阵、外参矩阵和畸变模型,为后续多相机联合标定建立统一的数学语言。
2.1 针孔相机模型原理
针孔相机模型(Pinhole Camera Model)是几何光学中最简化的成像抽象。它假设光线沿直线传播,穿过一个无限小的针孔,在后方成像平面上形成倒立的实像。实际应用中,我们通常将成像平面“虚拟”到针孔前方(归一化平面),从而得到正立的数学等价模型。
设三维空间点 P = (X, Y, Z) 在相机坐标系下的坐标为 (Xc, Yc, Zc),其投影到归一化成像平面上的坐标为:
x = Xc / Zc
y = Yc / Zc
这一过程将三维坐标压缩为二维归一化坐标,丢失了深度信息 Zc,但保留了方向。后续通过内参矩阵将归一化坐标转换为像素坐标。
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 | 光轴与成像平面交点的像素行坐标 | 像素 |
内参矩阵将归一化坐标 (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 | 世界坐标系原点在相机坐标系下的位置 |
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 为切向畸变系数。
2.5 完整投影方程
综合内参、外参和畸变,一个三维世界点投影到像素坐标的完整流程如下:
- 世界 → 相机: Xcam = R · Xworld + t
- 归一化投影: x = Xcam / Zcam, y = Ycam / Zcam
- 畸变校正: 对 (x, y) 应用径向 + 切向畸变模型,得到 (xd, yd)
- 像素映射: u = fx · xd + cx, v = fy · yd + cy
2.6 参数汇总表
| 参数类别 | 参数符号 | 数量 | 是否随图像变化 |
|---|---|---|---|
| 内参 | fx, fy, cx, cy | 4 | 否(同一相机固定) |
| 径向畸变 | k1, k2, k3 | 3 | 否(同一相机固定) |
| 切向畸变 | p1, p2 | 2 | 否(同一相机固定) |
| 外参(每张图像) | R (3×3), t (3×1) | 6 | 是(每张图像不同) |