视觉系统基础:相机成像模型与四大坐标系

机器人视觉误差调试的前提,是透彻理解视觉系统如何将三维物理世界映射为二维图像数据。绝大多数调试场景——无论是坐标偏差、镜头畸变还是光照变化——其根源都可以追溯到坐标系转换关系、成像模型假设与实际物理过程的偏离。本节将系统梳理相机成像的针孔模型、四大坐标系的定义与转换链路,并给出工程调试中常用的参数矩阵与标定思路。

相机成像与坐标系转换链路 世界坐标系 (Xw, Yw, Zw) 机器人基座/工作台基准 相机坐标系 (Xc, Yc, Zc) 光心为原点,Zc沿光轴 图像坐标系 (x, y) 物理单位(mm),光轴交点为主点 像素坐标系 (u, v) 离散整数,单位pixel 外参 R,t 投影 f 离散化 dx,dy 内参矩阵 K(3×3) [fx s cx] [ 0 fy cy] 畸变参数(5项) k1, k2, p1, p2, k3 外参矩阵 [R|t] 3×4,世界→相机 畸变校正 径向+切向 完整链路:世界坐标 → 相机坐标 → 归一化平面 → 畸变校正 → 像素坐标

2.1 针孔成像模型:理想投影的数学描述

针孔模型是相机成像的最基本近似。它假设光线沿直线传播,经过相机光心(针孔)后在像平面上形成倒立的实像。在实际工程中,我们通常将像平面虚拟到光心前方,形成正立虚像,以便于数学表达。设空间点 P(Xc, Yc, Zc) 在相机坐标系下的坐标为已知,其投影到归一化平面(Zc = 1)上的坐标为:

x' = Xc / Zc
y' = Yc / Zc

随后通过内参矩阵将归一化坐标映射到像素坐标:

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

其中 fx = f / dx,fy = f / dy,f 为焦距(mm),dx、dy 分别为单个像素在 x、y 方向的物理尺寸(mm/pixel)。cx、cy 为主点(光轴与像平面交点)的像素坐标。fx、fy、cx、cy 以及畸变参数共同构成相机的内参,需要通过标定获得。

工程要点:针孔模型是理想化的线性模型。实际镜头存在畸变,尤其是广角镜头和短焦距镜头,径向畸变和切向畸变不可忽略。在视觉引导机器人抓取场景中,若忽略畸变校正,边缘区域的坐标偏差可达数十像素,对应实际空间误差可能超过 5mm。

2.2 四大坐标系的定义与物理含义

机器人视觉系统涉及四个层级递进的坐标系,理解每个坐标系的原点和单位是调试坐标偏差的前提。

坐标系 原点 单位 维度 典型用途
世界坐标系 (Xw, Yw, Zw) 用户自定义(如机器人基座、工作台角点) mm 或 m 3D 机器人运动规划、工件定位
相机坐标系 (Xc, Yc, Zc) 相机光心 mm 或 m 3D 描述物体相对相机的空间位置
图像坐标系 (x, y) 光轴与像平面交点(主点) mm 2D 物理单位下的投影位置
像素坐标系 (u, v) 图像左上角 pixel 2D 图像处理、特征提取

四个坐标系之间的转换关系构成完整的成像链路。世界坐标到相机坐标的变换属于刚体变换,包含旋转矩阵 R(3×3)和平移向量 t(3×1),统称为外参。相机坐标到像素坐标的变换由内参矩阵 K 决定。整体转换公式为:

Zc * [u, v, 1]^T = K * [R | t] * [Xw, Yw, Zw, 1]^T

该公式是视觉引导、手眼标定、三维重建等所有上层算法的基石。调试坐标偏差时,首先需要确认是外参(安装位置变动)还是内参(镜头松动、温度漂移)发生了变化。

2.3 坐标系转换的工程实现与标定流程

在实际机器人视觉系统中,坐标转换的精度直接决定抓取或装配的定位精度。标准的标定流程包括以下步骤:

  1. 棋盘格或圆点标定板准备:打印高精度标定板,粘贴在平面玻璃或铝板上,确保平整度。
  2. 采集多角度图像:在视场内不同位置、不同姿态下采集 15~20 张标定板图像,覆盖画面中心和边缘。
  3. 角点提取:使用 OpenCV 的 findChessboardCorners 或 findCirclesGrid 提取特征点。
  4. 内参标定:调用 calibrateCamera 计算内参矩阵 K 和畸变系数。
  5. 外参标定(手眼标定):若相机安装在机器人末端,需进行 eye-in-hand 标定;若相机固定安装,则进行 eye-to-hand 标定。常用方法为 AX=XB 求解。
  6. 重投影误差验证:计算所有角点的重投影误差,通常要求小于 0.1 pixel。
经验提醒:标定板不平整是导致标定精度下降的常见原因。建议使用陶瓷或玻璃基板,避免使用普通打印纸直接贴在弯曲表面上。另外,标定图像中应包含明显的离焦模糊,否则角点提取精度会下降。

2.4 案例拆解:坐标偏差从 8mm 降到 0.5mm 的调试过程

背景与约束:某汽车零部件装配线,使用固定安装的工业相机(500万像素,8mm 镜头)引导六轴机器人抓取放置于托盘上的金属壳体。要求定位精度 ±1mm。现场反馈抓取偏差约 8mm,且越靠近图像边缘偏差越大。

初始现象与关键数据:

  • 图像中心区域抓取偏差约 3mm,边缘区域偏差达 8mm。
  • 重投影误差 0.35 pixel,超出 0.1 pixel 的验收标准。
  • 相机安装高度 800mm,视野范围 600mm×450mm。

分析判断过程:边缘偏差大于中心,且重投影误差偏大,首先怀疑镜头畸变校正不充分。进一步检查发现,现场工程师在标定时只采集了 8 张图像,且全部集中在视野中心区域,导致边缘畸变参数估计不准。此外,相机镜头锁紧环松动,导致焦距发生微变。

实际操作步骤:

  1. 重新采集 20 张标定图像,覆盖整个视野,包括四角和边缘。
  2. 使用 OpenCV 重新标定,获得新的内参矩阵和畸变系数。
  3. 检查镜头锁紧环,重新固定后再次标定。
  4. 在图像处理管线中加入 undistort 步骤,对实时图像进行畸变校正。
  5. 重新进行手眼标定,更新外参矩阵。

结果对比:重投影误差从 0.35 pixel 降至 0.06 pixel;实际抓取测试中,中心区域偏差降至 0.3mm,边缘区域偏差降至 0.5mm,满足 ±1mm 的工艺要求。

风险与代价:重新标定耗时约 40 分钟,期间产线停机。后续为防止镜头松动,在镜头锁紧环处增加螺纹胶,并建立每周一次的标定校验制度。

复盘经验:标定质量直接决定视觉引导精度。标定图像的数量、姿态多样性、覆盖范围缺一不可。任何涉及镜头物理接触的操作(清洁、更换滤镜、锁紧环调整)后,都必须重新标定。

2.5 常见误区与总结复盘

高风险误区:
  • 忽略畸变校正:在广角镜头或大视野场景中,直接使用针孔模型会导致边缘误差急剧放大。
  • 内参外参混淆:相机安装位置变动后只重新标定内参,忘记更新外参,导致坐标转换错误。
  • 标定板不平整:使用弯曲或褶皱的标定板,引入系统性误差。
  • 忽略温度影响:工业现场温度变化会导致镜头焦距漂移,高精度场景需考虑恒温措施或定期复标。