4. 噪声模型与特性分析
做HDR合成,最头疼的不是对齐,而是噪声。你想想看,多帧融合本来就是为了提信噪比,可要是连噪声的脾气都没摸透,融合完反而可能更糟。这一节,我们就来彻底拆解传感器噪声——它从哪来、长什么样、怎么随曝光变、又怎么在HDR里被放大。
4.1 传感器噪声的三大来源
传感器噪声,说白了就三类:光子散粒噪声、读出噪声、固定模式噪声。我习惯把它们分成“躲不开的”和“能校准的”。
| 噪声类型 | 物理来源 | 与信号的关系 | 能否校准 |
|---|---|---|---|
| 光子散粒噪声 | 光子到达的随机性 | √信号 | 不能(物理极限) |
| 读出噪声 | 模拟电路、ADC量化 | 常数(与信号无关) | 部分可校准 |
| 固定模式噪声 | 像素工艺差异、暗电流 | 空间固定模式 | 可校准(DSNU/PRNU) |
4.2 光子散粒噪声——躲不开的物理极限
光子到达传感器,本质是个泊松过程。你想想看,就算场景亮度完全恒定,每个像素收集到的光子数也会上下波动。这个波动,就是散粒噪声。
它的标准差等于信号电子数的平方根:
σ_shot = √(S) (单位:e⁻)
其中 S 是信号电子数。
这意味着什么?信号越强,噪声值越大,但信噪比反而在提升:
SNR_shot = S / √S = √S
我在项目中遇到过一件事:用长曝光拍夜景,暗部全是颗粒感。当时团队有人怀疑是传感器坏了。其实不是,那就是散粒噪声——暗部信号只有几十个电子,√S 才个位数,信噪比自然低。
4.3 读出噪声——电路里的“底噪”
读出噪声来自模拟电路和ADC量化过程。它跟信号大小没关系,是个固定底噪。我习惯叫它“传感器的本底噪声”。
典型值范围:
- 消费级手机传感器:2~5 e⁻
- 工业/安防传感器:1~3 e⁻
- 科学级sCMOS:<1 e⁻
读出噪声在短曝光帧里特别要命。你想想看,短帧信号本来就弱,读出噪声再一叠加,信噪比直接崩了。这也是为什么HDR合成时,短曝光帧往往需要更强的去噪——不是因为它本身噪,而是读出噪声占比太高。
4.4 固定模式噪声——能校准的“指纹”
固定模式噪声(FPN)分两种:
- DSNU(暗信号非均匀性): 无光照时,各像素暗电流不同导致的偏移差异。
- PRNU(光响应非均匀性): 相同光照下,各像素增益不同导致的响应差异。
FPN的特点是空间固定、时域稳定。说白了,每个像素都有自己的“小脾气”——有的天生亮一点,有的暗一点。这个噪声在HDR里特别坑人,因为多帧融合时,如果FPN没校掉,它会像水印一样叠加到最终图像上。
校准方法其实不复杂:
// 暗场校正(DSNU)
I_corrected = I_raw - dark_frame
// 亮场校正(PRNU)
I_corrected = (I_raw - dark_frame) / flat_field
我建议在HDR流水线的最前端就做FPN校正。别等到融合完再校——那时候噪声已经被非线性映射扭曲了,校不准。
4.5 噪声与曝光时间的关系
曝光时间直接影响信号电子数,进而影响各类噪声的占比。我习惯用一张图来理解:
从图上能看出三个区间:
- 短曝光区: 读出噪声占主导。信号弱,信噪比由读出噪声决定。
- 中曝光区: 散粒噪声成为主角。信噪比随√信号提升。
- 长曝光区: FPN开始抬头。如果不校准,空间噪声会肉眼可见。
4.6 噪声在HDR中的放大效应
这是本章最核心的部分。HDR合成时,噪声会被非线性映射放大。我见过太多人忽略这一点,结果合成完的图像噪点比单帧还多。
放大效应分三步:
- 线性域融合: 多帧加权平均,噪声按帧权重叠加。
- 非线性映射(tone mapping): 暗部被提亮,噪声同步放大。
- 空间域差异: 不同曝光帧的噪声特性不同,融合边界出现“噪声断层”。
举个例子:
假设短帧(1ms)读出噪声 5 e⁻,信号 100 e⁻ → SNR = 20
长帧(32ms)读出噪声 5 e⁻,信号 3200 e⁻ → SNR = 640
融合时,短帧权重 0.1,长帧权重 0.9
融合后噪声方差 = 0.1² × 5² + 0.9² × 5² ≈ 20.5 e⁻²
融合后信号 = 0.1×100 + 0.9×3200 = 2890 e⁻
融合后SNR ≈ 2890 / √20.5 ≈ 638
看起来不错?但tone mapping一上去,暗部提亮3倍,噪声也跟着放大3倍。
这就是为什么HDR合成后,暗部区域经常出现“彩色噪点”——那是短帧的读出噪声被tone mapping放大后,又经过色彩插值扩散的结果。
4.7 噪声特性总结表
| 噪声类型 | 时域特性 | 空域特性 | HDR放大风险 | 应对策略 |
|---|---|---|---|---|
| 光子散粒噪声 | 帧间独立 | 均匀分布 | 中(随信号放大) | 多帧融合、BM3D |
| 读出噪声 | 帧间独立 | 可能有列模式 | 高(短帧被放大) | 短帧预去噪、列校正 |
| 固定模式噪声 | 帧间固定 | 空间结构化 | 极高(融合后残留) | 暗场/亮场校准 |