2. 图像传感器基础:CMOS vs CCD传感器、像素结构与感光原理、量子效率与信噪比、暗电流与热噪声
做低光照调试,你首先得摸清楚传感器的脾气。说白了,传感器就是摄像头的「视网膜」。它怎么感光、怎么转电信号,直接决定了你晚上拍出来的东西是清晰还是满屏噪点。我这些年调过的方案里,踩坑最多的就是没吃透传感器特性就开始调ISP参数——结果往往是白费功夫。
2.1 CMOS vs CCD:两种主流传感器的恩怨情仇
先聊聊CMOS和CCD。这俩家伙原理不同,性格也迥异。
CCD(电荷耦合器件):它的工作方式有点像流水线。每个像素收集到的光生电荷,要一个接一个地「传递」到输出端统一放大。好处是噪声低、一致性极好。坏处呢?速度慢、功耗高、成本也高。我记得早年做安防摄像头,高端机型清一色用CCD,晚上画面确实干净。
CMOS(互补金属氧化物半导体):每个像素自带放大器,各干各的。读出速度快、功耗低、集成度高。但早期CMOS的噪声问题很严重,尤其是低光照下,满屏雪花。不过现在技术成熟了,背照式、堆栈式结构出来以后,CMOS基本统治了消费级市场。
我个人的习惯是:低光照场景优先选CMOS,尤其是背照式(BSI)的。为什么?因为它的填充因子更高,感光面积更大。CCD虽然底噪低,但读出速度慢,做不了高帧率,而且功耗大,手持设备根本扛不住。
2.2 像素结构与感光原理:一个像素是怎么「看见」光的?
一个像素,说白了就是一个微型光电转换器。它的核心结构包括:
- 微透镜:把光线汇聚到感光区域。嗯,这里要注意——微透镜的偏移量会影响边缘进光量,我在项目中遇到过因为微透镜没对准导致四周发黑的问题。
- 滤色片(CFA):Bayer阵列最常见,RGGB排列。每个像素只感知一种颜色,其他颜色靠插值猜出来。
- 光电二极管(PD):真正干活的地方。光子打进来,产生电子-空穴对。
- 传输门(TG):控制电荷从PD转移到浮置扩散区(FD)。
- 浮置扩散区(FD):临时存储电荷,并转换成电压信号。
感光原理其实不复杂:光子 → 电子 → 电压 → 数字码值。你想想看,每个像素就像一个微型水桶,光子就是雨滴。雨滴越多,水桶里的水(电荷)就越多。但水桶有容量上限——这就是满阱容量(FWC)。
2.3 量子效率与信噪比:传感器到底有多「敏感」?
量子效率(QE):指入射光子转化为电子的比例。比如QE=70%,意味着100个光子进来,有70个变成了电子。剩下的30个去哪了?被反射、吸收或者浪费掉了。
QE跟波长有关。人眼对550nm左右的绿光最敏感,传感器也是。但近红外(850nm/940nm)的QE通常很低,这就是为什么夜视需要红外补光。
信噪比(SNR):信号功率与噪声功率的比值。单位是dB。公式很简单:
SNR = 20 * log10(信号 / 噪声)
低光照下,信号弱,噪声不变,SNR自然就低。那怎么提升?
- 增加曝光时间:让更多光子进来。但小心运动模糊。
- 提高模拟增益:信号和噪声一起放大,效果有限。
- 像素合并(Binning):把相邻像素的电荷加起来,牺牲分辨率换灵敏度。
我记得有一次调一个车载夜视项目,SNR死活上不去。后来发现是镜头光圈太小,进光量不够。换了F1.2的大光圈镜头,SNR直接提升了6dB。所以说,别光盯着传感器,光学系统也得跟上。
2.4 暗电流与热噪声:为什么黑屏也有噪点?
你肯定遇到过这种情况:盖上镜头盖,画面却不是全黑的,而是有星星点点的亮斑。这就是暗电流和热噪声在作怪。
暗电流:没有光照时,像素内部的热激发也会产生电子-空穴对。这些「假信号」被当成有效信号读出来,就成了暗电流。温度每升高6-8°C,暗电流大约翻一倍。所以传感器发热是低光照的大敌。
热噪声(暗电流散粒噪声):暗电流本身不是恒定的,它存在随机波动。这种波动就是热噪声。它服从泊松分布,均值等于暗电流大小。
怎么处理?
- 降低传感器温度:主动散热、Peltier制冷。工业相机常用,手机就别想了。
- 暗场校正(DPC):拍一张全黑帧,记录每个像素的暗电流值,然后从正常图像中减去。我建议每次开机都做一次,因为暗电流会随温度变化。
- 长曝光降噪:曝光时间越长,暗电流积累越多。很多相机有「长曝光降噪」功能,原理就是拍一张暗场然后减去。
2.5 知识体系总览
下面这张图是我自己整理的传感器基础框架,帮你快速建立全局认知:
这张图把四个核心知识点串起来了。你调试低光照的时候,脑子里要有这根弦:传感器类型决定了你的起点,像素结构决定了你的上限,量子效率和信噪比是你的衡量标尺,暗电流和热噪声则是你绕不开的敌人。
好了,这一章的内容就到这里。记住一句话:传感器是硬件的基础,ISP是软件的灵魂。基础不牢,地动山摇。
公众号:蓝海资料掘金营,微信deep3321