返回专辑
·Johan·3 分钟阅读

多相机:外参更金贵

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

多相机:外参更金贵

1. 标定一次不够

夏季车间多相机支架重投影误差漂移零点三像素,鸟瞰拼接缝上物体重影——相对外参比单目内参更脆弱。标定室精度不代表产线精度:温漂、振动、相机松动都会让旋转平移漂移。一个相机松了,全局融合全得重标或在线校准。相机阵列是耦合系统,不是六个独立针孔模型的简单叠加。

2. 立体标定怎么用

python
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