3. 传感器与噪声模型:CMOS传感器原理、光子散粒噪声、读出噪声、固定模式噪声
做移动端低光照增强,绕不开一个核心问题——噪声从哪来。
你想想看,一张夜景照片噪点满天飞,算法再怎么拉亮度,细节也救不回来。原因很简单:传感器本身就在“说谎”。它输出的数字信号,从来不是真实光信号的完美复刻,而是掺杂了大量噪声的“污染版本”。
我个人习惯,拿到一个ISP项目,第一件事不是调参数,而是先搞清楚这颗CMOS传感器的噪声底子。底子不行,后面全是白费功夫。
3.1 CMOS传感器工作原理
先快速过一遍原理。CMOS图像传感器,说白了就是一个光电转换器加一个读出电路。
- 光电二极管:吸收光子,产生电子。光子越多,电子越多。
- 像素内放大器:把微弱的电荷信号放大成电压信号。
- 模数转换器(ADC):把模拟电压转成数字码值。
整个过程看起来简单,但每一步都在引入噪声。我做过一个项目,传感器在低光照下信噪比只有不到20dB,那画面简直没法看。
核心公式:传感器输出 = 真实信号 + 光子散粒噪声 + 读出噪声 + 固定模式噪声 + 其他噪声
低光照下,信号本身很弱,噪声占比急剧上升。这就是为什么夜景照片总是“糊”的。
下面这张图,帮你理清CMOS传感器从光子到数字码值的完整链路,以及每个环节对应的噪声源。
3.2 光子散粒噪声
这是物理极限带来的噪声,算法再强也消除不了。
光子到达传感器的时间是随机的,服从泊松分布。你想想看,就算场景亮度完全恒定,每个像素接收到的光子数也会有波动。这个波动,就是散粒噪声。
关键特性:
- 散粒噪声的方差 = 信号均值。信号越强,噪声值越大。
- 但信噪比 SNR = 信号 / sqrt(信号) = sqrt(信号)。信号越强,SNR 越高。
- 低光照下信号小,SNR 极低,这是夜景画质差的根本原因。
我记得有一次调试一个暗光场景,发现画面噪点分布完全符合泊松模型。当时我试着用多帧降噪,效果不错,但代价是运动拖影。嗯,这就是物理限制——你没法既保留运动细节又完全消除散粒噪声。
3.3 读出噪声
读出噪声来自像素内放大器和读出电路。它跟信号强度无关,是一个固定底噪。
低光照下,信号本身很弱,读出噪声就成了主要干扰。我见过一些低端传感器,读出噪声高达 10-20 e⁻,暗部细节直接被淹没了。
| 噪声类型 | 来源 | 与信号关系 | 低光照影响 |
|---|---|---|---|
| 光子散粒噪声 | 光子到达随机性 | 方差 = 信号均值 | SNR 低,但无法避免 |
| 读出噪声 | 放大器、读出电路 | 与信号无关,固定底噪 | 暗部细节被淹没 |
| 固定模式噪声 | 像素工艺偏差 | 空间固定,不随时间变 | 产生竖条纹/网格 |
避坑指南:我曾经在一个项目中,发现暗光下画面有规律的横条纹。排查了三天,最后发现是读出电路的时钟干扰。换了一颗传感器,问题消失。所以,读出噪声不一定是随机的,也可能是周期性干扰,调试时要注意。
3.4 固定模式噪声(FPN)
FPN 是空间维度的噪声。每颗像素因为工艺偏差,暗电流和增益不完全一致,导致在均匀光照下,不同像素输出不同。
FPN 分为两种:
- 暗信号非均匀性(DSNU):无光照时,像素输出的差异。来自暗电流的工艺偏差。
- 光响应非均匀性(PRNU):均匀光照下,像素增益的差异。来自光电转换效率的偏差。
低光照下,DSNU 尤其明显。你拍一张全黑照片,放大看,不是纯黑的,而是有颗粒感。那就是 DSNU。
FPN 的校正方法:
- 暗场校正:拍一张全黑帧,记录每个像素的偏移量,后续帧减去这个偏移。
- 亮场校正:拍一张均匀光照帧,计算每个像素的增益系数,后续帧乘以校正系数。
- 移动端受限于成本,FPN 校正精度有限,但至少能消除明显的竖条纹。
我个人习惯,拿到新传感器,第一件事就是拍全黑帧和均匀灰帧,分析 FPN 的分布。如果 FPN 超过 1-2 个码值,低光照算法基本不用做了——底子太差。
3.5 噪声模型在低光照增强中的意义
理解了噪声模型,你才能设计出有针对性的降噪算法。
- 散粒噪声:用多帧融合或 BM3D 等非局部均值方法,利用其随机性进行抑制。
- 读出噪声:用双边滤波或小波阈值去噪,保留边缘的同时去除高频噪声。
- FPN:用暗场/亮场校正,或者用高通滤波去除固定条纹。
我做过一个对比实验:同样的低光照场景,先做 FPN 校正,再做散粒噪声抑制,PSNR 提升了 3-4dB。不做 FPN 校正,直接降噪,效果差很多。
实战建议:移动端 ISP 的降噪流程,我建议按这个顺序:
- 先做 FPN 校正(消除固定条纹)
- 再做散粒噪声抑制(多帧融合或空域降噪)
- 最后做读出噪声抑制(边缘保护降噪)
顺序错了,效果会打折扣。
嗯,这一章的内容就到这里。噪声模型是 ISP 算法的基础,搞懂了它,你才能理解为什么低光照增强这么难,以及怎么针对性地解决问题。