3. 相机标定基础:标定板类型、张正友标定法原理与标定流程
相机标定是3D视觉定位的基石,其核心目标是确定相机的内参矩阵(焦距、主点、畸变系数)与外参矩阵(旋转、平移)。本章从标定板选型出发,深入解析张正友标定法的数学原理,并给出完整的标定操作流程。
3.1 标定板类型与选型对比
标定板提供已知3D坐标的角点或圆心特征,是标定精度的物理基准。主流类型包括棋盘格、圆点阵和ChArUco板。
| 类型 | 特征点提取方式 | 亚像素精度 | 遮挡鲁棒性 | 适用场景 |
|---|---|---|---|---|
| 棋盘格 | Harris角点 + 亚像素细化 | 高(0.1~0.3 pixel) | 低(部分遮挡易丢失) | 实验室、高精度静态标定 |
| 圆点阵 | 椭圆拟合 + 圆心定位 | 中(0.3~0.5 pixel) | 中(可处理部分遮挡) | 大视场、远距离标定 |
| ChArUco | ArUco码ID识别 + 棋盘角点 | 高(0.1~0.3 pixel) | 高(部分遮挡仍可识别) | 动态场景、多相机、大角度标定 |
选型建议: 棋盘格精度最高但易受遮挡影响;圆点阵对透视畸变更鲁棒;ChArUco兼具高精度与遮挡鲁棒性,推荐用于产线级3D视觉定位系统。
3.2 张正友标定法原理
张正友标定法(Zhang's Method)利用平面标定板在不同姿态下的多幅图像,通过封闭解 + 非线性优化两步求解相机参数。其核心数学推导如下:
- 单应性矩阵估计: 对每幅图像,建立3D世界点 M 与2D像点 m 之间的单应性关系 s·m = K·[R|t]·M,其中 K 为内参矩阵。
- 内参约束求解: 利用旋转矩阵的正交性(r₁ᵀ·r₂ = 0 且 ‖r₁‖ = ‖r₂‖),从至少3幅图像的单应性矩阵中线性解出内参 K。
- 外参计算: 已知 K 后,对每幅图像直接计算旋转矩阵 R 和平移向量 t。
- 畸变校正与全局优化: 引入径向畸变模型(k₁, k₂),使用Levenberg-Marquardt算法对所有参数进行非线性最小化,重投影误差降至最低。
关键公式: 重投影误差 E = Σ‖m_ij - m̂(K, R_i, t_i, M_j)‖²,优化目标是使所有角点的投影误差平方和最小。
3.3 标定流程与操作规范
一个完整的标定流程包含准备、采集、处理、验证四个阶段。以下步骤适用于棋盘格与ChArUco板:
| 阶段 | 步骤 | 关键操作 | 注意事项 |
|---|---|---|---|
| 准备 | 1. 标定板制作 | 打印高精度棋盘格/ChArUco板,贴于刚性平板 | 确保板面平整,方格尺寸测量误差 < 0.1 mm |
| 采集 | 2. 图像采集 | 手持标定板在视场内做平移、旋转、倾斜运动,拍摄15~25幅图像 | 覆盖视场边缘与中心;避免纯平移;每幅图像标定板占比 > 20% |
| 处理 | 3. 角点提取 | 使用OpenCV findChessboardCorners 或 detectMarkers |
亚像素细化(cornerSubPix)提升精度 |
| 处理 | 4. 参数求解 | 调用 calibrateCamera 进行封闭解 + LM优化 |
设置合理的畸变模型(通常2~3个径向系数) |
| 验证 | 5. 精度评估 | 计算重投影误差;绘制误差分布直方图 | 平均重投影误差 < 0.3 pixel 为合格 |
常见避坑:
- 标定板不要与图像平面平行——否则无法解出焦距。
- 图像数量不足(< 10幅)会导致内参解不稳定。
- 标定板反光严重时,使用哑光材质或调整光源角度。
3.4 标定精度验证指标
标定完成后,必须通过以下指标量化精度:
- 重投影误差(Reprojection Error): 所有角点的平均像素误差,通常 < 0.3 pixel 为优秀,< 0.5 pixel 为合格。
- 内参稳定性: 多次标定(改变图像子集)后,焦距变化 < 0.5%,主点偏移 < 2 pixel。
- 畸变校正效果: 校正后图像直线边缘的弯曲度 < 1 pixel。
实战经验: 若重投影误差 > 1.0 pixel,优先检查标定板是否弯曲、角点提取是否准确、图像是否模糊。使用ChArUco板可有效降低因部分遮挡导致的误差。