3、标定基础理论:内参、外参、畸变模型、投影模型、刚体变换等核心概念与数学基础

传感器标定的本质,是建立传感器测量值与真实物理世界之间的确定性映射关系。无论是单目相机、双目系统、激光雷达还是毫米波雷达,其标定过程都围绕三个核心问题展开:传感器内部如何成像(内参与畸变)、传感器在空间中如何放置(外参)、如何用数学语言描述刚体在三维空间中的运动(旋转矩阵、四元数、欧拉角)。本章将系统梳理这些基础理论,为后续的标定实操与多传感器融合打下坚实的数学地基。

传感器标定核心数学框架 世界坐标系 Xw, Yw, Zw 真实物理空间基准 刚体变换 T R (3×3) + t (3×1) 旋转矩阵 | 四元数 | 欧拉角 相机坐标系 Xc, Yc, Zc 光心为原点,Z轴朝前 图像坐标系 x, y (mm) 物理成像平面 像素坐标系 u, v (pixel) 离散化整数坐标 畸变模型 径向畸变 k1,k2,k3 切向畸变 p1,p2 投影模型 针孔模型 内参矩阵 K (3×3) 内参 K fx, fy, cx, cy 焦距 & 主点偏移 外参 [R|t] 世界→相机变换 6自由度 (3旋转+3平移) 标定目标:求解 K, D, [R|t] 最小化重投影误差 多视图几何约束 → 非线性优化 核心链路:世界坐标 →(外参)→ 相机坐标 →(投影+畸变)→ 像素坐标

上图展示了传感器标定中各个坐标系与数学模型之间的逻辑关系。从世界坐标系到像素坐标系的完整链路,正是标定所要精确描述的物理过程。下面我们将逐一拆解每个环节的数学本质与工程含义。

3.1 内参矩阵与投影模型:从三维点到像素的映射

核心原理:针孔投影模型是相机成像的基础近似。三维空间中的点 P(Xc, Yc, Zc) 在相机坐标系下,通过光心投影到物理成像平面上,形成二维点 p(x, y)。其数学关系为:

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

其中 f 为焦距。进一步将物理坐标转换为像素坐标,引入像素坐标系的原点偏移 (cx, cy) 和像素在 x/y 方向上的物理尺寸 (dx, dy),得到内参矩阵 K:

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

其中 fx = f/dx,fy = f/dy。完整的投影方程(齐次坐标形式)为:

s * [u, v, 1]^T = K * [Xc, Yc, Zc]^T

判断方法:内参标定通常使用棋盘格或圆点标定板,通过拍摄不同姿态的标定板图像,利用角点检测和单应性矩阵求解。OpenCV 的 calibrateCamera() 函数即基于张正友标定法实现,其核心思想是:先通过单应性矩阵线性求解内参初值,再用最大似然估计进行非线性优化。

参数物理含义典型值范围(工业相机)标定精度影响
fx, fy归一化焦距(像素单位)500 ~ 5000影响深度测量精度
cx, cy主点坐标(像素)图像中心附近影响三维重建偏差
k1, k2, k3径向畸变系数-0.5 ~ 0.5影响边缘视场精度
p1, p2切向畸变系数-0.05 ~ 0.05影响镜头与传感器平行度
经验提醒:标定板图像应覆盖视场的各个区域,尤其是边缘和角落。建议采集 15~20 张不同角度、不同距离的图像,且标定板倾斜角度控制在 30° 以内,避免退化配置导致求解不稳定。

3.2 畸变模型:修正镜头带来的非线性误差

核心原理:实际镜头并非理想针孔,存在径向畸变(由透镜形状引起)和切向畸变(由透镜与传感器不平行引起)。径向畸变用泰勒级数展开描述:

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

其中 r² = x² + y²。切向畸变模型为:

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

操作流程:在标定过程中,畸变系数与内参矩阵一同被优化求解。去畸变操作在图像预处理阶段完成,OpenCV 提供 undistort() 和 initUndistortRectifyMap() 两个常用接口。前者直接输出校正图像,后者先生成映射表再通过 remap() 高效执行。

实战场景:在自动驾驶的环视拼接系统中,四颗鱼眼相机的畸变系数 k1 通常高达 -0.3 以上,边缘畸变可达数十像素。若不进行精确去畸变,拼接缝处会出现明显的物体断裂或重影。某量产项目中,通过引入 k3 高阶项并将重投影误差从 0.8 pixel 降至 0.3 pixel,拼接精度提升了 60%。
常见误区:不要盲目增加畸变阶数。k3 仅在视场角大于 120° 的鱼眼镜头中才显著,普通针孔相机使用 k1、k2 即可。过拟合高阶畸变参数会导致边缘区域出现波浪状伪影。

3.3 外参与刚体变换:旋转矩阵、四元数与欧拉角

核心原理:外参描述的是世界坐标系到相机坐标系的刚体变换,包含旋转 R(3×3 正交矩阵)和平移 t(3×1 向量)。刚体变换保持物体形状和大小不变,其数学表达为:

Pc = R * Pw + t

旋转矩阵 R 满足 R^T * R = I 且 det(R) = 1,属于特殊正交群 SO(3)。然而,旋转矩阵的 9 个参数存在 6 个约束,直接优化不便,因此工程中常用四元数和欧拉角进行参数化。

三种旋转表示方法的对比:

表示方法参数数量优点缺点适用场景
旋转矩阵9直观,可直接用于向量旋转冗余,需正交化约束理论推导、坐标变换计算
欧拉角3直观,符合人类认知万向锁问题,插值不平滑人机交互、姿态显示
四元数4无万向锁,插值平滑,计算高效不够直观,需转换理解SLAM、多传感器融合、优化求解

四元数定义:q = w + xi + yj + zk,其中 w 为实部,满足 w² + x² + y² + z² = 1。旋转矩阵可由四元数转换得到:

R = [[1-2(y²+z²), 2(xy-wz),   2(xz+wy)],
     [2(xy+wz),   1-2(x²+z²), 2(yz-wx)],
     [2(xz-wy),   2(yz+wx),   1-2(x²+y²)]]

操作流程:在标定求解外参时,通常使用四元数作为优化变量,避免欧拉角的万向锁问题。优化完成后,再根据应用需求转换为欧拉角或旋转矩阵。例如,在 ROS 中,tf2::Quaternion 提供了完整的转换接口。

案例拆解:某激光雷达-相机联合标定项目中,初始外参通过手动测量获得,旋转误差约 2°。使用四元数参数化进行非线性优化后,旋转误差降至 0.1° 以内。具体流程为:① 采集 30 组标定板点云与图像对应点;② 构建重投影误差代价函数;③ 使用 Levenberg-Marquardt 算法迭代优化;④ 将优化后的四元数转换为欧拉角验证合理性。最终,融合系统的 3D 目标检测 mAP 提升了 12%。
风险提示:欧拉角的旋转顺序(如 ZYX、ZYZ)必须明确约定,否则会导致完全不同的旋转结果。在跨团队协作时,建议统一使用四元数作为中间交换格式,避免歧义。

3.4 标定全流程与精度评估

核心原理:完整的标定流程包括:数据采集 → 特征提取 → 初值估计 → 非线性优化 → 精度评估。重投影误差(Reprojection Error)是衡量标定精度的核心指标,定义为:

e = || p_measured - p_projected(K, D, R, t, Pw) ||

操作流程:

  1. 数据采集:拍摄标定板图像,确保覆盖视场各区域,避免运动模糊。
  2. 特征提取:使用角点检测(如 findChessboardCorners())或圆点检测,获取亚像素级特征点坐标。
  3. 初值估计:通过单应性矩阵分解获得内参初值,通过 PnP 求解获得外参初值。
  4. 非线性优化:使用 Levenberg-Marquardt 或 Gauss-Newton 算法最小化总重投影误差。
  5. 精度评估:计算平均重投影误差、最大误差,并可视化误差分布。

精度评估标准:

应用场景可接受重投影误差备注
视觉SLAM< 0.5 pixel影响轨迹精度
自动驾驶感知< 1.0 pixel影响目标定位
工业测量< 0.1 pixel需高精度标定板
多传感器融合< 0.8 pixel需联合优化
经验总结:标定板平面度是影响精度的关键因素。建议使用陶瓷或玻璃基板,避免纸质标定板在湿度变化下产生形变。同时,采集图像时保持标定板静止,避免运动模糊导致角点提取偏差。