4. 相机内参标定原理:针孔模型、畸变模型、内参矩阵与畸变系数

在 Eye-to-Hand 标定流程中,相机内参标定是第一步,也是最基础的一步。内参标定的精度直接决定了后续手眼矩阵求解的准确性。本节从物理模型出发,系统讲解针孔成像模型、镜头畸变模型,以及如何通过标定获取内参矩阵与畸变系数。

4.1 针孔成像模型

针孔模型是理想化的线性成像模型,描述了三维空间点投影到二维图像平面的几何关系。虽然真实相机存在畸变,但针孔模型是所有标定算法的数学基础。

核心公式: 空间点 P(X, Y, Z) 投影到图像点 p(u, v) 的齐次坐标变换关系为:
s * [u, v, 1]^T = K * [R | t] * [X, Y, Z, 1]^T
其中 K 为内参矩阵,[R | t] 为外参矩阵,s 为尺度因子。
关键理解: 针孔模型将三维世界到二维图像的映射分解为两步:
① 外参变换:将世界坐标系下的点转换到相机坐标系;
② 内参投影:将相机坐标系下的点投影到图像像素平面。
针孔成像模型示意图 针孔成像模型几何关系 世界坐标系 P(X, Y, Z) 相机坐标系 Pc(Xc, Yc, Zc) 图像平面 p(x, y) 像素坐标系 p(u, v) 外参 [R|t] 内参投影 数字化 针孔模型关键参数 焦距 f:镜头光心到成像平面的距离 主点 (cx, cy):光轴与成像平面的交点(通常接近图像中心) 像素尺寸 (dx, dy):单个像素在 x 和 y 方向的物理尺寸

4.2 内参矩阵

内参矩阵 K 将相机坐标系下的三维点投影到像素坐标系,包含 5 个关键参数(通常简化为 4 个自由度):

参数符号 名称 物理含义 单位
fx x 方向等效焦距 f / dx,焦距在像素宽度上的度量 像素
fy y 方向等效焦距 f / dy,焦距在像素高度上的度量 像素
cx 主点 x 坐标 光轴与图像平面的交点在像素列方向的位置 像素
cy 主点 y 坐标 光轴与图像平面的交点在像素行方向的位置 像素
s 倾斜因子 像素传感器 x-y 轴不垂直导致的畸变(现代相机通常为 0) 无量纲

内参矩阵的标准形式为:

K = [ f_x    s    c_x ]
    [  0    f_y   c_y ]
    [  0     0     1  ]
标定注意事项: 对于工业相机,s 通常假设为 0。如果标定结果中 s 显著非零(如 > 0.1),说明标定板图像质量差或标定流程有误,应重新采集数据。

4.3 畸变模型

真实镜头存在光学畸变,导致实际成像点偏离针孔模型的理想位置。畸变主要分为径向畸变和切向畸变两类。

4.3.1 径向畸变

由镜头形状不完美引起,光线在镜头边缘弯曲程度更大。径向畸变关于光轴对称,分为桶形畸变(负畸变)和枕形畸变(正畸变)。

径向畸变数学模型(通常使用前 3 项):

x_distorted = x * (1 + k1*r^2 + k2*r^4 + k3*r^6)
y_distorted = y * (1 + k1*r^2 + k2*r^4 + k3*r^6)

其中 r² = x² + y²,(x, y) 为归一化图像坐标,(k1, k2, k3) 为径向畸变系数。

4.3.2 切向畸变

由镜头与成像平面不平行(装配误差)引起。切向畸变模型:

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

其中 (p1, p2) 为切向畸变系数。

镜头畸变模型对比 镜头畸变类型对比 理想图像 针孔模型投影 桶形畸变 k1 < 0,边缘向外弯曲 枕形畸变 k1 > 0,边缘向内收缩 畸变系数向量通常表示为 [k1, k2, p1, p2, k3],其中 k3 仅在鱼眼镜头或高畸变广角镜头中使用 标定时一般先估计 k1, k2, p1, p2,若残差过大再启用 k3

4.4 畸变系数与标定流程

完整的相机内参标定输出包含以下参数:

  • 内参矩阵 K:4 个自由度(fx, fy, cx, cy)
  • 畸变系数向量 D:通常为 5 个参数 [k1, k2, p1, p2, k3]
  • 重投影误差:标定质量的评价指标,通常要求 < 0.5 像素

标准标定流程(以 OpenCV 为例):

  1. 采集标定板图像:拍摄 15~30 张不同位姿的棋盘格或圆点阵图像
  2. 提取角点/圆心:检测标定板特征点的亚像素坐标
  3. 初始化内参:基于针孔模型估算内参矩阵初值
  4. 非线性优化:使用 Levenberg-Marquardt 算法最小化重投影误差
  5. 输出结果:内参矩阵 K 和畸变系数 D
标定质量检查清单:
✅ 标定板覆盖图像四个角落和中心区域
✅ 标定板与图像平面夹角在 30°~60° 之间变化
✅ 标定板距离从近到远覆盖工作距离范围
✅ 重投影误差 < 0.3 像素(高精度)或 < 0.5 像素(可接受)
✅ 主点 (cx, cy) 接近图像物理中心(偏差 < 5% 图像尺寸)

4.5 内参标定对 Eye-to-Hand 标定的影响

内参误差类型 对 Eye-to-Hand 标定的影响 典型表现
焦距误差 (fx, fy) 导致深度方向尺度缩放错误 机器人末端与标定板距离计算偏差
主点偏移 (cx, cy) 引入平移偏差,影响手眼矩阵的平移分量 标定后抓取位置整体偏移
畸变校正不足 图像边缘特征点位置偏差,降低外参求解精度 标定板角点重投影残差大
畸变过度校正 引入非线性扭曲,破坏针孔模型假设 标定结果在不同位姿下不一致
工程建议: 在 Eye-to-Hand 标定前,务必先完成相机内参标定,并使用标定结果对图像进行畸变校正。校正后的图像再用于特征点提取,可以显著提高手眼标定的鲁棒性和精度。建议每 3~6 个月或相机受到振动后重新标定内参。