2、成像基础:针孔相机模型、坐标系转换(世界、相机、图像、像素)、内参外参概念
工业视觉系统的核心任务是从二维图像中恢复或理解三维场景信息,而这一切的起点,是理解相机如何将三维世界投影为二维图像。针孔相机模型(Pinhole Camera Model)是这一过程的数学抽象,它忽略了镜头畸变、透镜厚度等物理细节,用最简单的几何关系描述了光的直线传播。在此基础上,世界坐标系、相机坐标系、图像坐标系与像素坐标系之间的转换,构成了视觉测量与标定的骨架。而内参(Intrinsics)与外参(Extrinsics)则是连接这些坐标系的“钥匙”——内参描述相机自身的投影属性,外参描述相机在空间中的位姿。本章将系统拆解这些基础概念,为后续畸变校正与标定方法奠定坚实的数学与物理基础。
上图展示了从三维世界到二维像素的完整链路。理解这条链路,是后续进行畸变校正、手眼标定、三维重建的前提。下面我们逐一拆解每个环节的数学本质与工程含义。
2.1 针孔相机模型:光的直线传播与透视投影
针孔相机模型是几何光学中最简化的成像模型。它假设光线从场景中的某一点出发,沿直线穿过一个无限小的“针孔”(即光心),在另一侧的成像平面上形成倒立的实像。在实际工程中,我们通常将成像平面“虚拟”到光心前方,以得到正立的图像,便于数学处理。
该模型的核心参数是焦距 f,即光心到成像平面的距离。设场景中某点 P 在相机坐标系下的坐标为 (Xc, Yc, Zc),其成像点 p 在图像坐标系下的坐标 (x, y) 满足:
x = f · (Xc / Zc)
y = f · (Yc / Zc)
这里 Zc 是点到光心的深度。这个简单的除法关系揭示了透视投影的本质:近大远小。物体离相机越远,其在成像平面上的投影越小。同时,该模型是线性的(在齐次坐标下),这为后续矩阵运算提供了极大便利。
2.2 四大坐标系的定义与转换关系
在视觉系统中,我们频繁地在四个坐标系之间切换。每个坐标系都有其独特的物理意义和单位。
| 坐标系 | 符号 | 原点/基准 | 单位 | 典型用途 |
|---|---|---|---|---|
| 世界坐标系 | (Xw, Yw, Zw) | 用户自定义(如工件台一角) | mm / m | 描述物体在物理空间中的位置 |
| 相机坐标系 | (Xc, Yc, Zc) | 光心(镜头中心) | mm | 描述物体相对于相机的方位与深度 |
| 图像坐标系 | (x, y) | 光轴与成像平面交点(主点) | mm | 物理成像平面上的连续坐标 |
| 像素坐标系 | (u, v) | 图像左上角 | pixel | 图像数组的行列索引 |
转换过程分为三步:
- 世界 → 相机(外参):通过旋转矩阵 R 和平移向量 t 将点从世界系变换到相机系。公式为:
[Xc, Yc, Zc]ᵀ = R · [Xw, Yw, Zw]ᵀ + t - 相机 → 图像(内参投影):利用针孔模型将三维点投影到二维图像平面:
x = f · Xc / Zc,y = f · Yc / Zc - 图像 → 像素(离散化):将物理坐标转换为像素索引,考虑像素尺寸和主点偏移:
u = x / dx + cx,v = y / dy + cy
其中 dx、dy 分别为每个像素在 x、y 方向上的物理尺寸(mm/pixel),cx、cy 为主点在像素坐标系中的坐标。
2.3 内参与外参:相机的“基因”与“姿态”
内参(Intrinsic Parameters) 描述了相机自身的投影属性,包括焦距 f、像素尺寸 dx/dy、主点坐标 (cx, cy) 以及畸变系数。内参矩阵 K 将相机坐标系下的三维点映射到像素坐标系:
K = [ fx 0 cx ]
[ 0 fy cy ]
[ 0 0 1 ]
其中 fx = f/dx,fy = f/dy,称为归一化焦距,单位是像素。fx 与 fy 的差异反映了像素在 x、y 方向上的尺寸不一致(常见于 CMOS 传感器)。
外参(Extrinsic Parameters) 描述了相机在世界坐标系中的位置和朝向,由旋转矩阵 R(3×3)和平移向量 t(3×1)组成。外参将世界坐标转换为相机坐标,是连接“客观世界”与“相机视角”的桥梁。
2.4 案例拆解:从标定板到像素坐标的完整计算
假设我们使用一个 10mm×10mm 的棋盘格标定板,方格边长为 1mm。标定板放置在世界坐标系的原点平面上(Zw=0)。相机分辨率为 1280×1024,主点 (cx, cy) = (640, 512),焦距 f = 8mm,像素尺寸 dx = dy = 0.004mm/pixel。
目标: 计算标定板上一个角点 P(世界坐标 (2mm, 3mm, 0))在像素坐标系中的位置。
步骤 1:外参变换。假设相机外参为:R = 单位矩阵(相机光轴垂直于标定板),t = [0, 0, 100mm](相机光心位于标定板正上方 100mm 处)。则相机坐标:
Xc = 2mm, Yc = 3mm, Zc = 100mm
步骤 2:内参投影。计算归一化焦距:
fx = f / dx = 8 / 0.004 = 2000 pixel
fy = f / dy = 2000 pixel
投影到图像坐标系:
x = fx · (Xc / Zc) = 2000 × (2 / 100) = 40 mm
y = fy · (Yc / Zc) = 2000 × (3 / 100) = 60 mm
步骤 3:像素坐标转换:
u = x / dx + cx = 40 / 0.004 + 640 = 10000 + 640 = 10640 pixel
v = y / dy + cy = 60 / 0.004 + 512 = 15000 + 512 = 15512 pixel
显然,这个结果超出了图像分辨率范围,说明该点不在视场内。这个计算过程展示了如何从三维坐标推导像素位置,也揭示了视场角(FOV)的限制。
2.5 常见误区与工程要点
- 误区一:忽略主点偏移。 很多入门者假设主点就在图像中心,但实际传感器安装、镜头装配误差会导致主点偏移数十像素。高精度测量必须将 cx、cy 作为待标定参数。
- 误区二:混淆内参中的 fx 与 f。 fx 是归一化焦距(像素单位),f 是物理焦距(毫米单位)。两者通过像素尺寸 dx 联系。在标定结果中,我们通常直接得到 fx、fy。
- 误区三:外参的旋转矩阵 R 必须满足正交约束。 R 是正交矩阵(RᵀR = I,det(R) = 1)。在优化过程中需使用 Rodrigues 变换或四元数表示以避免参数冗余。
- 误区四:忽略畸变对坐标转换的影响。 针孔模型是理想情况,实际镜头存在径向畸变(桶形/枕形)和切向畸变。在标定和校正时,必须先对归一化坐标进行畸变补偿,再进行像素坐标转换。
本章建立的坐标系转换框架是后续所有标定与校正算法的数学基础。无论是张正友标定法、Tsai 两步法,还是基于深度学习的方法,本质上都是在求解内参矩阵 K、畸变系数以及外参 [R|t] 的最优估计。理解这些概念,将帮助你在实际项目中快速定位误差来源,并选择合适的标定策略。