3. 图像采集与传输优化
在 VisionPro 项目中,算法再优秀,如果进入 ToolBlock 的图像本身存在丢帧、拖影、曝光不足或传输延迟,后续的定位、测量与检测都会失去意义。图像采集与传输优化要解决的核心问题是:让相机在正确的时刻、以正确的曝光和稳定的数据流,把可用的图像交给视觉算法。本节围绕相机选型、触发模式、带宽控制、丢帧排查与采集时间测量五个环节展开,重点说明实际工程中如何判断与调整。
一、相机选型:从检测需求反推参数
相机选型不是先看型号,而是先明确检测对象与精度要求。假设需要检测一个 60 mm × 40 mm 的工件,要求最小缺陷尺寸为 0.1 mm,且缺陷至少占 3 个像素才能稳定识别。则所需分辨率约为:60 ÷ (0.1 ÷ 3) = 1800 像素(长边),40 ÷ (0.1 ÷ 3) = 1200 像素(短边)。考虑边缘留白与算法容差,选择 2000 × 1500 像素(约 300 万像素)的相机较为合理。
帧率由生产节拍决定。若节拍为 300 ms/件,且每件需采集 1 张图,则相机帧率至少 3.3 fps;若需多工位或多曝光合成,则按实际张数叠加。接口方面,GigE Vision 适合长距离布线(可达 100 m),USB3 Vision 适合短距离高带宽场景,Camera Link 适合高速多相机同步。选型时还需确认传感器类型(CMOS 全局快门适合运动物体,卷帘快门在高速运动下会产生果冻效应)、镜头接口(C/CS 口)与靶面尺寸匹配。
二、触发模式:决定图像与运动的对应关系
触发模式直接决定“拍到的图像是否对应正确位置”。连续采集(Free Run)适合静态或低速场景;软触发由软件发出信号,适合节拍不固定的工位;硬触发由光电传感器、编码器或 PLC 发出,适合高速运动中的精确定位。对于传送带上的工件,常用编码器触发配合分频,使相机按固定位移间隔采集,避免速度波动导致图像拉伸或压缩。
触发延迟与抖动是硬触发的关键参数。若传感器到相机存在 200 μs 延迟,且传送带速度为 500 mm/s,则触发时刻与曝光时刻之间工件已移动 0.1 mm。对于 0.1 mm 级检测,这一误差不可忽略,需要通过触发提前量或编码器位置补偿来修正。曝光时间则需在运动模糊与亮度之间折中:曝光时间 t 内工件移动距离 d = v × t,若要求 d ≤ 1 个像素对应的物理尺寸,则 t ≤ 像素精度 ÷ v。
三、带宽控制:算清楚再配置
带宽不足是丢帧最常见的原因之一。以 GigE Vision 为例,理论带宽 1000 Mbit/s,但实际有效吞吐通常在 700~900 Mbit/s 之间,需扣除协议开销、重传与突发流量。若相机输出 2000 × 1500 × 8 bit 的灰度图,单帧数据量为 24 Mbit;在 30 fps 下需要 720 Mbit/s,已接近 GigE 上限。此时若同一网卡还连接其他相机或与办公网络共用,丢帧几乎必然发生。
控制手段包括:降低帧率或使用感兴趣区域(ROI)只输出缺陷可能出现的区域;启用像素合并(Binning)降低分辨率;使用压缩传输(如 JPEG 或无损压缩,需相机支持);将多相机分配到不同网卡或使用万兆网卡。对于 USB3 Vision,需注意控制器带宽共享问题,避免多个高带宽设备挂在同一 USB 控制器下。配置后应通过相机厂商工具或 VisionPro 的采集统计查看实际吞吐与丢帧计数。
四、丢帧排查:从现象到根因
丢帧的表现是采集帧数少于触发次数,或图像出现撕裂、重复、时间戳跳变。排查应按“先带宽、后触发、再主机”的顺序进行。首先确认相机实际输出帧率与触发频率是否匹配;其次检查网卡是否启用巨帧(Jumbo Frame,通常设为 9014 字节),并关闭节能以太网与中断节流;再次检查主机 CPU 占用、内存分配与采集缓冲队列深度。若使用硬触发,还需用示波器或采集卡的时间戳功能确认触发信号是否干净、是否存在抖动或丢脉冲。
五、采集时间测量:用数据定位瓶颈
采集时间测量是优化的依据。完整单帧采集时间可拆分为:触发延迟、曝光时间、读出时间、传输时间与主机缓冲时间。测量方法有两种:一是使用相机 SDK 提供的时间戳,记录触发时刻与图像到达时刻;二是在 VisionPro 中通过 CogAcqFifoTool 的 LastFrameTime 或自定义脚本记录采集前后时间差。若曝光时间为 500 μs、读出时间为 8 ms、传输时间为 12 ms,则单帧总时间约 20.5 ms,对应最高约 48 fps;若实际节拍要求 30 fps,则有余量;若要求 60 fps,则必须缩短读出或传输时间。
实际优化时,可先固定曝光与触发,单独测量传输时间:将相机对准静态目标,连续采集 100 帧,记录每帧到达主机的时间间隔,计算平均值与最大值。若最大值远大于平均值,说明存在突发阻塞,应检查网卡缓冲与主机负载。若平均值本身已接近节拍上限,则需降低分辨率、启用 ROI 或升级接口。
六、工程检查清单
| 检查项 | 典型值/操作 | 判断依据 |
|---|---|---|
| 分辨率与精度 | 按缺陷像素数反推 | 缺陷 ≥ 3 像素 |
| 帧率与节拍 | 帧率 ≥ 节拍需求 × 安全系数 1.2 | 无等待、无堆积 |
| 触发模式 | 运动场景用硬触发 + 编码器 | 图像位置一致 |
| 曝光时间 | t ≤ 像素精度 ÷ 运动速度 | 无运动模糊 |
| 带宽占用 | ≤ 接口有效带宽的 70% | 丢帧计数为 0 |
| 网卡设置 | 巨帧 9014、关闭节能 | 吞吐稳定 |
| 采集时间 | 分段测量,定位最大项 | 总时间 ≤ 节拍 |
图像采集与传输优化的本质,是把“相机—接口—主机—算法”当作一条完整链路来对待。选型决定上限,触发决定正确性,带宽决定稳定性,丢帧排查决定可维护性,采集时间测量决定优化方向。只有这五个环节都经过量化确认,VisionPro 的算法才能在真实产线上持续输出可靠结果。