3、相机成像模型:针孔模型、内参矩阵、畸变模型(径向与切向)、外参矩阵与坐标系定义

在视觉引导机械臂系统中,相机是感知环境的核心传感器,而相机成像模型则是连接二维图像坐标与三维空间坐标的数学桥梁。无论是进行目标定位、手眼标定还是抓取姿态计算,都必须深刻理解相机如何将三维世界投影到二维像素平面。本章将系统拆解针孔模型、内参矩阵、畸变模型以及外参矩阵与坐标系定义,帮助读者建立从像素到空间点的完整数学映射链路。

相机成像模型与坐标系变换链路 世界坐标系 (Xw, Yw, Zw) 相机坐标系 (Xc, Yc, Zc) 图像坐标系 (x, y) 物理单位 像素坐标系 (u, v) 像素单位 外参 R, t 投影 f 内参 fx, fy, cx, cy 畸变模型(非线性修正) 径向畸变:k1, k2, k3(桶形/枕形) 切向畸变:p1, p2(镜头与传感器不平行) 修正 完整映射关系 P(Xw,Yw,Zw) → 外参(R,t) → P(Xc,Yc,Zc) → 针孔投影 → P(x,y) → 畸变修正 → P(x',y') → 内参(fx,fy,cx,cy) → P(u,v) 标定目标:求解内参、畸变系数、外参,实现像素↔空间坐标互转

3.1 针孔模型:从三维空间到二维平面的理想投影

针孔模型是相机成像的最基础数学模型,它描述了三维空间中的点如何通过光心投影到成像平面上。该模型假设光线沿直线传播,且所有光线均通过一个无限小的针孔(光心)。在实际相机中,透镜系统等效于针孔,但引入了畸变,因此针孔模型是后续畸变修正的基础。

3.1.1 核心原理与数学表达

设空间点 P(Xc, Yc, Zc) 在相机坐标系下,其投影到成像平面的坐标为 (x, y),根据相似三角形原理可得:

x = f * Xc / Zc
y = f * Yc / Zc

其中 f 为焦距(物理单位,如毫米)。该公式表明,成像深度 Zc 与投影坐标成反比,即物体越远,成像越小。这是透视投影的本质特征,也是单目相机无法直接获取深度信息的原因。

关键理解:针孔模型是线性模型,它假设镜头无畸变、传感器与光轴严格垂直。实际系统中,由于镜头制造工艺和装配误差,成像会偏离理想位置,因此需要引入畸变模型进行修正。

3.1.2 从物理坐标到像素坐标

成像平面上的物理坐标 (x, y) 需要转换为像素坐标 (u, v)。设传感器每个像素的物理尺寸为 dx × dy(单位:mm/pixel),主点(光轴与成像平面的交点)在像素坐标系中的坐标为 (cx, cy),则转换关系为:

u = x / dx + cx
v = y / dy + cy

将投影公式代入,并令 fx = f/dx,fy = f/dy,得到:

u = fx * Xc / Zc + cx
v = fy * Yc / Zc + cy

这里 fx、fy 即为内参矩阵中的等效焦距(单位:像素),它们综合了物理焦距和像素尺寸的影响。

3.1.3 内参矩阵的完整形式

将上述关系写成齐次坐标矩阵形式,得到内参矩阵 K:

| u |   | fx  0  cx |   | Xc |
| v | = | 0   fy  cy | * | Yc |
| 1 |   | 0   0   1  |   | Zc |

内参矩阵 K 包含 4 个独立参数:fx、fy、cx、cy。fx 和 fy 通常不相等,因为像素可能不是正方形;cx 和 cy 是主点坐标,理想情况下位于图像中心,但实际会有偏移。内参矩阵是相机固有的属性,与相机位置无关,标定一次后可长期使用。

参数 含义 单位 典型值范围
fx x方向等效焦距 像素 500-3000(取决于分辨率与镜头)
fy y方向等效焦距 像素 500-3000
cx 主点x坐标 像素 约为图像宽度的一半
cy 主点y坐标 像素 约为图像高度的一半

3.2 畸变模型:径向畸变与切向畸变的数学修正

实际镜头并非完美针孔,光线通过透镜时会发生折射,导致成像位置偏离理想坐标。畸变主要分为径向畸变和切向畸变两类,它们共同构成了 OpenCV 等视觉库中标准的畸变模型。

3.2.1 径向畸变(Radial Distortion)

径向畸变源于透镜形状的非理想性,表现为图像点沿径向方向向内或向外偏移。靠近图像边缘时畸变更加明显。径向畸变可用多项式模型描述:

x_distorted = x * (1 + k1*r² + k2*r⁴ + k3*r⁶)
y_distorted = y * (1 + k1*r² + k2*r⁴ + k3*r⁶)

其中 r² = x² + y² 是像素点到主点的距离平方,k1、k2、k3 为径向畸变系数。k1 主导畸变,k2 修正边缘区域,k3 通常用于高畸变广角镜头。当 k1 > 0 时产生枕形畸变,k1 < 0 时产生桶形畸变。

3.2.2 切向畸变(Tangential Distortion)

切向畸变源于镜头与传感器平面不平行(装配误差),导致图像点在切线方向发生偏移。其数学模型为:

x_distorted = x + [2*p1*x*y + p2*(r² + 2*x²)]
y_distorted = y + [p1*(r² + 2*y²) + 2*p2*x*y]

其中 p1、p2 为切向畸变系数。切向畸变通常较小,但在高精度视觉引导中不可忽略。

3.2.3 完整畸变模型与标定参数

综合径向和切向畸变,完整的畸变模型包含 5 个参数:k1、k2、p1、p2、k3(有时 k3 可省略)。标定过程就是通过拍摄多幅已知图案(如棋盘格)的图像,优化求解这些参数以及内参矩阵。OpenCV 的 calibrateCamera() 函数可自动完成这一过程。

工程注意:畸变系数与内参矩阵是耦合的,标定时必须同时优化。若只标定内参而忽略畸变,在图像边缘区域会产生显著误差,直接影响目标定位精度。对于机械臂抓取场景,建议使用高分辨率标定板并拍摄 15-20 幅不同位姿的图像。

3.3 外参矩阵与坐标系定义:连接相机与世界

外参矩阵描述了相机坐标系相对于世界坐标系的位姿关系,是视觉引导中坐标变换的核心。在机械臂系统中,世界坐标系通常定义在机械臂基座或工作台面上。

3.3.1 四大坐标系的定义与关系

  • 世界坐标系 (World):用户自定义的参考坐标系,用于描述环境中物体的位置,单位通常为毫米。
  • 相机坐标系 (Camera):以相机光心为原点,Zc 轴沿光轴方向,Xc 轴向右,Yc 轴向下(符合图像坐标系习惯)。
  • 图像坐标系 (Image):以主点为原点,x、y 轴分别与像素坐标系的 u、v 轴平行,单位是物理长度(mm)。
  • 像素坐标系 (Pixel):以图像左上角为原点,u 轴向右,v 轴向下,单位是像素。

3.3.2 外参矩阵的数学表达

外参矩阵由旋转矩阵 R(3×3)和平移向量 t(3×1)组成,将世界坐标点 Pw 变换到相机坐标系:

| Xc |   | R11 R12 R13 |   | Xw |   | tx |
| Yc | = | R21 R22 R23 | * | Yw | + | ty |
| Zc |   | R31 R32 R33 |   | Zw |   | tz |

写成齐次形式:

| Xc |   | R  t |   | Xw |
| Yc | = | 0  1 | * | Yw |
| Zc |   |      |   | Zw |
| 1  |   |      |   | 1  |

外参矩阵 [R|t] 共 6 个自由度(3 个旋转角 + 3 个平移量),它随相机安装位置和方向的变化而改变。在眼在手上(Eye-in-Hand)或眼在手外(Eye-to-Hand)系统中,外参标定是手眼标定的核心任务。

3.3.3 完整映射链路

将外参、针孔投影、畸变修正、内参变换串联起来,得到从世界坐标到像素坐标的完整映射:

Pw → [R|t] → Pc → 针孔投影 → (x,y) → 畸变修正 → (x',y') → 内参K → (u,v)

反向过程(像素到世界坐标)需要已知深度 Zc,通常通过深度相机、结构光或机械臂末端位姿约束来获取。

3.4 案例拆解:视觉引导抓取中的坐标变换实战

以典型的“眼在手外”视觉引导抓取场景为例,说明成像模型的实际应用流程。

3.4.1 场景与约束

某装配线上,机械臂需要抓取传送带上的工件。相机固定安装在机械臂上方约 800mm 处,视野范围 400mm×300mm,图像分辨率为 1920×1080。要求定位精度 ±1mm,抓取节拍 2 秒/件。

3.4.2 标定与参数获取

  1. 内参标定:使用 12×9 棋盘格(方格边长 25mm),拍摄 18 幅不同位姿图像,通过 OpenCV 标定得到内参矩阵和畸变系数。
  2. 手眼标定:采用 Eye-to-Hand 模式,利用 Tsai-Lenz 方法求解相机到机械臂基座的变换矩阵。
  3. 结果验证:对标定结果进行重投影误差验证,平均误差 0.15 像素,满足精度要求。

3.4.3 实际抓取流程

1. 相机采集图像,通过图像处理识别工件中心像素坐标 (u, v)
2. 利用内参和畸变系数,将 (u, v) 反投影到归一化平面,得到 (x', y')
3. 结合深度信息(通过已知工件高度或深度相机),计算相机坐标系下的 Pc
4. 通过手眼标定得到的外参矩阵,将 Pc 变换到机械臂基座坐标系
5. 机械臂根据目标位置和姿态规划抓取路径

3.4.4 风险与复盘

实际运行中发现,当工件位于视野边缘时,定位误差从 0.5mm 增大到 1.8mm。分析原因是畸变修正残差在边缘区域放大。解决方案:① 优化标定数据,增加边缘区域的标定板位姿;② 在软件中限制抓取区域,避开视野边缘 10% 的区域;③ 采用二次多项式拟合误差补偿模型。最终将全视野定位精度控制在 ±0.8mm 以内。

3.5 常见误区与总结复盘

误区 后果 正确做法
忽略畸变模型,直接用线性内参 边缘区域定位误差可达 5-10 像素 必须标定并应用畸变修正
内参标定后长期不更新 镜头松动或温度变化导致参数漂移 定期(如每季度)重新标定
混淆图像坐标系与像素坐标系 坐标变换错误,抓取位置偏移 明确各坐标系定义,统一使用齐次坐标
外参标定精度不足 手眼系统整体精度下降 使用高精度标定板,增加采样位姿数量
工程经验:在视觉引导系统中,标定精度决定了系统上限。建议在项目初期就建立完善的标定流程和验证标准,包括重投影误差、三维重建误差、抓取成功率等指标。同时,保存所有标定参数和原始图像,便于问题回溯和参数调优。

本章系统梳理了相机成像模型的完整链路:从针孔模型的理想投影,到畸变模型的非线性修正,再到外参矩阵的坐标系变换。理解这些数学原理是进行相机标定、目标定位和抓取姿态计算的基础。在实际工程中,需要根据具体应用场景选择合适的标定方法,并通过充分的实验验证确保系统精度和稳定性。