工业相机的帧率

帧率是工业相机捕捉并传输独立图像的频率,以每秒帧数(FPS)为单位。在指定工业相机的帧率时,您实际上是在定义一条生产线的速度极限。如果传送带每秒有 50 个零件经过镜头前方,系统就必须在同一时间窗口内可靠地获取、传输并处理至少 50 帧画面,且不得丢失数据。要获得更高吞吐量,工程师必须在传感器分辨率与接口带宽、曝光时间这些硬性物理限制之间取得平衡。

相机速度的物理原理

帧率并不只是您在软件滑块中输入的目标值,而是一种受三个连续过程支配的物理约束:曝光、传感器读出和数据传输。

生成单帧画面所需的总时间,主要由曝光时间(图像传感器接受光照的时长)和读出时间(CMOS 传感器将累积电荷转换为数字信号所需的时间)共同决定。如果某项检测任务光线不足,需要 20 毫秒曝光才能获得可接受的信噪比,那么理论最大帧率就不可能超过 50 FPS--无论传感器架构或线缆有多快。

接口带宽瓶颈

一旦图像数据离开传感器,就必须传输到主机 PC 或嵌入式视觉板。在高分辨率应用中,硬件接口几乎总是首要瓶颈。

一颗 2000 万像素的传感器每帧产生的数据量极其庞大。如果接口无法以足够的速度通过线缆传输这些数据,相机就必须降低自身的捕获速率,以避免内部缓冲溢出。

接口标准

实用带宽

对帧率的影响

GigE Vision(1 GigE)

约 115 MB/s

会将高分辨率相机的帧率限制在较低水平。非常适合长距离布线。

USB3 Vision

约 400 MB/s

行业的标准主力。可在中高分辨率下支持较高帧率。

MIPI CSI-2

按 lane 扩展(如 4 lane 时约 1.25 GB/s)

板对板直接连接,绕过常规线缆,在嵌入式系统中实现最大 FPS。

如何在不更换硬件的情况下提升帧率

如果您的相机已触及带宽上限,但生产线又必须运行得更快,您主要可以通过两种基于软件的方式在不升级硬件的前提下提升 FPS:

1. 感兴趣区域(ROI)

与其读取整张传感器,不如配置相机只读取特定的像素区域。比如在画面中心追踪一个小条码时,将一颗 500 万像素的传感器裁剪到 1000×1000 像素的 ROI,可大幅降低数据负载。接口传输较小画面的速度快得多,相机帧率随之飞涨。

2. Binning / Decimation(合并 / 抽样)

如果您需要保持完整的光学视场,又希望获得更高的速度,可以使用 binning(合并相邻像素)或 decimation(跳过部分像素)。它们都会降低传输画面的整体分辨率,从而减少带宽需求并提高帧率,但会直接牺牲空间分辨率。

帧率 vs. 曝光时间:取舍是什么?

要提高帧率,您往往必须缩短曝光时间,这是无法绕过的物理取舍。

更短的曝光意味着到达光电二极管的光子更少。如果您将帧率从 60 FPS 提升到 120 FPS,实际上就把最大可用曝光时间减半,亮度也随之下降,每帧收集到的光子总量减少,信噪比也会变差。要在高帧率下保持画面清晰、对比鲜明,您必须为检测区域提供高强度的工业照明,或改用同步触发的频闪灯。

常见问题

丢帧是指相机产生数据的速度超过了主机系统能够处理的速度。这通常并不是相机本身的故障。常见原因包括接口带宽被占满、网络交换机过载(GigE 配置中),或主机 PC 的 CPU 无法及时处理传入的图像缓冲。

取决于图像处理在什么环节进行。如果彩色相机输出的是原始 Bayer 数据(通常为 8 bit),其带宽需求与黑白相机完全相同。但如果将相机配置为在板上完成去 Bayer 处理并输出 RGB24 格式,则每像素的数据量会增大三倍,带宽暴增,最大帧率也会显著下降。

不一定。USB 3.1 相机或许可以稳定捕获并传输 200 FPS 的画面,但如果机器视觉软件每帧需要 15 毫秒来运行复杂算法,那么在没有硬件流水线或多线程缓冲的情况下,您的有效吞吐就被限制在约 66 FPS。相机的捕获速率最终必须与系统的实际处理能力匹配。

术语表