4. MERLIC图像采集环节的节拍影响分析
在高速产线中,MERLIC 的图像采集环节往往被误认为只是“拍一张图”,实际上它由三个可独立量化的时间分量串联而成:触发与相机响应时间、曝光与读出时间、图像传输与接收时间。单件处理时间中属于采集的那一部分,近似等于这三者之和再加上软件侧的取像调用开销。理解这三段各自的物理来源和参数依赖,才能判断节拍瓶颈究竟出在相机、光源、链路还是 MERLIC 的取像配置上。
一、触发模式决定的是“等待时间”而非“曝光时间”
MERLIC 通过图像源接口(如 GigE Vision、USB3 Vision 或相机厂商的 MERLIC 图像源插件)获取图像。常见的触发模式有三类:
- 自由运行(Free Run):相机按自身帧率连续出图,MERLIC 取像时取“当前最新一帧”。此时单件采集时间不固定,取决于取像时刻与相机出图相位的相对关系,最坏情况下要等接近一个完整帧周期。
- 软触发(Software Trigger):MERLIC 在需要时发出触发命令,相机收到后开始曝光。触发命令经驱动、网卡、相机固件传递,典型延迟在 0.2~2 ms 量级,抖动比自由运行小得多。
- 硬触发(Hardware Trigger):由光电传感器或 PLC 直接给相机触发输入,绕过主机软件路径,延迟通常可压到几十微秒,且抖动最小,是高速产线首选。
关键结论是:触发模式影响的是“从决定拍照到曝光开始”的这段等待与抖动,它不改变曝光时间本身,但会显著改变单件采集时间的均值和方差。产线节拍优化中,方差往往比均值更致命——均值超标可以靠提速解决,抖动超标只能靠同步机制解决。
二、曝光时间:不是越短越好
曝光时间由光源亮度、镜头光圈、被检物运动速度和所需信噪比共同决定。设产线速度为 v(mm/s),允许的运动模糊为 b(mm),则曝光时间上限为:
t_exp_max = b / v
示例:v = 500 mm/s,允许模糊 b = 0.05 mm
t_exp_max = 0.05 / 500 = 0.0001 s = 100 µs
若实际曝光设为 300 µs,运动模糊将达 0.15 mm,边缘检测和尺寸测量的重复性会明显下降。反过来,盲目把曝光压到 50 µs,若光源亮度不足,图像信噪比下降,MERLIC 中的匹配、测量工具可能因对比度不足而失败,反而增加重拍或误判成本。因此曝光时间的优化目标是:在满足图像质量下限的前提下取尽可能短的值,并通过提高光源亮度、增大光圈、使用频闪光源来换取更短的曝光。
此外要注意,相机从曝光结束到图像数据可读出的读出时间与曝光时间部分重叠或串行,取决于传感器是否支持重叠读出(overlapped readout)。卷帘快门相机在高速场景下还会引入行间时间差,进一步影响运动物体的几何一致性。
三、传输带宽:被低估的节拍杀手
图像传输时间由数据量和有效带宽决定。以一台 500 万像素、8 bit 灰度相机为例,单帧原始数据量为:
数据量 = 2448 × 2048 × 1 Byte ≈ 5.01 MB
GigE Vision(千兆网,理论 125 MB/s,实测有效约 110 MB/s):
t_transfer ≈ 5.01 / 110 ≈ 45.5 ms
USB3 Vision(实测有效约 350 MB/s):
t_transfer ≈ 5.01 / 350 ≈ 14.3 ms
万兆网(实测有效约 900 MB/s):
t_transfer ≈ 5.01 / 900 ≈ 5.6 ms
可以看到,千兆网下单帧传输就要 45 ms 以上,若产线节拍要求 80 ms/件,仅传输就占去一半以上,几乎没有余量留给 MERLIC 的图像处理。这正是很多产线“相机不慢、算法不慢,但整体就是慢”的根因。带宽优化手段包括:改用万兆网或 USB3、启用相机的像素格式压缩(如 PFNC 的 8 bit 替代 16 bit)、只传输 ROI 区域而非全画幅、多相机分流到不同网卡。
四、三段时间的合成与瓶颈定位
把上述三段放在一起,可以画出单件采集时间的构成关系。下图以硬触发 + 500 万像素相机为例,展示触发、曝光、读出、传输在时间轴上的先后与重叠关系,并标出可压缩的环节。
从图中可以读出两个判断依据:第一,当传输时间占比超过 50% 时,优先升级链路而不是调相机参数;第二,当曝光与读出之和接近允许运动模糊上限时,优先改光源和镜头,而不是继续压曝光。MERLIC 侧能做的优化主要是减少取像调用开销、避免在采集线程中做耗时预处理、合理设置图像源超时与缓冲区数量,防止因缓冲区不足导致丢帧重取。
五、一个可复用的核算表
实际工程中建议按下表逐项填写,把“感觉慢”变成“知道慢在哪”。表中数值为示例,需按现场实测替换。
| 环节 | 关键参数 | 示例值 | 优化手段 |
|---|---|---|---|
| 触发传递 | 触发模式、抖动 | 硬触发 0.05 ms | 光电直连相机,避免软件路径 |
| 曝光 | 曝光时间、运动模糊 | 100 µs / 0.05 mm | 提高光源亮度、增大光圈 |
| 读出 | 传感器读出方式 | 0.3 ms | 启用重叠读出、降低分辨率 |
| 传输 | 数据量、有效带宽 | 5 MB / 350 MB/s | 万兆网、ROI、8 bit 格式 |
| MERLIC 取像 | 缓冲区、超时 | 0.5 ms | 预分配缓冲、独立采集线程 |
最后要强调,采集环节的优化必须与 MERLIC 的处理环节联合评估。采集省下的 10 ms,如果被后续工具链的等待或重拍吃掉,整体节拍并不会改善。建议在 MERLIC 的配方中记录每次取像的时间戳,结合产线 PLC 的节拍信号,定位是采集慢、处理慢还是同步等待慢,再决定改相机、改链路还是改流程。