1. 工业相机概述
大家好,我是你们这门课的老朋友。做嵌入式视觉这行十几年了,从最早的模拟摄像头到现在的千万像素工业相机,我踩过的坑比你们走过的路还多(笑)。今天咱们先不急着写代码,把工业相机这个“眼睛”本身聊透。
说白了,工业相机和咱们手机里的摄像头完全是两码事。手机摄像头追求“拍得好看”,工业相机追求“拍得准、拍得快、拍得稳”。你想想看,一条产线每秒检测几十个零件,一个像素偏差可能就导致误判——这容错率几乎为零。
核心认知:工业相机是机器视觉系统的“视网膜”。它的质量直接决定了后续图像处理和算法分析的上限。选错相机,后面再怎么调ISP也白搭。
1.1 工业相机的分类
工业相机的分类方式很多,我习惯从三个维度来划分:传感器类型、输出信号类型、扫描方式。这样分,选型时思路最清晰。
1.1.1 按传感器类型:CCD vs. CMOS
这是最经典的分类。早些年CCD是主流,但最近十年CMOS已经全面逆袭。我个人习惯这样看:
| 对比项 | CCD | CMOS |
|---|---|---|
| 读出方式 | 全局快门,逐行转移 | 卷帘快门或全局快门 |
| 噪声水平 | 低(约2-3e-) | 较高(约5-10e-),但近年进步很大 |
| 功耗 | 高(约2-5W) | 低(约0.5-1.5W) |
| 帧率 | 较低(受限于读出速度) | 高(轻松上百fps) |
| 成本 | 高 | 低 |
| 典型应用 | 天文、科研、高动态场景 | 工业检测、消费电子、自动驾驶 |
我的经验:现在90%以上的工业检测项目我都选CMOS。为什么?因为CMOS的全局快门技术已经成熟,而且帧率高、功耗低。除非客户要求极低噪声(比如暗光下的荧光检测),否则没必要死磕CCD。
1.1.2 按输出信号类型:模拟 vs. 数字
这个分类现在基本是历史遗留问题了。模拟相机(PAL/NTSC)分辨率低、抗干扰差,我十年前就不用了。现在主流都是数字接口:
- GigE Vision: 我最常用的接口。传输距离远(100米),带宽够用(1Gbps),而且支持PoE供电。适合大多数产线场景。
- USB3 Vision: 带宽高(5Gbps),但传输距离短(5米以内)。适合实验室或近距离检测。
- Camera Link: 带宽极高(850MB/s),但需要专用采集卡。我只在高速线扫描项目里用。
- CoaXPress: 新标准,带宽和距离都优秀,但成本高。高端项目才会考虑。
1.1.3 按扫描方式:面阵 vs. 线阵
这个分类直接决定了你的应用场景。
- 面阵相机: 像手机一样一次拍一张完整的二维图像。适合定位、测量、AOI(自动光学检测)等静态或低速场景。
- 线阵相机: 一次只拍一行像素,通过物体运动来拼接成二维图像。适合连续运动的卷材检测(比如布匹、纸张、PCB板)。
避坑指南:我曾经有个项目,客户非要用面阵相机检测高速运动的印刷品,结果图像拖影严重,根本没法用。后来换成线阵相机,配合编码器触发,问题迎刃而解。选型时一定要想清楚:物体是静止的还是运动的?运动速度有多快?
1.2 核心参数
选相机就是选参数。我每次选型都会盯着三个核心参数看:分辨率、帧率、像元尺寸。这三个参数互相制约,必须一起考虑。
1.2.1 分辨率
分辨率就是图像的像素数量。比如1920×1080就是约200万像素。分辨率越高,能看到的细节越多,但数据量也越大。
但注意:分辨率不是越高越好。你想想看,如果检测一个10mm的零件,要求精度0.05mm,那需要的分辨率是多少?
视场宽度 = 10mm
精度要求 = 0.05mm
所需像素数 = 10 / 0.05 = 200像素
考虑亚像素定位(通常1/10像素),实际需要:
200 × 10 = 2000像素
所以选一个200万像素(1920×1080)的相机就够了。
经验公式: 所需分辨率 = (视场宽度 / 检测精度) × 亚像素系数。亚像素系数一般取5-10,取决于算法能力。
1.2.2 帧率
帧率就是每秒能拍多少张。单位是fps(frames per second)。对于运动物体,帧率必须足够高才能“冻结”运动。
我记得有个项目,检测传送带上的电子元件,传送带速度是0.5m/s,视场宽度是100mm。那帧率至少需要:
物体移动速度 = 500 mm/s
视场宽度 = 100 mm
每帧物体移动距离 ≤ 视场宽度的1/10(避免运动模糊)
最大允许移动距离 = 10 mm
所需帧率 = 500 / 10 = 50 fps
所以至少要选50fps以上的相机。如果还要考虑触发延迟和曝光时间,实际需要更高。
1.2.3 像元尺寸
像元尺寸是每个像素的物理大小,单位是μm。这个参数很多人忽略,但它直接影响图像质量。
- 像元越大: 感光面积大,信噪比高,暗光性能好。但分辨率会受限(同样传感器尺寸下)。
- 像元越小: 分辨率可以做得更高,但噪声也更大,动态范围会降低。
| 像元尺寸 | 典型值 | 优势 | 劣势 |
|---|---|---|---|
| 大像元 | 5.5μm - 10μm | 高灵敏度、低噪声 | 分辨率受限 |
| 小像元 | 1.4μm - 3.45μm | 高分辨率 | 噪声大、动态范围低 |
我的习惯:对于工业检测,我一般选像元尺寸在3.45μm到5.5μm之间的传感器。太小了噪声受不了,太大了分辨率上不去。当然,如果做暗光成像,我会优先选大像元。
1.3 应用场景
理论说完了,咱们看看实际场景。工业相机的应用无非三大类:AOI、测量、定位。我分别说说。
1.3.1 AOI(自动光学检测)
AOI是工业相机最大的应用领域。说白了就是用相机代替人眼去检查缺陷。比如PCB焊点检测、屏幕坏点检测、表面划痕检测。
AOI对相机的要求:
- 高分辨率: 要看清微小缺陷,通常500万像素起步。
- 高动态范围: 焊点有亮有暗,需要同时看清。
- 全局快门: 避免运动畸变。
我曾经做过一个PCB AOI项目,客户要求检测01005尺寸的元件(0.4mm×0.2mm)。我们选了1200万像素的CMOS相机,配合高角度环形光源,才勉强看清焊盘。嗯,那段时间真是被折腾得够呛。
1.3.2 测量
测量场景要求的是“精度”。比如测量手机中框的尺寸、检测轴承的直径、判断螺丝是否拧到位。
测量对相机的要求:
- 高分辨率: 保证测量精度。
- 低畸变: 镜头和传感器都要好,否则测量结果不准。
- 稳定的帧率: 测量需要重复性,帧率波动会影响结果。
避坑指南:我遇到过最坑的事,是客户用卷帘快门的相机做测量。结果物体一运动,图像就变形了,测量结果完全不可信。所以测量场景一定要用全局快门!
1.3.3 定位
定位就是告诉机器人“东西在哪”。比如抓取流水线上的零件、引导机械臂对准螺丝孔。
定位对相机的要求:
- 高帧率: 定位通常需要实时反馈,30fps以上是基本要求。
- 低延迟: 从拍照到输出位置,延迟要控制在毫秒级。
- 高灵敏度: 有些场景光照变化大,需要相机能快速适应。
定位项目我做得最多。说实话,定位的难点往往不在相机本身,而在算法和系统集成。但相机选对了,后面能省一半的功夫。
1.4 知识体系总览
下面这张图是我自己整理的工业相机知识体系。每次带新人,我都会先让他们看这张图。你把它理解了,后面30章的内容就有了地图。
这张图把工业相机的知识体系分成了三个维度:分类、参数、应用。你从任何一个维度切入,都能找到对应的知识点。后面30章的内容,就是围绕这张图展开的。
学习建议:我建议你把这张图保存下来,每学完一章就回来看看,把新知识填到对应的位置。等你把整张图都填满了,这门课你就学透了。