机器视觉里的“帧率”,一次就弄明白

机器视觉里的“帧率”,一次就弄明白

1) 帧率到底是啥?

面阵相机(Area Scan):一拍就是一整张图。

帧率(FPS)=每秒能拍多少“张”。15 FPS 就是一秒最多拍 15 张。线阵相机(Line Scan):一拍只是一“行”像素,很多行拼成一张长图。

行频(Line Rate)=每秒能扫多少“行”。工程上常说 kHz:比如 50 kHz≈每秒 50,000 行。(你举的“50 赫兹=5 万行/秒”这句口语里其实指的是 50 kHz。)

记法:面阵看“张数”,线阵看“行数”。

2) 为什么选帧率要看“速度”?

核心思路特别简单:相机的拍摄速度 ≥ 被检物的到达/移动速度。

按件触发(面阵):一件来一张,那就要保证 FPS ≥ 件/秒;最好再留点余量(比如 ×1.2~×2),防抖防抖动、防抖峰值。

连续移动(线阵):皮带、辊道不停走,要求行频跟上线速度。

公式超好用:

行频(行/秒)=线速度(mm/s)物方像素尺寸(mm/像素)

\text{行频(行/秒)}=\frac{\text{线速度(mm/s)}}{\text{物方像素尺寸(mm/像素)}}

行频(行/秒)=物方像素尺寸(mm/像素)线速度(mm/s)​

例子:皮带 2000 mm/s、物方像素 0.05 mm/px → 行频 = 2000 / 0.05 = 40 kHz。

再进一小步:运动模糊来自曝光时间过长。要想“冻住”物体,曝光时间 TeT_eTe​ 要小到让物体在曝光期间位移不超过你能接受的像素数 bbb:

Te≤b×物方像素尺寸线速度

T_e \le \frac{b \times \text{物方像素尺寸}}{\text{线速度}}

Te​≤线速度b×物方像素尺寸​

拍得越清,TeT_eTe​ 就得越短,通常就意味着要更亮的光或更灵敏的镜头/相机。

3) 帧率和分辨率、接口带宽是一根绳上的蚂蚱

同一台相机里,分辨率越高、位深越大、帧率越高,数据率就越大,到了接口就可能“呛住”。粗算公式:

面阵:

数据率(B/s)≈宽×高×位深(Byte)×FPS

\text{数据率(B/s)} \approx \text{宽} \times \text{高} \times \text{位深(Byte)} \times \text{FPS}

数据率(B/s)≈宽×高×位深(Byte)×FPS

线阵:

数据率(B/s)≈行宽(像素)×位深(Byte)×行频

\text{数据率(B/s)} \approx \text{行宽(像素)} \times \text{位深(Byte)} \times \text{行频}

数据率(B/s)≈行宽(像素)×位深(Byte)×行频

再加 10%~30% 协议/系统开销更踏实。

小例子(面阵):1920×1080,8-bit,60 FPS →

2,073,600 px/帧 × 1 B × 60 ≈ 124 MB/s。1 GigE 实际可用常在 ~100 MB/s 左右,已经吃紧;USB3、5 GigE、10 GigE会更稳。

经验带宽速查(大致可用吞吐,方便心里有数):

GigE≈100 MB/s2.5/5/10 GigE≈250/500/1000 MB/sUSB3.0/3.2 Gen2≈350–400 / 800–900 MB/sCamera Link/CoaXPress:每通道数百 MB/s 到 1 GB/s 级,适合“高分辨率×高帧率”。

要是既想高分辨率又要高帧率,就老老实实上大带宽接口,或用多通道;否则就考虑降低分辨率/ROI、降低位深、或做压缩。

4) 选帧率的一把抓流程(照做就行)

定目标清晰度:算出物方像素(mm/px)或最小可辨细节。

看运动参数:件/秒(面阵)或线速度(mm/s,线阵)。

面阵:

一件一拍 → FPS≥件/秒×余量系数(1.2–2)\text{FPS} \ge \text{件/秒} \times \text{余量系数(1.2–2)}FPS≥件/秒×余量系数(1.2–2)需要连拍多张 → 再乘以每件所需张数。

线阵:按“行频=线速度/物方像素尺寸”得出 行频(kHz)。

算数据率:用上面的公式估一估,再给 10–30% 余量。

选接口:数据率别把接口卡死;必要时换更大带宽或多路。

验光照:短曝光必然要亮光,优选可频闪的光源(和触发同步)。

上触发/编码器:用外触发保证拍摄节拍,用编码器让线阵和皮带“步步对齐”。

5) 高帧率的“代价”和对策

光要更亮:曝光时间短,单位时间集光少;上更亮的光源或增益(增益会涨噪声)。数据更大:主机得吃得下,SSD 写得动,算法跑得动;必要时边缘侧前处理、ROI、位深从 12→8-bit。发热与稳定:高帧率+长时间=温升,注意散热与掉帧监控。快门类型:运动场景优先全局快门;滚动快门要小心“歪楼”(果冻效应)。

6) 面阵 vs 线阵,怎么拍更合适?

面阵:一张就定胜负,适合离散件、姿态变化大的目标。触发简单,灯光布置直观。线阵:连续场景(布匹、箔材、管道、超宽幅表面)更强;只要线速度与行频匹配,能得到“无限长”的高分辨率图。记得用编码器闭环防止拉伸/压缩。

7) 常见坑与排查清单

“FPS够了但还是糊”:看曝光时间是否>允许值;补光、开频闪、换全局快门。“标称帧率达不到”:接口带宽不够、主机写盘跟不上、驱动缓存太小;关后台软件,开 jumbo frame/直连,或换更大带宽。“线阵图像被拉伸/挤压”:编码器分辨率、齿轮比、线速度标定不准。“光源频闪干扰”:工频照明会拍出条纹;用直流供电或同步频闪。“分辨率一调高就掉帧”:ROI/位深/触发模式与驱动缓冲要一起配。

8) 小算例再巩固(两个 30 秒就能心算的版本)

面阵例:产线 90 件/分钟=1.5 件/秒;一件一拍,取 1.5×1.5 ≈ 2.3 FPS 即可;若想每件 3 张,≥7 FPS。线阵例:4096 px 行宽、8-bit、行频 50 kHz → 数据率≈4096×1×50,000 ≈ 205 MB/s,就该考虑 USB3、高速以太网或 CoaXPress。

9) 结语+名词对照

用一句话概括:帧率/行频就是“相机吞吐的节拍”,一定要跟上你的产线节拍与清晰度要求,并且别忘了带宽与光照这两个“副本”。

名词对照:

帧率=FPS(面阵)行频=Line Rate(线阵,kHz)面阵相机=Area Scan;线阵相机=Line Scan

相关推荐