图像噪声基础:噪声来源与模型
做夜景降噪,第一件事不是调算法,而是搞清楚——噪声到底从哪来的。
我刚开始接触手机摄像头时,总觉得噪声就是「画面不干净」。后来在项目中吃过亏才明白:不同来源的噪声,处理方式完全不同。你拿高斯滤波去处理泊松噪声,效果会很差。
这一章,我们就把噪声的底细摸清楚。
2.1 三大噪声来源
夜景拍摄时,传感器上的噪声主要来自三个地方。我习惯把它们分成「源头噪声」和「电路噪声」两类。
| 噪声类型 | 英文 | 产生环节 | 核心特点 |
|---|---|---|---|
| 光子噪声 | Photon Shot Noise | 光电转换 | 与信号强度平方根成正比 |
| 读出噪声 | Read Noise | 模拟电路读出 | 与信号无关,固定底噪 |
| 热噪声 | Thermal Noise | 像素暗电流 | 随温度指数上升 |
2.1.1 光子噪声
这是物理极限带来的噪声。光本身就是离散的光子,到达传感器的数量服从统计分布。你想想看,夜景下光线很弱,每个像素接收到的光子可能只有几十个。这时候,光子数的随机波动就会非常明显。
关键公式:光子噪声的标准差 = √(信号强度)
信号越强,噪声值越大,但信噪比反而提高。
我在项目中遇到过一个问题:用长曝光拍星空,明明信号很强,但星星周围还是有颗粒感。后来一查,就是光子噪声。它没法消除,只能通过多帧叠加来抑制。
2.1.2 读出噪声
读出噪声是传感器把电荷转换成电压时引入的。它跟信号大小没关系,是一个固定的底噪。
举个例子:你拍全黑画面(盖上镜头盖),看到的那些亮斑和条纹,主要就是读出噪声。
避坑指南:我曾经在调试一款传感器时,发现暗电流校正后画面反而更差了。后来才意识到,读出噪声的分布不是均匀的——不同列之间可能有差异。这时候需要用「暗场减除」而不是简单的均值减除。
2.1.3 热噪声
热噪声来自像素本身的暗电流。温度每升高 6-8°C,暗电流大约翻一倍。这就是为什么手机拍夜景久了,画面会越来越「热」。
我做过一个实验:把手机放在冰箱里(约 4°C)和室温下(约 25°C)分别拍 30 秒长曝光。结果冰箱里的画面干净得多,热噪声降低了约 75%。
注意:热噪声在长曝光(>1秒)时尤其严重。如果你在做夜景模式,曝光时间超过 2 秒,必须考虑热噪声校正。
2.2 噪声模型
搞清楚了来源,接下来要建模。噪声模型决定了你用什么样的数学工具去处理它。
2.2.1 高斯噪声
高斯噪声是最常见的模型。它的概率密度函数是正态分布:
p(x) = (1 / (σ√(2π))) * exp(-(x-μ)² / (2σ²))
读出噪声和热噪声都近似服从高斯分布。它的好处是数学性质好,很多滤波器(比如高斯滤波、BM3D)都是基于这个假设设计的。
但要注意:高斯噪声假设噪声与信号无关。这在弱光下并不成立。
2.2.2 泊松噪声
光子噪声服从泊松分布。它的特点是:均值等于方差。
也就是说,信号越强的地方,噪声波动也越大。这跟高斯噪声完全不同。
核心区别:
- 高斯噪声:方差固定,与信号无关
- 泊松噪声:方差 = 均值,与信号相关
我建议你在做夜景降噪时,先把图像做一次「方差稳定变换」(VST),把泊松噪声转换成近似高斯噪声,再用高斯模型去处理。这样效果会好很多。
2.2.3 混合模型
实际传感器上的噪声是混合的:
总噪声 = 泊松噪声(光子) + 高斯噪声(读出+热)
这个模型叫 Poisson-Gaussian 模型。它是目前工业界最常用的噪声模型。
| 参数 | 物理含义 | 典型值(夜景) |
|---|---|---|
| α (增益因子) | 模拟增益 | 1-16x |
| σ_read | 读出噪声标准差 | 1-5 e⁻ |
| σ_dark | 暗电流噪声 | 0.1-2 e⁻/s |
2.3 信噪比(SNR)
信噪比是衡量图像质量的核心指标。说白了就是:信号有多强,噪声有多弱。
公式很简单:
SNR = 20 * log10(信号强度 / 噪声标准差) (单位: dB)
我一般用这个经验值来判断:
- SNR > 40 dB:画面非常干净,几乎看不到噪声
- SNR 20-40 dB:有轻微噪声,但可以接受
- SNR < 20 dB:噪声明显,需要降噪处理
夜景模式下,SNR 通常在 10-25 dB 之间。这就是为什么降噪算法这么重要。
个人经验:我在评估降噪算法时,不会只看 SNR 提升。因为 SNR 提升 3 dB 可能人眼根本看不出区别。我习惯同时看 PSNR 和主观视觉评分(MOS)。
2.4 本章知识结构
下面这张图把噪声的来源、模型和信噪比串起来了。你可以把它当作一个快速参考。
2.5 小结
这一章我们讲了三个核心概念:
- 噪声来源:光子噪声(物理极限)、读出噪声(电路底噪)、热噪声(温度相关)
- 噪声模型:高斯模型(固定方差)、泊松模型(方差=均值)、混合模型(更贴近实际)
- 信噪比:衡量图像质量的标尺,夜景下通常只有 10-25 dB
嗯,这些概念看起来有点理论,但后面每一章都会用到它们。尤其是当你调参数调到头秃的时候,回头看看噪声模型,往往能找到答案。