4. MERLIC中的图像采集与同步配置
在MERLIC的多相机工程中,图像采集不是“把相机连上就能跑”的简单动作,而是由采集序列、触发源、任务编排和同步状态监控共同构成的一条完整链路。本节围绕这四个环节展开,重点说明在MERLIC中如何把多台相机的取像行为组织成可预测、可复现、可诊断的采集过程。
采集序列:把“连续取像”拆成可管理的单元
MERLIC的图像采集以“采集序列”为基本组织单位。一个采集序列可以理解为一次或多次取像的集合,它决定了相机在什么条件下开始取像、取多少张、以什么节奏取,以及取像结果如何进入后续的MERLIC工具链。对于多相机工程,采集序列不是单台相机的私有配置,而是需要跨相机协调的公共节奏。
在MERLIC中配置采集序列时,通常需要关注以下参数:
- 采集模式:单次触发、连续采集或有限张数采集。单次触发适合与外部传感器配合的定位场景;连续采集适合需要持续监控的产线;有限张数采集适合标定或测试。
- 图像数量:在有限张数模式下,明确每台相机需要采集的图像帧数。多相机标定时,通常要求每台相机采集相同数量的标定板图像。
- 超时时间:单次取像等待的上限。超时后MERLIC会抛出采集异常,便于上层逻辑判断是相机掉线、触发丢失还是曝光不足。
- 采集间隔:连续采集时相邻两次取像之间的时间间隔。间隔过短可能导致相机未完成传输就被下一次请求覆盖。
一个常见的教学示例是:两台面阵相机分别从不同角度拍摄同一块标定板,采集序列设置为“有限张数、每台20张、超时500 ms、间隔200 ms”。这里的20张是示例值,实际数量应根据标定板在视野中的姿态覆盖情况调整。间隔200 ms也是示例,真实工程中应结合相机帧率和传输带宽确定。
触发源选择:决定“谁让相机按下快门”
触发源是采集序列的启动条件。MERLIC支持多种触发方式,选择哪一种,直接决定了多相机之间能否真正同步。常见的触发源包括:
- 软件触发:由MERLIC流程内部或外部程序发出触发信号。优点是灵活、易于调试;缺点是软件调度存在抖动,多相机之间难以做到微秒级同步。
- 硬件触发:由外部PLC、光电传感器或触发卡发出电平或脉冲信号,直接接入相机的触发输入。硬件触发抖动小,适合多相机同步采集。
- 相机自由运行:相机按自身帧率连续输出,MERLIC被动接收。这种方式不需要触发源,但多相机之间没有共同的时间基准,不适合需要严格同步的测量任务。
在多相机同步场景中,推荐的做法是:由同一个硬件触发源同时驱动所有相机,或者使用支持同步触发输出的主相机,将其闪光/触发输出接到从相机的触发输入。这样,所有相机在同一时刻曝光,图像之间的时间偏差主要来自相机自身的触发延迟和曝光起始抖动,而不是软件调度。
多相机采集任务编排:让多台相机按同一节奏工作
MERLIC的多相机采集任务编排,核心是解决“谁先谁后、谁等谁”的问题。常见的编排方式有三种:
- 并行采集:所有相机同时启动采集序列,各自独立完成取像。适合相机之间没有严格先后依赖、但需要时间对齐的场景。
- 主从采集:一台主相机触发后,从相机跟随触发。主相机负责与外部信号交互,从相机只负责取像。这种方式接线简单,但主相机的触发输出能力有限,从相机数量不宜过多。
- 外部控制器编排:由PLC或运动控制器统一发出多路触发信号,分别驱动每台相机。这种方式最灵活,也最容易实现精确的时序控制,但需要额外的硬件和接线。
在MERLIC中编排多相机任务时,需要为每台相机建立独立的采集序列,并在流程层面用一个共同的“采集开始”事件将它们关联起来。如果使用MERLIC的Recipe或流程控制,可以把“启动所有相机采集”作为一个同步点,确保没有相机在未准备好的情况下被触发。
时间戳与同步状态监控:判断“是否真的同步了”
采集配置完成后,必须通过时间戳和同步状态来判断多相机是否真正同步。MERLIC会为每张图像记录时间戳,但需要注意时间戳的来源:有的来自相机内部时钟,有的来自主机系统时钟,有的来自触发信号到达时刻。不同来源的时间戳不能直接相减来评估同步精度。
在多相机同步监控中,建议关注以下指标:
- 触发到曝光延迟:从触发信号到达相机到实际曝光开始的时间。该值由相机手册给出,不同型号差异较大。
- 曝光时间:每台相机的曝光时间应尽量一致,否则即使触发同步,图像亮度也会不同。
- 时间戳偏差:同一触发事件下,各相机图像时间戳之间的差值。该差值应小于应用允许的同步误差。
- 丢帧与超时计数:MERLIC的采集状态中会统计丢帧和超时次数。如果丢帧持续增加,说明触发频率超过了相机或传输链路的处理能力。
下面这张图展示了多相机同步采集的信号链与状态监控关系。图中以两台相机为例,外部触发信号同时到达两台相机,相机分别输出图像和时间戳,MERLIC采集模块对时间戳偏差和丢帧状态进行监控,并据此判断同步是否达标。
在实际调试中,可以先用单次触发采集一组图像,读取两台相机的时间戳,计算偏差。如果偏差稳定且小于允许值,说明触发链路和相机配置基本正确;如果偏差波动很大,应优先检查触发信号是否受到干扰、相机触发模式是否设置为“上升沿”或“下降沿”一致、以及是否存在软件触发与硬件触发混用的情况。
配置检查清单
为了便于在工程中快速核对,下面给出一份多相机采集与同步配置的检查清单。该清单只包含与本节直接相关的字段,可根据实际相机型号和MERLIC版本调整。
| 检查项 | 典型值 / 状态 | 判断依据 |
|---|---|---|
| 采集模式 | 有限张数 / 连续采集 | 标定用有限张数,产线监控用连续采集 |
| 触发源 | 硬件触发(同一信号源) | 多相机同步必须共用触发源 |
| 触发沿 | 所有相机一致(上升沿或下降沿) | 不一致会导致部分相机漏触发 |
| 曝光时间 | 各相机一致或按需设置 | 不一致会影响图像亮度一致性 |
| 时间戳偏差 | ≤ 应用允许值(示例:≤ 1 ms) | 超过允许值需检查触发链路 |
| 丢帧计数 | 持续为 0 或稳定不增长 | 增长说明触发频率或带宽超限 |
| 超时计数 | 0 | 非零需检查连接、供电和曝光 |
需要强调的是,表中的“≤ 1 ms”是示例阈值,不是MERLIC的固定要求。实际允许的同步误差取决于应用:普通存在性检测可能允许几毫秒偏差,而高精度三维重建或运动物体测量可能要求几十微秒甚至更小。配置时应先明确应用允许的同步误差,再反推触发方式和相机选型。
最后,多相机采集与同步配置不是一次性的工作。每次更换相机、调整触发接线、修改曝光时间或更新MERLIC工程后,都应重新检查时间戳偏差和丢帧计数。只有把采集序列、触发源、任务编排和状态监控作为一个整体来验证,才能保证多相机系统在长时间运行中保持稳定同步。