3. 相机成像模型

相机成像模型是连接三维物理世界与二维像素坐标的数学桥梁。在工业机器人手眼标定中,无论是眼在手上(Eye-in-Hand)还是眼在手外(Eye-to-Hand)的布局,最终都需要通过相机成像模型将像素坐标转换为机器人基坐标系下的空间坐标。如果对成像模型理解不透彻,后续的标定工作将如同在流沙上建塔——即便算法再精妙,也难以获得稳定的精度。本章将系统拆解针孔模型、内参矩阵、畸变模型、外参矩阵与投影方程,并结合工业现场的实际案例,帮助您建立完整的视觉几何认知框架。

相机成像模型总览:从三维世界到像素坐标 世界坐标系 (Xw, Yw, Zw) 机器人基座/标定板 外参矩阵 [R | t] 刚体变换(6自由度) 相机坐标系 (Xc, Yc, Zc) 光心为原点,Z轴朝前 针孔投影 透视除法 x = f·Xc/Zc 畸变模型 径向 + 切向 k1,k2,k3,p1,p2 内参矩阵 K fx, fy, cx, cy 像素坐标映射 像素坐标系 (u, v) 图像左上角为原点 R,t 刚体变换 透视投影 畸变校正 K矩阵 像素映射 完整投影方程(无畸变理想情况): Zc · [u, v, 1]ᵀ = K · [R | t] · [Xw, Yw, Zw, 1]ᵀ 内参矩阵 K 展开: K = [[fx, 0, cx], [0, fy, cy], [0, 0, 1]] 其中 fx = f/dx, fy = f/dy,dx/dy 为像元尺寸,cx/cy 为主点偏移

上图清晰地展示了从世界坐标系到像素坐标系的完整链路。整个成像过程可以分解为四个关键步骤:首先通过外参矩阵(R和t)将世界坐标转换为相机坐标;然后利用针孔模型的透视投影关系,将三维相机坐标投影到归一化平面;接着通过内参矩阵K将归一化坐标映射到像素坐标;最后,在实际镜头中还需要考虑畸变模型对理想坐标的修正。下面我们逐一深入剖析每个环节。

3.1 针孔模型:理想化的透视投影

针孔模型是相机成像的最基本近似。它假设光线通过一个无限小的孔(光心)投射到成像平面上,形成倒立的实像。在实际应用中,我们通常将成像平面虚拟到光心前方,以简化数学表达。设空间中一点P在相机坐标系下的坐标为(Xc, Yc, Zc),其理想投影点p在成像平面上的坐标为(x, y),根据相似三角形原理,可以得到:

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

其中f为焦距(物理单位,如毫米)。这个公式揭示了透视投影的核心特征:物体距离相机越远(Zc越大),其在图像上的投影尺寸越小。在工业机器人应用中,这一关系直接决定了视觉引导的定位精度——当工件深度方向存在波动时,像素坐标的偏移量会随之变化。

核心要点:针孔模型是线性模型,它忽略了镜头畸变和制造误差。在实际标定中,我们通常先基于针孔模型建立初始参数,再通过畸变模型进行非线性修正。理解这一点有助于避免在标定过程中混淆线性与非线性误差的来源。

3.2 内参矩阵:从物理坐标到像素坐标

内参矩阵K描述了相机坐标系下的归一化坐标(x, y)与像素坐标(u, v)之间的仿射变换关系。其数学形式为:

K = [[fx, 0, cx],
     [0, fy, cy],
     [0,  0,  1]]

其中fx和fy分别是x和y方向上的等效焦距(单位:像素),它们等于物理焦距f除以对应方向的像元尺寸(dx, dy)。cx和cy是主点坐标,即光轴与成像平面的交点(通常接近图像中心,但受制造工艺影响会有偏移)。

在工业相机中,fx和fy的差异反映了像元是否为正方形。如果使用面阵相机且像元为正方形,则fx = fy;若使用线阵相机或特殊光学设计,则两者可能不同。主点偏移(cx, cy)在视觉引导中尤为重要——如果标定板放置位置偏离视场中心,主点误差会被放大,导致定位偏差。

参数 物理含义 典型值范围 对精度的影响
fx x方向等效焦距(像素) 500 ~ 5000 直接影响深度方向定位精度
fy y方向等效焦距(像素) 500 ~ 5000 与fx共同决定尺度一致性
cx 主点x坐标(像素) 图像宽度的一半 ± 20 偏移会导致全局系统性偏差
cy 主点y坐标(像素) 图像高度的一半 ± 20 偏移会导致全局系统性偏差

3.3 畸变模型:径向与切向畸变

实际镜头并非完美针孔,光线通过透镜时会发生折射,导致成像点偏离理想位置。畸变主要分为两类:径向畸变和切向畸变。

径向畸变源于透镜形状的非理想性,表现为图像点沿径向方向向内(桶形畸变)或向外(枕形畸变)偏移。其数学模型通常用泰勒级数展开的前三项表示:

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。

切向畸变源于透镜与成像平面不平行(装配误差),表现为图像点沿切线方向偏移。其模型为:

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

其中p1、p2为切向畸变系数。在工业机器人应用中,切向畸变通常较小(<0.1像素),但在高精度装配(如半导体封装)中不可忽略。

风险提示:畸变系数与内参之间存在耦合关系。在标定过程中,如果标定板图像数量不足或覆盖视场不全面,畸变系数可能被错误估计,进而污染内参矩阵的求解。建议至少采集15~20张不同位姿的标定板图像,并确保标定板覆盖视场的边缘和角落。

3.4 外参矩阵:相机与世界坐标系的桥梁

外参矩阵描述了相机坐标系与世界坐标系之间的刚体变换关系。它由旋转矩阵R(3×3)和平移向量t(3×1)组成,通常表示为[R|t](3×4矩阵)。在工业机器人手眼标定中,外参矩阵的含义取决于标定场景:

  • 眼在手外(Eye-to-Hand):外参矩阵表示相机坐标系与机器人基坐标系之间的变换,即相机固定安装,标定板安装在机器人末端。
  • 眼在手上(Eye-in-Hand):外参矩阵表示相机坐标系与机器人末端坐标系之间的变换,即相机随机器人运动,标定板固定在工作台上。

旋转矩阵R具有正交性和行列式为1的约束,因此实际只有3个独立自由度(通常用欧拉角或四元数表示)。平移向量t表示两个坐标系原点之间的偏移。在标定过程中,外参矩阵的精度直接决定了视觉系统能否将像素坐标准确映射到机器人运动空间。

3.5 完整投影方程与工程应用

将上述所有环节串联起来,得到完整的投影方程:

Zc · [u, v, 1]ᵀ = K · [R | t] · [Xw, Yw, Zw, 1]ᵀ

这个方程是手眼标定的理论基础。在实际应用中,我们通常已知标定板的物理尺寸(即世界坐标已知),通过图像处理提取角点像素坐标(u, v),然后利用多组对应点求解内外参。OpenCV的calibrateCamera()函数正是基于这一模型实现的。

案例拆解:某汽车零部件生产线需要利用机器人进行螺栓拧紧作业,相机固定安装在工作台上方(Eye-to-Hand布局)。初始调试时发现,当工件位于视场中心时定位精度为±0.3mm,但当工件移动到视场边缘时,定位误差增大到±1.2mm。经分析,问题根源在于标定过程中只采集了视场中央区域的标定板图像,导致畸变系数在边缘区域估计不准。重新采集覆盖全视场的20张标定板图像后,边缘定位误差降至±0.4mm。这个案例说明,畸变模型的准确性对视场边缘的定位精度影响显著。

经验总结:在工业现场进行相机标定时,建议遵循以下操作流程:1)固定相机和光源,确保光照均匀;2)使用高精度陶瓷标定板(精度±0.01mm);3)采集15~25张不同位姿的图像,覆盖视场各区域;4)使用OpenCV或Halcon进行标定,检查重投影误差(应小于0.1像素);5)在视场边缘和中心分别放置标准件验证定位精度。

3.6 常见误区与复盘

在工业机器人手眼标定项目中,工程师常陷入以下误区:

  1. 忽视畸变模型:部分工程师认为使用高价位镜头可以忽略畸变,但即便是高端镜头,在视场边缘仍存在0.5~1像素的畸变,对于高精度应用不可接受。
  2. 标定板位姿单一:如果标定板始终平行于成像平面,则无法准确估计fx和fy的差异,导致深度方向定位误差。
  3. 忽略温度影响:工业环境温度变化会导致镜头焦距漂移(热胀冷缩),建议在恒温环境下标定,或定期重新标定。
  4. 混淆内外参:在Eye-in-Hand系统中,外参矩阵是相机与机器人末端的变换,而非与基座的变换。混淆两者会导致严重的运动学错误。

复盘一个失败案例:某3C电子厂在手机屏幕贴合工序中,视觉引导机器人进行对位。工程师使用9张标定板图像完成标定,重投影误差为0.08像素,看似合格。但实际生产中,当机器人旋转到不同角度时,对位精度波动超过±0.5mm。排查发现,标定板图像全部集中在视场中央区域,且标定板始终与相机光轴垂直,导致外参矩阵中的旋转分量估计不准确。增加标定板倾斜角度和覆盖范围后,问题解决。这个案例提醒我们:标定板位姿的多样性不仅影响畸变估计,也影响外参矩阵的稳定性。

综上所述,相机成像模型是视觉引导系统的基石。针孔模型提供了线性框架,内参矩阵完成物理到像素的映射,畸变模型修正镜头非线性误差,外参矩阵连接相机与世界坐标系。只有深入理解每个环节的物理意义和数学表达,才能在工业现场快速定位问题、优化精度。在实际项目中,建议将标定流程标准化,并定期验证标定结果的稳定性,以确保视觉系统长期可靠运行。