3. 感知系统之摄像头:摄像头的工作原理(CMOS/CCD)、单目与双目视觉、鱼眼与长焦镜头、关键参数(分辨率、帧率、动态范围)、车载摄像头模组拆解
各位同学,咱们今天聊聊自动驾驶的「眼睛」——摄像头。
说实话,在我刚入行那会儿,总觉得摄像头不就是个拍照的嘛,有啥好研究的?直到我第一次在实车上调试感知算法,发现晴天好好的,一到隧道口就「瞎」了,我才意识到——摄像头选型,直接决定了感知系统的上限。
3.1 摄像头的工作原理:CMOS vs CCD
先讲个基础概念。摄像头核心就两个东西:镜头和图像传感器。传感器负责把光信号转成电信号,目前主流就两种:CCD 和 CMOS。
| 对比项 | CCD | CMOS |
|---|---|---|
| 功耗 | 高(约 CMOS 的 10 倍) | 低 |
| 读出速度 | 慢(串行读出) | 快(并行读出) |
| 噪声 | 低(全局快门) | 较高(卷帘快门) |
| 车载应用 | 极少(成本高、发热大) | 绝对主流 |
我个人习惯,在车载项目里一律选 CMOS。为什么?功耗和成本是硬门槛。你想想看,一辆车上少说 6-8 个摄像头,要是都用 CCD,光散热就得加风扇,那可靠性就崩了。
关键知识点:车载摄像头几乎全部采用 CMOS 传感器,且必须是「全局快门」或「高动态范围(HDR)」模式。卷帘快门在高速运动下会产生「果冻效应」,这在自动驾驶里是致命的。
我在项目中遇到过一件事:某供应商提供的 CMOS 传感器标称 120dB 动态范围,结果实测在逆光场景下,暗部细节全丢。后来拆解发现,他们用的是「伪 HDR」——靠软件叠加,不是硬件原生支持。嗯,这里要注意,一定要看硬件规格书里的「真实动态范围」,别被营销参数忽悠了。
3.2 单目 vs 双目视觉
这个问题,我几乎每次面试新人都会问。说白了,单目靠「猜」,双目靠「算」。
- 单目视觉:一个摄像头,通过目标在图像中的大小、位置,结合先验知识(比如车道宽度、车辆高度)来估算距离。优点是便宜、标定简单;缺点是绝对距离精度差,尤其对未知尺寸的物体(比如一个小孩蹲在地上)基本没辙。
- 双目视觉:两个摄像头,利用视差原理直接计算深度。精度高,但基线距离(两个镜头间距)决定了测距范围。基线越长,远距离精度越好,但安装空间也越大。
我的经验:在量产项目中,我建议用「单目为主 + 双目为辅」的方案。单目做目标检测和分类,双目做近距离(0-30米)的精确测距。别指望双目能搞定 100 米外的障碍物——那需要 1 米以上的基线,乘用车根本装不下。
我曾经踩过一个坑:某项目为了省成本,只用单目做 AEB(自动紧急制动)。结果在测试中,一个倒地的摩托车被识别成「小轿车」,因为单目无法区分尺寸。从那以后,我坚持AEB 必须融合双目或激光雷达。
3.3 鱼眼镜头 vs 长焦镜头
这两个镜头,一个管「宽」,一个管「远」。
| 类型 | 视场角(FOV) | 典型焦距 | 用途 |
|---|---|---|---|
| 鱼眼 | ≥180° | 2-6mm | 环视、泊车、盲区监测 |
| 长焦 | ≤30° | 12-50mm | 前向远距离感知、交通标志识别 |
鱼眼镜头有个特点:边缘畸变巨大。你想想看,一个 180° 的画面要压到 2D 平面上,边缘的物体都被拉变形了。所以鱼眼图像必须做「去畸变」处理,但去畸变后边缘分辨率会严重下降。
避坑指南:我曾经在环视项目中,用了某款鱼眼镜头,标定后发现车辆两侧 1 米内的物体完全被「压扁」了,根本检测不到。后来换了一款「等距投影」的鱼眼镜头才解决。记住:不是所有鱼眼镜头都适合车载,要选「等距投影」或「等立体角投影」类型。
长焦镜头呢?正好相反。它看得远,但视野窄。我建议长焦只用于前向感知,而且必须配合云台或电子防抖。因为车辆颠簸时,长焦画面稍微一晃,目标就跑到画面外了。
3.4 关键参数:分辨率、帧率、动态范围
这三个参数,是选型时的「铁三角」。我一个个说。
分辨率
不是越高越好。1080p(1920×1080)在车载里已经够用,4K 反而带来数据量爆炸。我算过一笔账:4K 30fps 的原始数据流约 1.2Gbps,以太网传输都吃力。而且分辨率越高,单像素感光面积越小,暗光性能越差。
帧率
帧率决定了你能捕捉多快的运动。对于自动驾驶,前向摄像头建议 30-60fps,环视摄像头 15-30fps 就够了。为什么?因为环视主要用于泊车,车速慢,帧率高了反而增加计算负担。
动态范围
这是最容易被忽视的参数。动态范围决定了摄像头能同时看清「亮处」和「暗处」的能力。车载场景下,隧道出口、逆光、夜间车灯直射,都是高动态场景。我建议动态范围至少 120dB,低于这个值,算法在强光下会直接丢失目标。
我的选型口诀:「前向看帧率,环视看畸变,暗光看动态,远距看焦距。」
3.5 车载摄像头模组拆解
最后,咱们动手拆一个真实的车载摄像头模组。我拿一个常见的博世前向摄像头为例,从外到内拆解。
车载摄像头模组结构(从外到内):
1. 外壳:铝合金压铸,带散热鳍片
2. 镜头座:M12 或 M16 螺纹接口,带 O 型密封圈
3. 镜头组:4-6 片玻璃镜片,镀增透膜
4. 红外滤光片:截止 650nm 以上波长
5. 图像传感器:CMOS,封装在陶瓷基板上
6. 柔性电路板(FPC):连接传感器和主控板
7. 主控板:集成 ISP(图像信号处理器)、串行器(Serializer)
8. 同轴电缆接口:FAKRA 或 HSD 连接器
拆解时要注意:镜头和传感器的相对位置是出厂校准好的,千万别手痒去拧。我曾经拆过一个模组,想看看传感器型号,结果把镜头拧松了,重新装回去后画面永远对不上焦——因为焦距和光轴都偏了。
小技巧:如果你需要测试不同镜头,建议买「可调焦镜头座」的模组。虽然成本高一点,但调试方便。量产项目则必须用「固定焦距」的,因为车载振动环境下,可调焦结构容易松动。
嗯,关于摄像头,今天就聊到这儿。下一章咱们讲毫米波雷达——那个「不怕雨雾」的家伙。到时候我会分享一个我在高速上被「幽灵刹车」坑过的故事,保证精彩。