1. 标定系统概述

各位工程师朋友,欢迎来到《四相机标定系统搭建与调试实战》的第一章。

说实话,四相机标定这个方向,我接触了快十年。从最早的实验室原型,到后来量产车上的环视系统,再到VR头显里的空间定位——每一次项目都让我对“标定”这两个字有新的理解。

很多人觉得标定就是拍几张棋盘格照片,跑个算法就完事了。嗯,如果你只是做单相机内参标定,确实差不多。但四相机系统,完全是另一回事。

这一章,我们先搭个框架。把四相机标定到底在做什么、用在哪儿、由什么组成、怎么干活,理清楚。

1.1 四相机标定到底解决什么问题?

先问一个问题:为什么需要四个相机?

一个相机视野有限。两个相机能测深度,但覆盖范围还是不够。四个相机,才能做到360°无死角感知。

但四个相机不是简单拼在一起就行。每个相机有自己的内参(焦距、畸变、主点),相机之间还有外参(旋转、平移)。如果这些参数不准,拼接出来的全景图就会错位,测距就会偏差,VR里你伸手就摸不到虚拟物体。

四相机标定的核心任务就三个:

  • 单相机内参标定——每个相机自身的成像模型要准
  • 多相机外参标定——相机之间的相对位姿要准
  • 联合优化——全局一致性,消除累积误差

一句话总结:四相机标定,就是让四个相机“说同一种语言”,在同一个坐标系下协同工作。

1.2 应用场景:你会在哪里遇到它?

我参与过的项目里,四相机标定主要出现在三个领域。每个领域的要求都不一样。

应用领域 典型场景 标定精度要求 标定频率
VR/AR 头显外部追踪、手柄定位 亚毫米级 出厂一次,使用中热补偿
自动驾驶环视 360°全景影像、自动泊车 厘米级 出厂标定 + 售后重标
工业检测 大尺寸工件多视角测量 0.1mm级 每次换型重标

拿VR头显来说。我记得2020年做一个Inside-Out追踪项目,四个鱼眼相机分布在头显四角。标定误差超过0.5mm,用户转头时虚拟场景就会“飘”。后来我们花了整整两周优化外参标定流程,才把误差压到0.2mm以内。

自动驾驶环视又是另一套逻辑。车上四个相机安装位置固定,但车身会老化、颠簸,外参会慢慢漂移。我曾经遇到一个案例,车主开了半年后环视拼接图错位了20个像素——就是因为后视摄像头支架松动。所以车厂现在都要求标定算法能支持在线自检和快速重标。

我的建议:做项目前先搞清楚精度要求。VR和工业检测对标定精度极其苛刻,自动驾驶环视反而对实时性和鲁棒性要求更高。别拿同一套流程去套所有场景。

1.3 系统组成:一套四相机标定系统需要什么?

一套完整的四相机标定系统,硬件和软件缺一不可。我按模块拆开讲。

1.3.1 硬件部分

  • 相机模组:4个工业相机或车载摄像头,建议选全局快门,减少运动模糊
  • 标定板:棋盘格、圆点阵或ChArUco板。尺寸要覆盖四个相机的公共视野
  • 支架/工装:固定相机和标定板的机械结构。精度直接影响外参标定结果
  • 采集卡/同步触发器:四相机需要硬件同步触发,保证同一时刻采集
  • 计算平台:工控机或嵌入式板卡,跑标定算法

这里有个坑。我早期做项目时图省事,用软件触发四个相机。结果每帧图像之间差了10-20ms,标定出来的外参全是错的。后来换成硬件硬触发,问题立刻解决。

注意:四相机标定必须硬件同步。软件同步的时延抖动会直接毁掉外参精度。别省这个钱。

1.3.2 软件部分

  • 图像采集模块:驱动相机、设置曝光/增益、触发采集
  • 特征提取模块:角点检测、亚像素定位、标定板识别
  • 单目标定模块:基于张正友法或直接线性变换(DLT)求解内参
  • 多目标定模块:PnP求解外参、全局光束法平差(BA)优化
  • 结果验证模块:重投影误差分析、拼接图可视化、测距验证

软件架构上,我个人习惯把标定流程做成离线标定 + 在线验证两条线。离线标定跑完整流程,生成参数文件;在线验证只做轻量级检查,比如拍一张图看看重投影误差是否超标。

1.4 工作流程:从零到标定完成

一个标准的四相机标定流程,我把它分成6步。每一步都有需要注意的细节。

  1. 准备阶段:安装相机、固定标定板、配置同步触发、设置曝光参数
  2. 数据采集:移动标定板覆盖不同位置和角度,每个相机采集20-30张有效图像
  3. 单目标定:对每个相机独立计算内参和畸变系数
  4. 多目标定:以其中一个相机为基准,计算其他相机到基准的外参
  5. 全局优化:所有相机联合BA,最小化所有观测点的重投影误差
  6. 验证与交付:用验证集检查精度,输出标定参数文件

这里我画了一张流程图,把整个流程串起来。

四相机标定工作流程图 四相机标定工作流程图 ① 准备阶段 ② 数据采集 ③ 单目标定 ④ 多目标定 ⑤ 全局优化 ⑥ 验证与交付 关键提示 每步都需要验证中间结果 不要等到最后才发现问题 重投影误差 < 0.5px 再往下走 常见失败原因 标定板反光 → 角点漏检 同步触发抖动 → 外参错误 图像过曝 → 亚像素不准

你看,整个流程是线性的,但每个步骤之间都有反馈回路。比如单目标定做完,如果重投影误差大于0.5像素,我会回头检查数据采集质量,而不是硬着头皮往下走。

1.5 标定精度怎么衡量?

衡量标定结果好不好,我一般看三个指标:

  • 重投影误差(Reprojection Error):3D点投影到图像上的位置和实际检测位置的偏差。单目标定通常要求 < 0.3px,多目标定 < 0.5px
  • 外参一致性:不同标定板位姿下解算出的外参标准差。标准差越小,说明标定越稳定
  • 拼接图错位量:环视拼接后,相邻相机重叠区域的像素偏差。这个最直观,客户一眼就能看出来

一个小技巧:我习惯在标定完成后,用标定板放在四个相机的公共视野中心,分别投影到每个相机图像上,看投影点是否重合。如果偏差超过2个像素,说明外参还有问题,需要重新优化。

1.6 本章小结

这一章我们聊了四相机标定的应用场景、系统组成和工作流程。核心就三件事:

  • 知道它用在哪儿——VR/AR、自动驾驶、工业检测
  • 知道它需要什么——硬件同步、标定板、完整的软件栈
  • 知道它怎么干——6步流程,每步都要验证