硬件选型与接口:工业相机选型、镜头与光源、接口对比
做多相机同步项目,第一步不是写代码,而是选硬件。我见过太多人上来就调算法,结果相机帧率跟不上、触发延迟不一致、镜头畸变太大——最后全得推倒重来。这一章咱们就把硬件选型这件事聊透。
工业相机选型:CCD vs CMOS
先说传感器。CCD和CMOS之争,在工业领域其实已经没什么悬念了。
| 对比项 | CCD | CMOS |
|---|---|---|
| 噪声水平 | 低(全局快门干净) | 较高(但近年进步很大) |
| 帧率 | 一般(受限于读出架构) | 高(可轻松上百fps) |
| 功耗 | 高(需要多路供电) | 低(单芯片集成) |
| 全局快门 | 原生支持 | 部分型号支持 |
| 成本 | 高 | 低 |
| 工业主流 | 逐渐减少 | 主流 |
我个人习惯,只要项目预算不是特别紧张,优先选全局快门的CMOS。为什么?因为多相机同步最怕的就是卷帘快门带来的“果冻效应”。你想想看,两个相机同时触发,结果一个扫完第一行时另一个才扫到中间行——这还怎么对齐?
核心结论:2024年以后的工业项目,90%以上选CMOS全局快门方案。CCD只保留在极低噪声、极慢速的科学级应用中。
镜头与光源:容易被忽视的坑
镜头选型有个口诀:焦距定视野,光圈定景深,接口定安装。
- 焦距:根据工作距离和视野大小反算。公式很简单:焦距 = 传感器尺寸 × 工作距离 / 视野宽度。我在项目中遇到过有人拿手机镜头直接拧到工业相机上——结果成像圈不够,四角全黑。
- 光圈:多相机同步时,尽量统一光圈值。否则不同相机的景深不一致,同一个物体在不同视角下清晰度不同,后期融合会很痛苦。
- 接口:C接口最常见,但注意法兰距。有些镜头标着C口,实际后焦不对,拧上去拧不到底。
光源这块,我踩过一个大坑。曾经有个项目,四个相机拍同一个电路板,用了四种不同色温的LED环形灯。结果图像拼接时,接缝处颜色明显跳变,调了三天白平衡才勉强能用。后来我学乖了:多相机系统必须统一光源型号、色温、亮度,最好用同一个控制器供电。
我的经验:光源角度比亮度更重要。低角度照明能突出表面纹理,高角度照明适合检测平整度。多相机系统里,每个相机的光源角度要独立可调,但光源本身要同型号。
接口对比:GigE vs USB3.0 vs Camera Link
接口选型直接决定了你能跑多高的帧率、能拉多长的线、能做多精确的同步。下面这张表是我自己整理的,每次做方案都会拿出来对照。
| 特性 | GigE Vision | USB3.0 Vision | Camera Link |
|---|---|---|---|
| 带宽 | 1 Gbps(约100 MB/s) | 5 Gbps(约400 MB/s) | 2.04 Gbps(Base模式) |
| 线缆长度 | 100米(标准) | 3-5米(主动线可到10米) | 10米(标准) |
| 同步精度 | IEEE 1588可达微秒级 | 依赖硬件触发 | 硬件触发+CC1线 |
| 多相机支持 | 交换机级联,数量灵活 | 需独立USB控制器 | 需采集卡,数量受限 |
| 成本 | 中等 | 低 | 高(采集卡贵) |
| CPU占用 | 低(有硬件卸载) | 中等 | 极低(采集卡处理) |
说说我的选择逻辑:
- GigE:我最常用的方案。100米线长意味着相机可以放在产线各处,交换机统一管理。IEEE 1588时钟同步协议能到微秒级,做多相机触发非常稳。缺点就是带宽有限,500万像素以上跑30fps就有点吃力了。
- USB3.0:适合桌面级、相机数量少的系统。带宽大、成本低,但线长是硬伤。我记得有个项目,相机要装在机械臂末端,线缆跟着拖链走,USB3.0线不到三个月就断了——后来全换成GigE带锁紧接口的。
- Camera Link:高带宽、低延迟、同步精度极高。但贵,而且采集卡占一个PCIe槽。我只在需要同时采集4路以上高分辨率高速图像时才会考虑它。
避坑指南:我曾经在一个项目中同时用了GigE和USB3.0相机做同步,结果发现USB3.0的触发延迟比GigE大了将近2毫秒。不同接口的触发响应时间不一样,混用接口做同步是自找麻烦。要么全GigE,要么全USB3.0,别混搭。
接口选型决策流程
下面这张图是我做方案时的思考路径,画出来供你参考。
多相机同步的硬件关键点
不管你选什么接口,做多相机同步时有几个硬件层面的东西必须确认:
- 硬件触发输入:每个相机必须有独立的触发输入引脚(GPIO),不能依赖软件触发。软件触发的抖动在Windows下可能达到10毫秒以上。
- 触发信号分配:用一个信号发生器或PLC输出脉冲,通过分线盒同时给所有相机发触发信号。线长要一致,否则信号传播延迟不同。
- 时钟同步:GigE相机支持IEEE 1588 PTP协议,可以让所有相机共享同一个时钟。USB3.0和Camera Link没有这个能力,只能靠硬件触发线对齐。
- 电源独立:多相机同时触发时瞬间电流很大,共用电源会导致电压跌落,触发信号变形。每个相机最好独立供电,或者用带隔离的POE交换机。
我的经验总结:硬件选型决定了项目天花板。传感器选CMOS全局快门,接口统一用GigE(除非有特殊带宽或距离要求),光源同型号同控制器,触发信号用硬件线缆分配。这套组合拳打下来,同步精度做到微秒级不是问题。