多相机:外参更金贵
stereoCalibrate / Kalibr 估 rig 外参和时间偏移;温漂和振动下外参 drift,融合深度和 BEV 会互相打架。

1. 标定一次不够
夏季车间多相机支架重投影误差漂移零点三像素,鸟瞰拼接缝上物体重影——相对外参比单目内参更脆弱。标定室精度不代表产线精度:温漂、振动、相机松动都会让旋转平移漂移。一个相机松了,全局融合全得重标或在线校准。相机阵列是耦合系统,不是六个独立针孔模型的简单叠加。
2. 立体标定怎么用
retval, K1, d1, K2, d2, R, T, E, F = cv2.stereoCalibrate(
objpoints, imgpoints_left, imgpoints_right,
K1, d1, K2, d2, imageSize,
flags=cv2.CALIB_FIX_INTRINSIC)固定内参标志:单目内参已准时只优化外参。使用外参初值标志:机械安装初值加速收敛。相同焦距标志对称阵列有时更稳。重投影均方根应低于零点五像素量级(视分辨率);超一像素我会先查角点检测质量,不是强行接受。
3. 两相机与多相机
OpenCV 两两立体标定再链式传播,超过三个相机误差累积,我不推荐。超过两个相机用 Kalibr 一次优化全部相机与轨迹。Kalibr 相机链的相对变换与 ROS 静态变换发布器要同一四元数约定(哈密顿与杰利夫顺序不能混)。
4. 时间同步
硬件通用输入输出触发理想;否则 Kalibr 估计 时间偏移 。未同步的阵列拍动态场景会拖影——鸟瞰重影不一定是外参错,可能是时间偏移没标。软件时间戳精度不如硬件触发,动态场景差距明显。
ROS2 回退方案:近似时间同步器,队列大小十、容差零点零五秒——容差过大融合几何错,过小丢帧。每个传感器独立内参畸变配置文件,别混用旧内参。
5. 维护与失败模式
| 现象 | 原因 |
|---|---|
| 深度接缝 | 外参漂移 |
| 鸟瞰重影 | 时间不同步 |
| 某相机偏差 | 单独内参变了未复标 |
温漂:热机后标定。振动:定期查重投影。在线监测:每日抽一百帧算极线 标准差,超一像素触发重标工单。
7. 标定标志与联合优化
除固定内参外,对称阵列可试相同焦距标志;机械安装有初值时用外参初值标志加速收敛。联合优化内参外参适合出厂前一次性标定;产线维护阶段内参已独立标定,应固定内参只调外参,避免把温漂吸收进焦距。棋盘格角点检测质量直接决定重投影——角点亚像素失败时,外参再优也是垃圾进垃圾出。
8. 案例:环视 BEV 缝上重影
四路环视标定室重投影零点二像素,夏季产线升到零点六,鸟瞰缝上行人重影。排查发现左后相机支架松了零点五毫米——只重标该对,全局恢复。若用算法强行 blend 掩盖,深度融合与视觉检测的投影会不一致,下游各自报错更难查。
9. 验收
成对重投影误差;鸟瞰已知尺寸物体米制检验;时间偏移估计是否稳定。震动测试后复测旋转平移变化量。外参漂移超阈就重标,别用算法补丁掩盖硬件问题。
相机阵列外参是融合契约——漂移超阈必须重标,这是产线可维护性的底线。
相关
也可以看看
johan's blog