1. 多相机同步采集系统概述
多相机同步采集系统,是指由两台或两台以上工业相机在同一时间基准下对同一场景或同一运动过程进行图像采集,并保证各相机曝光时刻、帧序号与时间戳之间具有确定对应关系的软硬件整体。它并不是简单地把几台相机接到同一台计算机上,而是要在触发、时钟、传输、缓存、存储和软件调度等多个环节建立统一的时间秩序。Basler 作为工业视觉领域的主流厂商,其产品线为这类系统提供了从相机、镜头、线缆到采集卡与软件 SDK 的完整选择空间。
Basler 相机产品线的选型维度
理解 Basler 产品线,关键不是背型号,而是掌握几条选型轴。第一条是接口:ace 系列中的 GigE 型号适合长距离布线、多机分布式部署,单口千兆带宽约 1 Gbit/s;USB 3.0 型号带宽高、布线简单,适合短距离高帧率场景;CoaXPress 与 Camera Link 则面向更高带宽和更低延迟的确定性采集,常配合专用采集卡使用。第二条是传感器与分辨率:从 130 万像素到 2000 万像素以上,分辨率越高,单帧数据量越大,对带宽和存储的压力越明显。第三条是快门类型:全局快门(Global Shutter)在同一时刻曝光全部像素,适合运动物体测量;卷帘快门(Rolling Shutter)逐行曝光,成本低但在高速运动下会产生几何畸变。第四条是色彩与光谱:黑白相机灵敏度高、数据量小,常用于尺寸测量与定位;彩色相机用于颜色识别;近红外与偏振型号则服务于特殊检测需求。
此外,Basler 的 dart、pulse、boost 等系列在体积、板级集成、嵌入式接口方面各有侧重,而 pylon 软件套件统一了相机枚举、参数配置、图像获取与事件回调接口,使多相机程序可以在同一套 API 下管理不同接口的相机。这一统一性对同步采集系统尤为重要,因为多机系统的复杂度往往不在单台相机,而在多台相机之间的协同。
典型应用场景
多相机同步采集的价值,在于单相机无法同时满足视场、视角、精度或三维信息的需求。常见场景包括:
- 三维重建与双目/多目立体视觉:多台相机从不同视角拍摄同一物体,依靠同一时刻的图像计算视差与深度。若曝光不同步,运动物体在左右图像中的位置不一致,深度结果会出现系统性误差。
- 大尺寸物体表面检测:印刷品、板材、织物等幅面超过单相机视场,需要多相机拼接。同步采集保证拼接缝两侧的图像属于同一运动状态,避免错位。
- 运动分析与轨迹测量:多相机环绕拍摄高速运动目标,用于测量速度、姿态或形变。曝光时刻的偏差直接转化为位置误差。
- 多工位并行检测:一条产线上多个检测工位同时工作,需要统一时间戳以便追溯同一工件在各工位的图像。
- 机器人引导与手眼系统:多个相机分别负责大范围定位与局部精定位,同步后才能在统一坐标系中融合。
系统设计目标
一个合格的多相机同步采集系统,通常要同时满足以下目标:
- 时间一致性:各相机曝光时刻的偏差应远小于被测量运动所允许的误差。例如测量 1 m/s 运动物体、允许 0.1 mm 位置误差时,曝光同步偏差需小于 100 µs。
- 帧对应确定性:每一帧图像都能明确对应到唯一的触发序号与时间戳,不出现丢帧、错帧或重复帧。
- 带宽与吞吐匹配:总数据率不超过接口、总线、内存与存储的可持续能力。
- 可扩展性:增加相机数量时,同步精度与帧率不显著劣化。
- 可观测与可恢复:系统能报告触发丢失、时间戳跳变、缓冲区溢出等异常,并支持重新同步。
主要挑战
多相机同步的困难来自多个层面。硬件层面,不同接口的触发延迟不同,GigE 相机的触发到曝光延迟通常为几十微秒量级,USB 相机受主机调度影响抖动更大;软件层面,操作系统并非实时系统,多线程采集、图像回调与写盘竞争 CPU 和内存带宽,容易造成缓冲区堆积;时钟层面,若各相机使用独立内部时钟,长时间运行会因晶振漂移产生累积偏差。因此,实际系统往往需要外部硬件触发或 IEEE 1588 精密时间协议来建立共同时间基准。
下面这张图给出多相机同步采集系统的整体信号与数据关系:触发源产生统一的时间基准,分配给各相机;相机在曝光后经各自接口把图像送入主机;主机按时间戳与帧序号完成配对、缓存与存储。图中同时标出了同步偏差、带宽和缓冲这三个关键风险点。
设计时应先确定的几个量
在动手搭建之前,建议先把下面几个量算清楚,它们决定了后续接口、触发方式和主机配置的选择。
| 参数 | 含义 | 示例取值 | 影响 |
|---|---|---|---|
| 单相机数据率 | 分辨率 × 位深 × 帧率 | 500 万像素 × 8 bit × 60 fps ≈ 2.4 Gbit/s | 决定接口是否够用 |
| 相机数量 | 同时工作的相机台数 | 4 台 | 决定总带宽与触发扇出 |
| 允许同步偏差 | 曝光时刻最大允许差 | ≤ 50 µs | 决定用软触发还是硬触发 |
| 连续采集时长 | 单次任务持续时间 | 30 min | 决定存储容量与写盘带宽 |
| 运动速度 | 被测物最大速度 | 1 m/s | 与同步偏差共同决定位置误差 |