4. 相机标定原理

相机标定是连接二维图像与三维空间的第一步,也是机器人手眼标定的前置基础。本章聚焦于最经典的张正友标定法,从标定板设计、数学模型到畸变校正,建立完整的标定理论框架。

4.1 张正友标定法核心原理

张正友标定法(Zhang’s Method)于1998年提出,核心思想是:通过拍摄多张不同姿态的平面棋盘格图像,利用单应性矩阵约束,线性求解相机内参初值,再通过非线性优化得到精确结果。该方法不需要高精度的3D标定物,仅需一个打印的棋盘格,极大降低了标定门槛。

4.1.1 数学模型与求解流程

标定过程可分解为以下关键步骤:

  1. 提取角点:在每张图像中检测棋盘格内角点,获得亚像素精度的像素坐标。
  2. 计算单应性矩阵:对每张图像,建立世界坐标系(Z=0平面)到像素坐标系的单应性矩阵 H。
  3. 求解内参初值:利用旋转矩阵的正交约束,从多张图像的 H 矩阵中线性解出内参矩阵 K。
  4. 求解外参初值:根据内参和 H 矩阵,计算每张图像的旋转矩阵 R 和平移向量 t。
  5. 非线性优化:以重投影误差最小化为目标,使用Levenberg-Marquardt算法对所有参数(内参、畸变系数、外参)进行全局优化。
重投影误差公式:
min Σ || p_ij - p̂(K, k1, k2, p1, p2, R_i, t_i, P_j) ||²

其中 p_ij 为第 i 张图像中第 j 个角点的实际像素坐标,p̂ 为根据当前参数计算的重投影坐标。目标是最小化所有角点的重投影误差平方和。

4.1.2 张正友标定法流程

下图展示了从图像采集到参数输出的完整标定流程:

张正友标定法完整流程 采集多张棋盘格图像 亚像素角点检测 计算单应性矩阵 H 线性求解内参 K 求解外参 R, t 非线性全局优化 输出:内参 K + 畸变系数 + 外参 R,t 关键约束: 旋转矩阵 R 的列向量两两正交且模长为1,这是从单应性矩阵线性求解内参的数学基础。

4.2 棋盘格标定板设计

棋盘格标定板是张正友标定法的核心工具,其设计质量直接影响标定精度。设计时需关注以下关键参数:

参数 推荐值/要求 说明
棋盘格尺寸 7×9 或 8×11 内角点 内角点数量指黑白方格相交的角点,非方格总数
方格边长 20mm ~ 40mm 根据相机视场角和工作距离选择,保证角点清晰可辨
打印精度 ≥ 600 DPI 低精度打印会导致角点位置偏差,引入系统误差
衬底材质 刚性平板(亚克力/铝板) 柔性纸张在粘贴时会产生曲面变形,破坏平面假设
图案对称性 非对称设计(如一侧加边框) 便于自动识别标定板的方向和编号
实战建议:标定板应覆盖相机视场的不同区域(中心、边缘、四角),并在不同距离和倾角下采集15~25张图像。避免所有图像都集中在同一平面或同一姿态,否则会导致内参解算病态。

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

实际镜头并非理想的小孔成像模型,光线通过透镜时会产生畸变。畸变主要分为两类:径向畸变(由透镜形状引起)和切向畸变(由透镜与成像平面不平行引起)。

4.3.1 径向畸变(Radial Distortion)

径向畸变是影响最大的畸变类型,表现为图像点沿径向方向向内或向外偏移。根据偏移方向分为:

  • 桶形畸变(Barrel Distortion):图像点向中心收缩,常见于广角镜头。
  • 枕形畸变(Pincushion Distortion):图像点向外扩张,常见于长焦镜头。

径向畸变的数学模型使用泰勒级数展开,通常取前两项或三项:

x_corrected = x * (1 + k1 * r² + k2 * r⁴ + k3 * r⁶)
y_corrected = y * (1 + k1 * r² + k2 * r⁴ + k3 * r⁶)

其中 (x, y) 为归一化平面上的畸变坐标,r² = x² + y²,k1、k2、k3 为径向畸变系数。对于普通镜头,k1 和 k2 已足够;对于鱼眼镜头或高畸变镜头,需要引入 k3。

4.3.2 切向畸变(Tangential Distortion)

切向畸变由镜头组装时透镜与成像平面不平行导致,表现为图像点沿切线方向偏移。其数学模型为:

x_corrected = x + [2 * p1 * x * y + p2 * (r² + 2 * x²)]
y_corrected = y + [p1 * (r² + 2 * y²) + 2 * p2 * x * y]

其中 p1、p2 为切向畸变系数。切向畸变通常远小于径向畸变,但在高精度标定中不可忽略。

4.3.3 畸变模型对比

畸变类型 产生原因 数学模型参数 典型影响
径向畸变 透镜曲面形状非理想 k1, k2, k3 直线弯曲,边缘变形明显
切向畸变 透镜与成像平面不平行 p1, p2 图像倾斜,矩形变梯形

4.3.4 畸变校正流程

完整的畸变校正过程分为两步:

  1. 标定阶段:通过张正友标定法求解畸变系数 k1, k2, k3, p1, p2。
  2. 校正阶段:对每个像素,根据畸变模型计算其对应的理想坐标,然后通过插值(如双线性插值)得到校正后的像素值。
注意:畸变校正是像素级的重映射,计算量较大。在实时机器人视觉系统中,建议预先计算校正映射表(remap),运行时直接查表,避免逐像素实时计算。

4.4 标定结果验证

标定完成后,必须验证标定结果的准确性。常用验证方法包括:

  • 重投影误差:所有角点的平均重投影误差应小于 0.5 像素,优秀标定可达 0.1 像素以下。
  • 畸变校正可视化:将棋盘格图像进行畸变校正,观察棋盘格直线是否恢复为直线。
  • 三维重建验证:使用标定结果对已知尺寸的物体进行三维测量,验证测量精度。

下表总结了标定质量的常见判断标准:

指标 优秀 良好 需重新标定
平均重投影误差 < 0.15 像素 0.15 ~ 0.5 像素 > 0.5 像素
最大重投影误差 < 0.5 像素 0.5 ~ 1.0 像素 > 1.0 像素
图像数量 20 ~ 30 张 15 ~ 20 张 < 10 张
姿态覆盖 全视场多角度 大部分区域覆盖 集中在中心区域
核心要点回顾:
  • 张正友标定法利用平面棋盘格的多张图像,通过单应性矩阵约束线性求解内参初值,再通过非线性优化得到精确结果。
  • 棋盘格标定板需保证平面度、打印精度和足够的角点数量,设计时需考虑相机视场和工作距离。
  • 畸变模型包含径向畸变(k1, k2, k3)和切向畸变(p1, p2),校正时需先标定畸变系数,再通过重映射实现像素级校正。
  • 标定完成后必须验证重投影误差和畸变校正效果,确保标定质量满足后续手眼标定和3D定位的精度要求。