3. 图像采集与传输

图像采集,说白了就是视觉系统的"眼睛"怎么把看到的东西传到电脑里。我做了这么多年工业视觉,见过太多项目因为协议选型翻车——不是带宽不够,就是线长受限,或者触发抖动导致漏检。今天咱们就把这两个主流协议掰开揉碎讲清楚。

一、GigE Vision 协议

GigE Vision 基于千兆以太网,是工业视觉的老牌选手。我个人习惯在远距离、多相机场景优先考虑它。

核心优势: 传输距离可达100米(用CAT6线),支持PoE供电,多相机组网方便。

关键参数

  • 理论带宽:125 MB/s(1 Gbps),实际可用约110 MB/s
  • 最大线长:100米(无中继器)
  • 协议开销:约8-12%
  • CPU占用:较高,需专用网卡或优化驱动

我在项目中遇到过一条产线,相机到工控机距离80米,USB3根本没法用,最后用GigE Vision加PoE供电,一根网线搞定。嗯,这里要注意:长距离传输一定要用屏蔽网线,否则电磁干扰会让你丢包丢到怀疑人生。

二、USB3 Vision 协议

USB3 Vision 是后来者,主打高带宽和低延迟。说白了,它更适合近距离、高帧率的场景。

核心优势: 理论带宽5 Gbps(实际约3.2 Gbps),延迟低至微秒级。

关键参数

  • 理论带宽:625 MB/s(5 Gbps),实际约400 MB/s
  • 最大线长:3-5米(USB3.0标准),可延长至10米(有源线)
  • 协议开销:约5-8%
  • CPU占用:较低,UVC协议成熟

你想想看,同样是传输200万像素图像,USB3 Vision能跑到300fps以上,而GigE Vision撑死100fps。但代价就是距离受限——我曾经有个项目,相机离主机8米,用USB3有源线勉强能跑,但偶尔掉帧,最后被迫改方案。

三、协议对比表

对比项 GigE Vision USB3 Vision
理论带宽 125 MB/s 625 MB/s
实际带宽 ~110 MB/s ~400 MB/s
最大线长 100米 3-5米
PoE供电 支持 不支持
多相机同步 IEEE 1588 硬件触发
CPU占用 较高 较低
典型场景 远距离、多相机 高帧率、短距离

四、触发模式:硬件触发 vs 软件触发

触发模式决定了相机什么时候开始采集。我见过太多项目因为触发抖动导致图像模糊,或者漏掉缺陷。这里直接上干货。

硬件触发

  • 原理:外部信号(如光电传感器)直接触发相机曝光
  • 延迟:< 1微秒,抖动< 100纳秒
  • 适用:高速运动、精确同步场景
我的经验: 硬件触发一定要用差分信号(如RS422),单端信号在长距离下容易受干扰。我曾经在一条产线上用5V TTL触发,结果因为电机干扰,触发抖动达到50微秒,图像位置偏差了3个像素。

软件触发

  • 原理:主机通过API发送触发指令
  • 延迟:1-10毫秒,抖动较大
  • 适用:低速、非实时场景
避坑指南: 软件触发不要用于运动物体检测。Windows系统下,软件触发延迟可能达到20毫秒以上,而且抖动不可控。我曾经用软件触发做PCB板检测,结果因为触发延迟,图像里元件位置每次都不同,算法根本没法稳定检测。

五、帧率与带宽计算

帧率计算是视觉系统设计的核心。说白了,你要先算清楚"相机能跑多快",再算"系统能不能接住"。

帧率计算公式

帧率 = 带宽 / (图像宽度 × 图像高度 × 像素深度 × 通道数)

示例:
相机:500万像素(2592×1944)
像素深度:8 bit(1 byte)
通道数:1(黑白)
带宽:110 MB/s(GigE实际)

帧率 = 110 / (2592 × 1944 × 1 × 1)
     = 110 / 5,038,848
     ≈ 21.8 fps

你想想看,如果换成USB3 Vision(实际带宽400 MB/s),帧率能到79 fps。这就是为什么高帧率场景必须上USB3。

带宽计算实战

我建议你按这个步骤算:

  1. 确定图像分辨率(宽×高)
  2. 确定像素深度(8/10/12 bit)
  3. 确定通道数(1黑白/3彩色)
  4. 计算单帧数据量 = 宽×高×深度×通道
  5. 计算所需带宽 = 单帧数据量 × 目标帧率
  6. 对比协议实际带宽,留20%余量
实战案例: 检测手机屏幕,分辨率2448×2048,10 bit深度,彩色,目标帧率30 fps。 单帧数据量 = 2448×2048×1.25×3 = 18.8 MB 所需带宽 = 18.8×30 = 564 MB/s 结论:GigE Vision(110 MB/s)完全不够,必须用USB3 Vision(400 MB/s)或10GigE。

六、协议选择决策流程

图像采集协议选择决策流程 开始选型 传输距离 > 5米? 是 否 GigE Vision USB3 Vision 带宽:110 MB/s 线长:100米 带宽:400 MB/s 线长:3-5米 高帧率场景优先USB3 Vision 远距离/多相机场景优先GigE Vision

七、实战选型建议

我总结了一套选型口诀,你记一下:

选型口诀:
距离远,选GigE,百米传输没问题
帧率高,选USB3,带宽管够延迟低
多相机,用GigE,1588同步很省心
短距离,高帧率,USB3 Vision是首选

最后说一句:别只看理论值。实际项目中,网卡性能、CPU负载、内存带宽都会影响实际帧率。我建议你选型时留30%余量,否则调试阶段会非常痛苦。