3、相机成像与镜头畸变基础:针孔模型、内参外参、径向畸变与切向畸变、畸变对测量的影响

在机器视觉测量项目中,Halcon 2D标定助手的核心任务就是求解相机成像模型中的各项参数,并利用这些参数对图像进行畸变校正和世界坐标重建。如果对成像模型和畸变原理缺乏系统理解,标定过程就会变成“黑盒操作”——即使标定报告显示误差很小,实际测量结果仍可能出现系统性偏差。本章从针孔模型出发,逐步拆解内参、外参的物理含义,深入分析径向畸变与切向畸变的成因与数学表达,最后通过一个实际案例说明畸变对高精度测量的具体影响。

相机成像与畸变模型 — 概念关系与标定链路 世界坐标系 (Xw, Yw, Zw) 标定板物理位置 外参 (R, t) 旋转 + 平移 世界→相机坐标变换 相机坐标系 (Xc, Yc, Zc) 光心为原点,Zc沿光轴 针孔投影 f, cx, cy 理想像素坐标 (u, v) 镜头畸变模型 • 径向畸变 (k1, k2, k3):桶形/枕形 • 切向畸变 (p1, p2):透镜与传感器不平行 • 畸变发生在投影之后,作用于归一化坐标 Halcon 标定输出 • 内参:f, cx, cy, 像素尺寸, 畸变系数 • 外参:每个标定板位姿的 R, t • 误差指标:重投影误差 (RMS) 畸变校正 → 无畸变图像 → 高精度测量 Halcon 算子:change_radial_distortion_image / undistort_image

上图展示了从世界坐标到像素坐标的完整链路:世界坐标先通过外参(旋转矩阵 R 和平移向量 t)变换到相机坐标系,再经针孔投影得到理想像素坐标,最后叠加镜头畸变得到实际像素坐标。Halcon 标定助手的作用,就是通过拍摄不同位姿的标定板,反向求解出这些参数。下面逐一展开。

3.1 针孔模型:理想成像的数学描述

针孔模型是相机成像的最基本近似。它假设光线沿直线传播,所有光线通过一个无限小的“针孔”(即光心),在传感器平面上形成倒立的实像。实际镜头虽然由多片透镜组成,但在数学上可以等效为一个针孔加上畸变修正。

针孔模型的投影公式为:

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

其中 K 为内参矩阵:

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

fx、fy 分别为 x、y 方向的等效焦距(单位:像素),通常 fx = f / dx,其中 f 为物理焦距(mm),dx 为像素物理尺寸(mm/pixel)。cx、cy 为主点坐标,即光轴与传感器平面的交点。对于大多数工业相机,fx 与 fy 非常接近,但并非完全相等——这取决于传感器像素是否为正方形。

经验提醒:在 Halcon 中,内参使用 CamParam 数据结构表示,包含焦距 f(mm)、像素尺寸 Sx/Sy(mm/pixel)、主点 Cx/Cy(像素)、畸变系数 Kappa(或多项式系数)。标定助手会自动计算这些值,但理解其物理含义有助于判断标定结果是否合理。

3.2 内参与外参:标定要解决的两类参数

内参描述相机自身的几何光学特性,包括焦距、主点、像素尺寸和畸变系数。内参一旦确定,在镜头和相机相对位置不变的情况下保持不变。外参描述相机在世界坐标系中的位置和姿态,即旋转矩阵 R 和平移向量 t。每次移动相机或标定板,外参都会改变。

参数类型包含内容物理意义标定中的获取方式
内参f, cx, cy, Sx, Sy, 畸变系数相机内部光学与传感器特性多姿态拍摄标定板,Halcon 优化求解
外参R (3×3), t (3×1)相机坐标系与世界坐标系的相对位姿每张标定板图像单独计算

在 Halcon 标定助手中,内参和外参是同时求解的。标定板上的圆形标记点(或棋盘格角点)提供了已知的世界坐标,通过检测图像中的对应点,建立 2D-3D 对应关系,使用非线性优化算法(如 Levenberg-Marquardt)最小化重投影误差。

3.3 径向畸变与切向畸变:成因与数学模型

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

  • 径向畸变(Radial Distortion):由透镜表面曲率引起,光线离光轴越远,折射越强。表现为图像边缘的桶形畸变(负畸变)或枕形畸变(正畸变)。数学模型为:
x_dist = x * (1 + k1*r² + k2*r⁴ + k3*r⁶)
y_dist = y * (1 + k1*r² + k2*r⁴ + k3*r⁶)

其中 r² = x² + y²,x、y 为归一化图像坐标(以主点为中心,除以焦距)。k1、k2、k3 为径向畸变系数,通常 k3 仅在鱼眼镜头或高畸变广角镜头中使用。

  • 切向畸变(Tangential Distortion):由透镜与传感器平面不平行引起,导致图像在某个方向上被拉伸。数学模型为:
x_dist = x + [2*p1*x*y + p2*(r² + 2*x²)]
y_dist = y + [p1*(r² + 2*y²) + 2*p2*x*y]

p1、p2 为切向畸变系数。在工业镜头中,切向畸变通常远小于径向畸变,但在高精度测量中不可忽略。

风险提示:Halcon 的标定助手默认使用多项式畸变模型(k1, k2, k3, p1, p2),但旧版本或特定相机可能使用除法模型(Kappa 系数)。在读取标定文件时,务必确认畸变模型类型,否则校正结果会出错。

3.4 畸变对测量的影响:从“看起来正常”到“实际偏差”

畸变对测量的影响是渐进的。在图像中心区域,畸变很小;越靠近边缘,畸变越显著。对于高精度测量(如公差 ±0.01mm),即使 0.5 像素的畸变也可能导致不可接受的误差。

以一个实际案例说明:某电子元件引脚间距测量项目,使用 500 万像素相机(2448×2048),视场 50mm×40mm,像素当量约 0.02mm/pixel。未校正畸变时,在图像边缘(距离主点约 1200 像素)测量两个引脚间距,结果比实际值偏大 0.15mm。经标定后,畸变系数 k1 = -0.08,校正后测量偏差降至 0.005mm 以内。

这个案例的关键在于:畸变不是固定偏移,而是随位置变化的非线性误差。如果只在中心区域测量,可能完全察觉不到问题;一旦测量区域扩展到边缘,误差就会急剧增大。

3.5 标定操作流程与常见误区

在 Halcon 2D 标定助手中,标准操作流程如下:

  1. 准备标定板:选择高精度陶瓷或玻璃标定板,确保表面平整、图案清晰、对比度高。
  2. 采集图像:拍摄 10-20 张不同位姿的标定板图像,覆盖视场各个区域,包括中心、边缘、倾斜角度(建议 15°-30°)。
  3. 加载图像:在标定助手中加载图像序列,设置标定板描述文件(.descr)。
  4. 检测标记点:助手自动检测标定板上的圆形标记点或棋盘格角点。
  5. 标定计算:点击“标定”按钮,Halcon 优化求解内参和外参。
  6. 验证结果:查看重投影误差(RMS),通常应小于 0.1 像素;检查内参是否在合理范围内。
常见误区后果正确做法
标定板只放在中心区域边缘畸变无法准确估计确保标定板覆盖视场边缘
标定板倾斜角度过大(>45°)标记点检测不稳定,标定失败控制在 15°-30° 之间
光照不均匀或反光标记点定位精度下降使用漫射光源,避免强反光
标定后未保存参数后续测量无法校正导出为 .cal 文件或写入程序
总结复盘:相机标定的本质是求解从世界坐标到像素坐标的完整映射关系。针孔模型提供了理想投影的数学框架,内参和外参分别描述了相机内部特性和外部位姿,畸变模型则修正了实际镜头与理想模型的偏差。在 Halcon 中,标定助手将这一复杂过程封装为可视化操作,但工程师必须理解底层原理,才能正确判断标定结果的合理性,并在测量项目中合理设计视场和精度预算。