3. 图像采集与相机标定基础

在 VisionPro 的机器人定位与引导项目中,图像采集与相机标定是整条视觉链路的起点。相机模型决定了三维世界如何投影到二维图像,镜头选型决定了视场、精度与畸变水平,标定板与 Calibration 工具则把像素坐标与物理坐标、机器人坐标统一到同一参照系。若这一层存在偏差,后续的定位、抓取和引导都会系统性偏移,且很难通过调参弥补。

一、相机模型:从世界坐标到像素坐标

VisionPro 中常用的相机模型是针孔模型加径向畸变。其核心关系可写成:

s·[u, v, 1]ᵀ = K · [R | t] · [Xw, Yw, Zw, 1]ᵀ
K = [[fx, 0, cx],
     [0, fy, cy],
     [0,  0,  1]]

其中 (Xw, Yw, Zw) 是世界坐标,(u, v) 是像素坐标,K 为内参矩阵,fx、fy 为以像素为单位的焦距,cx、cy 为主点。R、t 为外参,描述相机相对世界坐标系的旋转和平移。实际镜头还会引入径向畸变 k1、k2 和切向畸变 p1、p2,VisionPro 在标定过程中会一并求解。

需要特别说明坐标系约定:本节统一采用右手坐标系,Z 轴指向相机前方,图像原点位于左上角,u 向右、v 向下。后续所有标定、手眼关系和机器人引导均沿用该约定,切换参照系时必须显式说明。

二、镜头选型:视场、精度与工作距离的匹配

镜头选型不是“选一个能看清的镜头”,而是根据视场 FOV、工作距离 WD、传感器尺寸和所需精度反推焦距。常用估算公式为:

f = (WD × 传感器尺寸) / FOV

例如,某工位需要覆盖 200 mm × 150 mm 的视场,工作距离约 400 mm,选用 1/1.8″ 传感器,其靶面宽约 7.2 mm、高约 5.4 mm。按宽度计算:f = (400 × 7.2) / 200 = 14.4 mm,因此可选 12 mm 或 16 mm 定焦镜头,再通过实际工作距离微调。若要求检测 0.1 mm 的缺陷,则像素分辨率至少应达到 FOV / 精度 ≈ 200 / 0.1 = 2000 像素,即相机横向分辨率不低于 2000 px,通常还要留 2~3 倍余量。

除焦距外,还需关注景深、畸变和光圈。景深不足会导致高低工件不能同时清晰;畸变过大会让标定残差升高;光圈过大会降低景深,过小则可能引入衍射模糊。实际选型时,应把“视场够、精度够、景深够、畸变可控”作为四项基本判据。

三、标定板使用:从采集到残差判断

VisionPro 常用棋盘格或圆点标定板。棋盘格角点定位精度高,适合大多数面阵相机;圆点板在背光或低对比度场景下更稳定。标定板使用要点如下:

  • 标定板平面应覆盖图像约 60%~80% 的区域,避免只占中心一小块。
  • 至少采集 10~15 幅不同姿态图像,包含平移、旋转和倾斜,倾斜角建议在 ±30° 以内。
  • 每幅图像中棋盘格应完整可见,角点清晰,避免运动模糊和过曝。
  • 标定板与相机之间保持固定焦距,标定过程中不得变焦或改变光圈。

采集完成后,VisionPro Calibration 工具会输出重投影误差(Reprojection Error)。一般要求平均误差小于 0.1~0.2 像素,最大误差不超过 0.5 像素。若误差偏大,优先检查角点提取是否准确、标定板是否平整、图像是否存在畸变未覆盖区域,而不是直接接受结果。

四、VisionPro Calibration 工具操作流程

在 VisionPro 中,标定通常通过 Calibration 工具或 CogCalibCheckerboard 工具完成。典型操作如下:

  1. 新建 Calibration 工具,选择标定类型:相机标定、手眼标定或机器人引导标定。
  2. 导入或采集标定图像,设置标定板类型、方格尺寸和行列数。例如方格尺寸 5 mm,行列数 9×7。
  3. 运行角点提取,检查每幅图的角点是否完整、顺序是否正确。
  4. 执行标定计算,查看内参、畸变系数和重投影误差。
  5. 保存标定文件,并在后续定位工具中引用该标定结果。

若涉及机器人引导,还需进行手眼标定:把标定板固定在机器人末端或工作台上,让机器人带动相机或标定板走多个位姿,同时记录机器人位姿和图像,求解相机与机器人基座之间的变换矩阵。手眼标定对位姿数量和分布敏感,通常建议不少于 10 个位姿,且位姿在空间中尽量分散。

标定不是一次性的工作。镜头松动、相机碰撞、工作距离改变或温度变化明显时,都应重新标定。建议在项目现场保留一份标定记录,包括日期、镜头型号、工作距离、标定板规格和重投影误差。

五、参数关系与结果判断

下面这张图把相机模型、镜头选型、标定板采集和 Calibration 工具输出串成一条信号链,便于理解各参数之间的因果关系。

相机标定信号链与参数关系 世界坐标 Xw, Yw, Zw 右手系 / Z 向前 相机模型 K 内参 / R,t 外参 k1,k2,p1,p2 畸变 镜头选型 f = WD×靶面 / FOV 景深 / 畸变 / 光圈 标定板采集 棋盘格 / 圆点板 10~15 幅多姿态 VisionPro Calibration 工具 角点提取 → 内参/畸变求解 → 重投影误差 手眼标定:相机 ↔ 机器人基座变换 输出标定文件供定位工具引用 标定结果 fx, fy, cx, cy k1, k2, p1, p2 精度判断 平均重投影误差 < 0.2 px 最大误差 < 0.5 px 异常处理 角点缺失 / 板不平 畸变未覆盖 / 重新采集 示例参数:FOV 200×150 mm,WD 400 mm,靶面 7.2×5.4 mm,f≈14.4 mm,标定板 5 mm 方格 9×7

从图中可以看到,镜头选型决定了图像质量和视场覆盖,相机模型决定了坐标变换关系,标定板采集提供约束数据,Calibration 工具输出内参、畸变和手眼关系,最终由重投影误差判断标定是否可用。若误差超标,应回到采集环节检查角点质量和姿态分布,而不是直接进入机器人引导。

六、实操检查清单

检查项推荐值 / 判断依据异常处理
视场覆盖标定板占图像 60%~80%调整工作距离或焦距
标定图像数量10~15 幅,多姿态补充倾斜和旋转姿态
重投影误差平均 < 0.2 px,最大 < 0.5 px检查角点、板平整度、畸变覆盖
手眼标定位姿≥ 10 个,空间分散增加位姿,避免共面
标定文件引用定位工具正确加载确认路径和版本一致
标定完成后不要随意移动相机、镜头或标定板。若必须调整,应重新标定并记录新的重投影误差。手眼标定尤其敏感,机器人末端或相机安装位置的微小变化都可能导致引导偏移。

掌握相机模型、镜头选型、标定板使用和 VisionPro Calibration 工具操作,是后续机器人定位与引导能够稳定工作的前提。实际项目中,建议把标定参数、误差记录和复标日期纳入项目文档,形成可追溯的标定档案。