1. 工业视觉系统概述:多摄像头系统应用场景、同步与融合的核心挑战、课程整体架构
大家好,我是老张。在机器视觉这行摸爬滚打了十几年,从最早的单相机定位,到后来做手机中框检测用上四相机,再到去年给某新能源电池厂部署过一套十二相机联动系统——说实话,每次项目规模往上跳一个台阶,踩的坑就完全不一样。
这一章,我们先不急着写代码。我想先聊聊:多摄像头系统到底用在哪儿?为什么同步和融合这么难? 把这两个问题想清楚,后面三十章你学起来会顺很多。
1.1 多摄像头系统的典型应用场景
你想想看,一个相机能拍到的视野和角度是有限的。当被测物体变大、变复杂,或者需要同时看多个面,单相机就捉襟见肘了。我归纳了三个最常见的场景:
| 场景类型 | 典型应用 | 相机数量 | 核心需求 |
|---|---|---|---|
| 大幅面检测 | 液晶面板、PCB拼板、光伏电池片 | 2~8台 | 视野拼接、亚像素对齐 |
| 多面体检测 | 手机中框、电池外壳、3C结构件 | 4~12台 | 多角度同步抓拍、三维重建 |
| 立体视觉 | 机器人抓取、AGV避障、尺寸测量 | 2~4台 | 双目/多目立体匹配、深度图生成 |
一个真实的例子: 去年我帮一家电池厂做极片涂布缺陷检测。极片幅面宽1.2米,产线速度80米/分钟。单相机分辨率不够,最后用了4台25MP相机,每台负责300mm宽的区域。嗯,这里要注意——视野拼接的精度直接决定了缺陷定位的准确性,差0.1mm,后工序就切偏了。
1.2 同步与融合的核心挑战
多相机系统听起来简单:多装几个相机不就行了?但实际落地时,有两个坎儿绕不过去——同步和融合。
1.2.1 同步:让所有相机在同一时刻“眨眼”
我刚开始做多相机项目时,犯过一个低级错误:用软件触发。结果四台相机拍到的画面,时间差最大能到50ms。产线速度一快,同一个缺陷在A相机里出现在位置X,在B相机里已经跑到位置Y了。拼出来的图,错位得一塌糊涂。
同步的核心难点有三个:
- 硬件触发延迟不一致——不同相机的传感器响应时间有差异,哪怕同时收到触发信号,曝光开始时刻也可能差几微秒到几十微秒
- 曝光时间差异——如果各相机曝光时间不同,结束时刻的差异会进一步放大
- 传输延迟——图像数据从相机传到工控机,走的路径不同,到达时间也不同
我的经验: 工业场景下,别指望纯软件同步。老老实实走硬件触发线,用PLC或专用的同步控制器发出同一脉冲。同步精度做到微秒级,后面融合才有的谈。
1.2.2 融合:把多张图拼成一张“完整”的图
同步解决了“什么时候拍”的问题,融合解决的是“拍到的数据怎么合在一起”。
融合的挑战更隐蔽:
- 几何畸变——每个镜头都有畸变,边缘区域尤其明显。不校正直接拼,接缝处会出现重影或断裂
- 光照不一致——不同相机对着不同区域,光源角度、亮度很难完全一致。拼出来的图,明一块暗一块,算法根本没法跑
- 重叠区处理——相邻相机之间必须有重叠区域(一般10%~20%),但重叠区的像素怎么融合?直接平均会模糊,加权融合又需要精确的权重图
我曾经踩过的坑: 有次做手机中框检测,六台相机围成一圈。标定做了,同步也做了,但拼出来的图在接缝处总有一条暗线。查了两天才发现——其中一台相机的光圈环被碰歪了,进光量比其他相机少了15%。从那以后,我每次部署多相机系统,第一件事就是做光度一致性标定。
1.3 课程整体架构
这门课一共30章,我把它分成四个模块。你可以把它想象成盖一栋楼:
每个模块之间是递进关系。你没法跳过标定直接做融合,也没法不解决同步就去搞拼接。我见过太多人上来就调拼接算法,结果发现图像根本对不上——回头一看,标定误差0.5个像素,同步抖动20微秒。嗯,这种弯路,我希望你别走。
我的建议: 学这门课的时候,每章结束后,最好能动手搭一个小实验。哪怕只是用两个USB相机做同步触发,也比只看理论强。纸上得来终觉浅,做视觉这行,手底下的功夫骗不了人。