2. 噪声模型基础:光子噪声、读出噪声、暗电流噪声的数学建模
做HDR去噪,你得先知道噪声从哪来。
很多人一上来就调参数、试滤波器,结果暗部提亮了,噪点也跟着放大了。说白了,就是没搞懂噪声的“脾气”。
这一章,我们就把三种最核心的噪声模型掰开揉碎。数学公式我会给,但更重要的是——你得知道它们在实际图像里长什么样。
2.1 光子噪声(散粒噪声)——躲不掉的物理宿命
光本身就是离散的光子。传感器每个像素接收到的光子数,不是固定的,而是服从泊松分布。
我刚开始做传感器标定时,总觉得这玩意儿太理论。直到有一次,我用同一台相机对着均匀灰板连拍100张,发现每张的像素值都不一样——嗯,这就是光子噪声在作怪。
核心公式:
光子数 N ~ Poisson(λ),其中 λ 是期望光子数。
噪声标准差 σ_shot = √λ
信噪比 SNR = λ / √λ = √λ
你看,信号越强(λ越大),信噪比越高。暗部区域λ很小,噪声就特别明显。这也是为什么提亮暗部时,噪点会跟着放大——因为底子里的信噪比本来就低。
| 场景 | 期望光子数 λ | 噪声标准差 √λ | 信噪比 (dB) |
|---|---|---|---|
| 强光区域 | 10000 | 100 | 40 dB |
| 中等亮度 | 1000 | 31.6 | 30 dB |
| 暗部区域 | 100 | 10 | 20 dB |
| 极暗区域 | 10 | 3.16 | 10 dB |
这张表我建议你记一下。做HDR合成时,不同曝光帧的噪声水平差异很大,融合权重就得按这个来设计。
2.2 读出噪声——电路里的“底噪”
光子转成电子,电子再转成电压,最后被ADC量化。每一步都会引入噪声。
读出噪声是加性的,跟信号强度无关。你想想看,就算完全遮住镜头(零光输入),读出电路依然会输出一个非零值——这就是读出噪声的“本色”。
个人经验: 我测试过一款工业相机,它的读出噪声大约是 2.5 e⁻(电子数)。这意味着即使信号为0,你也会看到大约2-3个灰度级的随机波动。暗部提亮时,这个噪声会被线性放大,非常讨厌。
读出噪声的数学模型很简单:
σ_read² = σ_ADC² + σ_amp² + σ_kTC²
其中:
- σ_ADC²:量化噪声,通常为 1/12 LSB²
- σ_amp²:放大器噪声,与增益相关
- σ_kTC²:复位噪声,与像素电容和温度相关
实际项目中,读出噪声通常用“暗场标准差”来测量。我建议你每次做标定时,先拍一张暗帧(盖上镜头盖),算一下标准差——这就是你当前系统的读出噪声基底。
2.3 暗电流噪声——温度是元凶
即使没有光,传感器内部的硅晶格热振动也会产生电子。这些“热生电子”就是暗电流。
暗电流跟曝光时间成正比,跟温度呈指数关系。温度每升高6-8°C,暗电流翻一倍。我在夏天做长曝光测试时,暗电流噪声能比冬天高4-5倍。
避坑指南: 我曾经在35°C环境下做30秒长曝光HDR,结果暗部全是“热像素”。后来加了TEC制冷,暗电流降了两个数量级。如果你做的是手机摄影算法,一定要考虑温升对暗电流的影响。
暗电流噪声的数学模型:
I_dark = I_0 × exp(-E_a / (k × T)) × t_exp
其中:
- I_0:与工艺相关的常数
- E_a:激活能(硅通常为 0.6 eV)
- k:玻尔兹曼常数
- T:温度 (K)
- t_exp:曝光时间
暗电流噪声也是泊松分布,因为它是随机热激发产生的。所以它的标准差 σ_dark = √(I_dark)。
2.4 三种噪声的叠加模型
实际传感器输出的总噪声,是这三种噪声的叠加。我习惯用下面的公式来建模:
σ_total² = σ_shot² + σ_read² + σ_dark²
= λ + σ_read² + I_dark
注意:光子噪声和暗电流噪声都是信号相关的(泊松分布),读出噪声是信号无关的。这个区别很重要——做去噪时,你得针对不同噪声类型设计不同的滤波器。
下面这张图展示了三种噪声在不同信号强度下的贡献比例:
2.5 实际应用中的噪声参数标定
理论讲完了,咱们来点实际的。怎么测出你手里相机的噪声参数?
我常用的方法:
- 暗帧法测读出噪声: 盖上镜头盖,拍10张暗帧,计算像素值标准差。这就是读出噪声的近似值。
- 变曝光时间测暗电流: 同样暗场,分别拍1秒、2秒、4秒、8秒。拟合暗电流随时间的增长曲线。
- 均匀光照测光子噪声: 对着均匀灰板,拍多张照片。总噪声减去读出噪声和暗电流,剩下的就是光子噪声。
小技巧: 我习惯用Python的numpy.polyfit做线性拟合。暗电流噪声的斜率就是暗电流速率(单位:e⁻/s),读出噪声就是截距。整个过程10分钟搞定。
有了这些参数,你就能精确预测任意曝光条件下的噪声水平。做HDR去噪时,每个像素的噪声方差都可以实时计算出来——这就是自适应去噪的基础。