相机硬件基础:传感器、镜头与接口
做双目视觉,第一步不是调算法,而是把硬件吃透。我见过太多项目,算法调得漂漂亮亮,一上硬件就崩——说白了,就是没搞懂相机本身在干什么。
这一章,咱们聊聊三个核心部件:图像传感器、镜头、接口。你想想看,选错一个,后面全白干。
1. 图像传感器:CCD vs CMOS
传感器是相机的「眼睛」。目前主流就两种:CCD 和 CMOS。
| 对比项 | CCD | CMOS |
|---|---|---|
| 读出方式 | 逐行转移,统一输出 | 每个像素独立读出 |
| 噪声水平 | 低,画质干净 | 较高(但现代工艺已改善) |
| 功耗 | 高(需要多路电压) | 低(单电压供电) |
| 速度 | 慢(帧率受限) | 快(轻松上百帧) |
| 成本 | 高 | 低 |
| 适用场景 | 科研、天文、医疗 | 工业视觉、消费电子 |
我的建议:双目同步采集,优先选全局快门的 CMOS 传感器。卷帘快门在拍摄运动物体时会产生「果冻效应」,左右图像时间差会导致立体匹配失败。我曾经在一个抓取项目中吃过这个亏——后来换成全局快门,问题立刻解决。
小技巧:选传感器时,除了看分辨率,还要关注「量子效率」和「暗电流」。这两个参数直接影响低光环境下的图像质量。
2. 镜头参数:焦距与视场角
镜头决定了相机「看多远、看多宽」。两个核心参数:焦距 和 视场角(FOV)。
2.1 焦距
焦距越短,视角越宽,看得范围大但远处细节少。焦距越长,视角越窄,像望远镜一样拉近目标。
- 短焦(< 8mm):适合大范围监控、空间定位
- 中焦(8-25mm):适合桌面级双目、机械臂抓取
- 长焦(> 25mm):适合远距离测量、交通监控
我个人习惯,做室内双目视觉,先用 12mm 或 16mm 定焦镜头试水。变焦镜头虽然灵活,但标定一次就要重新调,麻烦得很。
2.2 视场角
视场角(FOV)和焦距、传感器尺寸有关。公式很简单:
FOV = 2 * arctan( sensor_width / (2 * focal_length) )
举个例子:1/2.3英寸传感器(宽约6.2mm),配12mm镜头:
FOV = 2 * arctan(6.2 / (2 * 12)) ≈ 29°
嗯,这里要注意:双目相机的基线长度和视场角是联动的。视场角太小,左右图像重叠区域少,立体匹配范围受限。视场角太大,畸变严重,标定难度上升。
避坑指南:我曾经选过一款超广角镜头(FOV > 100°),结果边缘畸变太大,标定板都拍不全。后来老老实实换回60°左右的镜头,匹配精度立刻提升。记住:双目视觉不是越广越好。
3. 接口类型:USB、CSI、GigE
接口决定了数据传输的带宽、延迟和稳定性。选错了接口,同步触发就是空谈。
| 接口 | 带宽 | 传输距离 | 延迟 | 同步方式 |
|---|---|---|---|---|
| USB 3.0 | ~5 Gbps | 5米(可延长) | 中等 | 软件触发 / 硬件触发 |
| CSI(MIPI) | ~1-4 Gbps | 0.3米(板级) | 低 | 硬件同步线 |
| GigE Vision | ~1 Gbps | 100米 | 低(有精确时间协议) | IEEE 1588 / 硬件触发 |
3.1 USB 接口
最常见,也最坑。USB 相机便宜、易用,但同步触发是个老大难。两个 USB 相机插在同一台电脑上,很难做到微秒级同步。我一般只在原型验证时用 USB,正式项目很少碰。
3.2 CSI 接口
嵌入式开发的最爱。CSI 是直接连在 SoC 上的,延迟极低。用树莓派或 Jetson 做双目,CSI 是首选。但注意:线缆不能太长,30厘米以内最稳。
我的经验:在 Jetson Nano 上做过一个双目避障项目,用 CSI 接口 + 硬件触发线,左右帧同步误差控制在 1 微秒以内。这个精度,USB 根本做不到。
3.3 GigE 接口
工业场景的标配。GigE 相机支持 IEEE 1588 精确时间协议,多台相机可以通过网络同步触发。传输距离远,抗干扰能力强。缺点是需要独立供电,而且交换机配置有点麻烦。
小建议:如果做产线级双目系统,直接上 GigE。虽然前期投入大,但稳定性和同步精度值这个价。
知识体系总览
下面这张图,把本章的核心逻辑串起来了。你一看就明白:传感器、镜头、接口,三者怎么配合。
你看,传感器、镜头、接口不是孤立的。传感器尺寸决定了选多大焦距的镜头,镜头视场角又决定了双目基线怎么摆,接口则决定了你能不能把两路图像同步传回来。一环扣一环。
总结一句话:做双目同步采集,先定传感器(全局快门CMOS),再算镜头(12-16mm起步),最后选接口(嵌入式用CSI,工业用GigE)。别一上来就买最贵的,匹配才是王道。
公众号:蓝海资料掘金营,微信deep3321