3、图像噪声模型:从物理根源到数学描述

做夜景多帧融合,第一关就是搞懂噪声。我见过不少团队,算法调得天花乱坠,结果一上暗光场景就崩——说白了,就是没摸清噪声的脾气。

这一章,咱们把五种核心噪声模型掰开揉碎。高斯噪声、泊松噪声、散粒噪声、读出噪声、固定模式噪声。嗯,一个一个来。

3.1 高斯噪声:最熟悉的陌生人

高斯噪声,你肯定见过。传感器在中等亮度下,热运动和电路随机涨落产生的噪声,基本服从正态分布。

数学形式:

n ~ N(0, σ²)

均值0,方差σ²。独立同分布,加性模型。

我在项目中遇到过一个问题:用高斯模型去拟合暗部噪声,结果偏差很大。为什么?因为暗部噪声根本不是高斯主导的。后面会讲。

高斯噪声的几个关键点:

  • 加性:直接叠加在信号上,与信号强度无关
  • 对称:正负偏差概率相等
  • 适用场景:中高亮度区域、ADC量化后噪声

我的习惯:做去噪时,先判断当前像素属于哪个亮度区间。高亮区用高斯模型,暗区换泊松模型。一刀切?效果肯定打折扣。

3.2 泊松噪声与散粒噪声:光子计数的本质

散粒噪声,其实是泊松噪声在光电转换中的具体表现。光子的到达是随机的,服从泊松分布。

你想想看,一个像素接收到的光子数N,其方差等于均值:

Var(N) = E[N]

这意味着什么?信号越强,噪声也越大。信噪比SNR = sqrt(N)。

特性 泊松噪声 高斯噪声
与信号关系 方差 = 均值 方差恒定
主导区域 暗光、低光子数 中高亮度
分布形态 偏态(低光子时) 对称
数学模型 Poisson(λ) N(0, σ²)

我曾经在调试一款手机夜景模式时,发现暗部去噪后总残留颗粒感。后来一查,是用了高斯滤波器去处理泊松噪声——方向就错了。

避坑指南:不要用高斯模型去拟合暗部噪声。泊松噪声在低光子数下是非对称的,用高斯近似会丢失细节。我建议用方差稳定变换(如Anscombe变换)先把泊松噪声转成近似高斯,再处理。

3.3 读出噪声:电路层面的“底噪”

读出噪声,是传感器把电荷转换成电压、再经过ADC量化时引入的。它跟信号强度无关,是系统的本底噪声。

读出噪声的来源:

  1. 复位噪声:像素复位时,电容上的热噪声
  2. 源跟随器噪声:缓冲放大器的1/f噪声和热噪声
  3. ADC量化噪声:模数转换的量化误差

读出噪声通常用电子数(e⁻)表示。一颗好的传感器,读出噪声可以做到1-2 e⁻。差一点的,10 e⁻以上。

关键公式:

总噪声² = 散粒噪声² + 读出噪声² + 固定模式噪声²

读出噪声是加性的,在暗部尤其明显。

我记得有一次,某款传感器的暗部信噪比死活上不去。排查了三天,发现是读出噪声偏大,换了驱动时序才解决。嗯,硬件问题有时候比算法更头疼。

3.4 固定模式噪声:每颗像素的“指纹”

固定模式噪声(FPN),是传感器制造工艺不一致导致的。每颗像素的暗电流、增益都有微小差异,形成固定的条纹或网格。

FPN分两种:

  • 暗信号非均匀性(DSNU):无光照时,各像素输出不一致
  • 光响应非均匀性(PRNU):相同光照下,各像素增益不一致
类型 成因 表现 校正方法
DSNU 暗电流差异 暗场下的固定条纹 暗帧减除
PRNU 光电转换效率差异 亮场下的网格状不均匀 平场校正

FPN的特点是“固定”——只要温度和增益不变,它就不变。所以校正起来相对容易。

我的做法:在产线标定阶段,采集暗帧和平场帧,生成校正表。多帧融合时,先做FPN校正,再做对齐和融合。顺序不能乱。

3.5 噪声模型全景图

下面这张图,把五种噪声的关系画清楚了。你看一眼就能明白:

夜景成像链路中的噪声模型全景 光子入射 光电转换 电压读出 ADC量化 散粒噪声 泊松噪声 读出噪声 高斯噪声 固定模式噪声 (FPN) 📌 关键理解: • 泊松噪声描述光子到达的随机性,散粒噪声是其物理表现 • 读出噪声在暗部占主导,高斯噪声在中高亮区占主导 • FPN是系统性的,可以通过标定校正;其他噪声是随机的,需要多帧融合 • 多帧融合的核心:利用帧间随机性抑制噪声,保留帧间一致的信号

3.6 多帧融合中的噪声处理策略

搞清楚了噪声模型,咱们才能对症下药。多帧融合时,我的处理顺序是这样的:

  1. FPN校正:先干掉固定模式噪声,否则后续对齐会受干扰
  2. 泊松→高斯转换:用Anscombe变换或查表法,把暗部噪声转成高斯
  3. 多帧平均:N帧平均,随机噪声降低sqrt(N)倍
  4. 自适应去噪:根据局部亮度,选择不同的去噪强度

核心公式:

融合后信噪比 = 单帧信噪比 × sqrt(N)

N是融合帧数。但要注意,帧间如果有运动,就不能简单平均了。

我曾经在一个项目里,为了追求信噪比,堆了16帧。结果一动起来,鬼影严重。后来改成自适应帧数——静止区域多堆,运动区域少堆。效果好了很多。

注意:多帧融合不是帧数越多越好。帧数多了,运动模糊和鬼影的风险也大了。我建议根据场景动态选择帧数,一般4-8帧是个不错的平衡点。

3.7 本章小结

五种噪声模型,各有各的脾气。高斯噪声好处理,但别用错地方。泊松和散粒噪声是物理本质,躲不开。读出噪声是硬件的底限,FPN是工艺的烙印。

做夜景多帧融合,我的经验是:先标定FPN,再转换泊松,最后用自适应高斯滤波。每一步都要知道自己在处理什么噪声。盲目套算法?效果肯定不行。

嗯,这一章就到这儿。噪声模型是基础,后面讲对齐和融合的时候,你会反复用到这些概念。