2. 图像传感器基础
做嵌入式视觉这些年,我摸过的传感器少说也有几十款。从早期的CCD到现在的CMOS,从几十万像素到上亿像素,核心原理其实没变——把光子变成电子,再把电子变成数字。今天咱们就把这层窗户纸捅破。
CCD与CMOS:两种主流传感器的前世今生
先说CCD。它的全称是电荷耦合器件,名字挺绕口,工作原理其实很直白:每个像素收集到的光生电荷,像接力赛一样,一个像素一个像素地传递到输出端,统一转换成电压。
我刚开始做工业相机时,用的就是CCD传感器。那时候CCD的优势很明显——噪声低、动态范围大、图像均匀性好。为什么?因为所有像素共用同一个放大器,一致性自然好。
但CCD有个致命弱点:慢。电荷传递需要时间,而且功耗高。我记得有个项目要做高速检测,CCD帧率死活上不去,最后只能换方案。
CMOS传感器就不一样了。每个像素自带放大器,可以独立读出。说白了就是「各扫门前雪」,不需要像CCD那样排队传递电荷。这样做的好处是速度快、功耗低、成本也低。
核心差异一句话总结:CCD是「集体传送,统一放大」;CMOS是「各自放大,独立读出」。
现在工业相机领域,CMOS已经占了主流。但CCD在一些对噪声极其敏感的应用里还有一席之地,比如天文摄影、高端显微镜。
| 对比项 | CCD | CMOS |
|---|---|---|
| 读出方式 | 电荷逐像素传递 | 每个像素独立读出 |
| 噪声水平 | 低(统一放大器) | 较高(像素间差异大) |
| 帧率 | 慢 | 快 |
| 功耗 | 高 | 低 |
| 成本 | 高 | 低 |
| 主流应用 | 天文、科研、高端医疗 | 工业检测、消费电子、安防 |
全局快门 vs 卷帘快门:选错就是灾难
这个知识点,我建议你刻在脑子里。选错快门类型,项目直接翻车。
全局快门:所有像素在同一时刻曝光,同时开始、同时结束。就像全班同学一起拍照,咔嚓一声,全部定格。
卷帘快门:像素逐行曝光,第一行先开始,最后一行后结束。就像扫描仪一样,从上到下慢慢扫过去。
为什么会这样?因为卷帘快门是CMOS传感器的「原生」工作方式。每个像素的复位和读出是逐行进行的,所以曝光起始时间天然有差异。
我曾经踩过的坑:有个项目要拍高速运动的螺丝,用的卷帘快门CMOS。结果拍出来的螺丝是歪的,像被PS扭曲过一样。后来才意识到,这就是卷帘快门特有的「果冻效应」——物体在曝光期间移动了,不同行的成像位置不同。
那什么时候用全局快门?
- 拍摄高速运动物体(流水线上的产品、飞行的子弹)
- 需要闪光灯同步(全局快门可以做到全帧同时曝光)
- 做结构光或激光三角测量(需要精确的时空对应)
什么时候用卷帘快门?
- 拍摄静止或慢速物体
- 追求高分辨率和高帧率(卷帘快门更容易做高像素)
- 成本敏感的项目(卷帘快门传感器更便宜)
小技巧:如果你不确定选哪种,先问自己三个问题:物体动不动的?帧率要求高不高?预算够不够?三个问题问完,答案基本就出来了。
Bayer阵列与色彩滤波:单色传感器如何看到彩色世界
你想想看,图像传感器本身是「色盲」的。它只能感知光的强度,分不清红绿蓝。那彩色照片是怎么来的?
答案就是Bayer阵列。在每个像素前面盖一层彩色滤光片,只让特定波长的光通过。最常见的排列是RGGB——一个红色、两个绿色、一个蓝色,排成2x2的方块。
为什么绿色有两个?因为人眼对绿色最敏感。这个设计不是拍脑袋想出来的,而是基于人类视觉系统的特性。
// 典型的Bayer阵列排列(RGGB)
// 第一行:R G R G R G ...
// 第二行:G B G B G B ...
// 第三行:R G R G R G ...
// 第四行:G B G B G B ...
// 以此类推
每个像素只记录一种颜色,那其他颜色怎么办?这就需要「去马赛克」算法(也叫插值算法)。用周围像素的颜色信息,推算当前像素缺失的颜色。
举个例子:一个红色像素,它没有绿色和蓝色信息。算法会看它周围的绿色像素和蓝色像素,通过加权平均算出这个位置应该是什么绿、什么蓝。
关键理解:Bayer阵列的本质是「用空间分辨率换色彩分辨率」。每个像素只记录1/3的颜色信息,另外2/3靠算法猜出来。所以原始Bayer数据的分辨率,其实比最终图像低。
我在项目中遇到过一个问题:用Bayer传感器拍黑白条纹,结果出现了彩色伪影。这是因为插值算法在边缘处「猜错了」。后来换了更好的去马赛克算法,问题才解决。
除了Bayer,还有其他色彩滤波阵列:
- X-Trans(富士):6x6的随机排列,减少摩尔纹
- Foveon(适马):三层堆叠,每层吸收不同波长,不需要插值
- RGBW:加入白色像素,提高低光性能
但工业相机领域,Bayer还是主流。原因很简单:成熟、稳定、算法库丰富。
知识体系总览
下面这张图,把本章的核心知识点串起来了。建议你保存下来,以后做传感器选型时对照着看。
本章小结
传感器是相机的「眼睛」,选对了事半功倍,选错了从头再来。记住三个核心点:
- CCD和CMOS的本质区别在于读出方式,不是谁好谁坏,而是谁更适合你的场景
- 全局快门和卷帘快门的选择,直接决定你能不能拍清楚运动物体
- Bayer阵列是彩色成像的基础,去马赛克算法决定了最终图像质量