2. 相机模型与坐标系基础
在 VisionPro 多相机标定与同步采集的工程实践中,标定算法真正求解的并不是“相机看到什么”,而是“空间中的同一个物理点,如何被不同相机各自投影到自己的像素坐标上”。要理解这一点,必须先建立一套完整的坐标变换链条:世界坐标系 → 相机坐标系 → 图像物理坐标系 → 像素坐标系。针孔模型描述的是这条链条的几何投影关系,畸变模型则描述真实镜头对这条理想链条的偏离。本节把这条链条拆开讲清楚,并给出可直接用于 VisionPro 标定配置的参数含义。
一、四个坐标系及其定义
世界坐标系(World):标定板、机器人基座或工件坐标系所在的参考系,单位通常为毫米。多相机标定的核心目标之一,就是求出每个相机相对于同一个世界坐标系的外参。VisionPro 中通常把标定板坐标系或机器人末端坐标系定义为世界系。
相机坐标系(Camera):以相机光心为原点,Z 轴沿光轴指向被摄物,X 轴向右、Y 轴向下(VisionPro/Cognex 常用约定)。相机坐标系下的点记为 (Xc, Yc, Zc)。
图像物理坐标系(Image):位于成像平面上的二维坐标系,原点在光轴与成像平面的交点(主点),单位为毫米,记为 (x, y)。
像素坐标系(Pixel):以图像左上角为原点,单位为像素,记为 (u, v)。VisionPro 的 CogFindCircle、CogCalibCheckerboard 等工具输出的都是像素坐标。
二、针孔模型:从世界到像素的完整变换
针孔模型把相机简化为一个光心加一个成像平面,空间点 P 与光心连线交成像平面于像点。整条变换链可写成三步:
- 刚体变换(外参):世界点 Pw 经旋转矩阵 R 与平移向量 t 变换到相机坐标系,Pc = R·Pw + t。R、t 即外参,共 6 个自由度。
- 透视投影(内参):相机点投影到图像物理坐标,x = f·Xc/Zc,y = f·Yc/Zc,f 为焦距。
- 像素缩放与平移:u = x/dx + u0,v = y/dy + v0,dx、dy 为单个像素在 X、Y 方向的物理尺寸,(u0, v0) 为主点像素坐标。
把三步合并为齐次矩阵形式,就是标定中反复出现的投影矩阵:
s·[u, v, 1]ᵀ = K · [R | t] · [Xw, Yw, Zw, 1]ᵀ
K = [ fx 0 u0 ]
[ 0 fy v0 ]
[ 0 0 1 ]
fx = f/dx, fy = f/dy (像素单位焦距)
K 称为内参矩阵,包含 fx、fy、u0、v0 四个参数;[R|t] 为外参矩阵。VisionPro 标定完成后,CogCalibCheckerboard 工具会输出这些参数,其中焦距以像素为单位给出,便于直接参与投影计算。
三、畸变模型:径向与切向
真实镜头不满足理想针孔假设,主要畸变有两类:
- 径向畸变:由镜头曲率引起,表现为桶形或枕形。用 k1、k2、k3 描述,归一化坐标修正为 x_d = x(1 + k1r² + k2r⁴ + k3r⁶),y 同理,r² = x² + y²。
- 切向畸变:由镜头与成像面不平行引起,用 p1、p2 描述,x_d = x + 2p1xy + p2(r² + 2x²)。
VisionPro 标定工具默认求解 k1、k2、p1、p2,高阶 k3 在广角镜头场景下才启用。畸变系数与内参一起构成完整的相机模型。多相机标定时,若各相机镜头畸变差异大,必须分别标定,不能共用一套畸变参数。
四、多相机场景下的坐标链条
单相机标定只解决“世界→该相机像素”的映射。多相机同步采集时,每个相机都有自己的 K、畸变系数和 [R|t],但它们共享同一个世界坐标系。因此,把相机 A 的像素点转换到相机 B 的像素点,需要经过:A 像素 → A 相机系 → 世界系 → B 相机系 → B 像素。这条链条正是多相机手眼标定、立体匹配和跨相机目标关联的基础。
五、VisionPro 中的参数落地与检查
在 VisionPro 里,CogCalibCheckerboard 工具完成标定后会输出一个 Calibration 对象,其中包含内参、畸变系数和外参。实际配置时重点关注三件事:
| 参数 | 含义 | 典型检查 |
|---|---|---|
| fx, fy | 像素单位焦距 | 与镜头标称焦距、像元尺寸换算是否一致 |
| u0, v0 | 主点像素坐标 | 应接近图像中心,偏差过大说明标定板覆盖不均 |
| k1, k2, p1, p2 | 畸变系数 | 反投影 RMS 误差 < 0.1 像素 |
| R, t | 外参 | 多相机应统一到同一世界系,t 的量级与安装距离吻合 |
一个常见的实操判断:把标定板放在视场边缘,用标定结果把角点像素反投影回世界坐标,再与标定板实际尺寸比较。若边缘处误差明显大于中心,说明畸变模型阶数不足或标定板边缘姿态样本太少;若整体偏移一致,则更可能是外参或世界系定义问题。这个检查比只看 RMS 数值更能暴露多相机标定中的系统性问题。
理解这条变换链后,后续的多相机同步采集、手眼标定和三维重建,本质上都是在不同环节上求解或使用 K、畸变系数与 [R|t]。把每个坐标系的定义、单位和方向固定下来,是整门课程后续所有标定工作的前提。