图像噪声基础:噪声类型与数学模型
做ISP算法,说白了就是跟噪声打交道。你想想看,传感器出来的原始数据,哪一张是干净的?我刚开始接触这行时,总觉得降噪就是简单做个滤波,结果被导师骂了一顿——「你连噪声是什么都不清楚,怎么降?」
嗯,这一章我们就来把噪声的底细摸清楚。搞懂了噪声的脾气,后面的降噪算法才能对症下药。
噪声从哪来?
图像噪声的本质,是真实光信号在采集、传输过程中被干扰的结果。我个人习惯把噪声来源分成三类:
- 传感器自身:暗电流、读出噪声、复位噪声
- 光子统计特性:光子到达的随机性
- 电路与量化:ADC量化误差、电源纹波
我在项目中遇到过最头疼的情况——一款手机传感器在低光下出现奇怪的条纹噪声。查了三天,最后发现是电源走线布局问题。所以说,噪声问题有时候不全是算法能解决的,硬件底子也很重要。
三大核心噪声模型
ISP领域最常打交道的噪声就三种:高斯噪声、泊松噪声、散粒噪声。我们一个一个说。
1. 高斯噪声
高斯噪声是最基础的模型。它描述的是大量独立随机因素叠加后的统计特性——中心极限定理告诉我们,这些因素加起来就近似正态分布。
数学表示:
概率密度函数:p(x) = (1 / (σ√(2π))) · exp(-(x-μ)² / (2σ²))
其中:
μ —— 均值(通常为0)
σ —— 标准差(决定噪声强度)
高斯噪声在图像上表现为每个像素独立叠加一个随机值。我习惯用它来模拟传感器读出噪声和ADC量化噪声。为什么?因为这两类噪声的统计特性确实接近高斯分布。
实战经验:在调试降噪算法时,我通常先用高斯噪声做基准测试。如果算法连高斯噪声都处理不好,真实场景更没戏。但注意——真实噪声往往不是纯高斯的,别被实验室数据骗了。
2. 泊松噪声(光子噪声)
这个就有点意思了。光子到达传感器像素的过程,本质上是随机事件——就像下雨时雨滴落在某个区域一样。这种随机性服从泊松分布。
数学表示:
P(k) = (λ^k · e^(-λ)) / k!
其中:
k —— 观测到的光子数
λ —— 平均光子数(与光照强度成正比)
泊松噪声有个重要特性:方差等于均值。这意味着信号越强(亮区),噪声值越大;信号越弱(暗区),噪声值越小。但信噪比呢?恰恰相反——亮区信噪比高,暗区信噪比低。
你想想看,为什么夜景照片总是噪点满天飞?就是因为暗区光子数少,泊松噪声的相对影响大。
3. 散粒噪声
散粒噪声其实是泊松噪声在电子学中的叫法。它描述的是电流中载流子(电子或空穴)随机通过势垒时产生的噪声。
在图像传感器中,散粒噪声主要来自:
- 光生电子的随机产生
- 暗电流电子的随机产生
数学上,散粒噪声和泊松噪声是同一个模型。我个人习惯在讨论传感器物理特性时用「散粒噪声」,在讨论光子统计时用「泊松噪声」——其实是一回事。
避坑指南:我曾经在项目中把散粒噪声当成高斯噪声来处理,结果降噪后图像出现奇怪的纹理残留。后来才意识到——散粒噪声的强度与信号相关,用固定阈值的高斯滤波器根本搞不定。记住:散粒噪声是信号相关的,高斯噪声是信号无关的,这是本质区别。
噪声模型对比
| 特性 | 高斯噪声 | 泊松/散粒噪声 |
|---|---|---|
| 分布形态 | 对称钟形 | 偏态(λ小时明显) |
| 均值与方差关系 | 独立 | 方差 = 均值 |
| 信号相关性 | 无关 | 相关(亮区噪声大) |
| 主要来源 | 读出电路、ADC | 光子统计、暗电流 |
| 典型场景 | 高ISO、电子噪声 | 低光、长曝光 |
实际ISP中的噪声模型
真实世界的噪声从来不是单一模型。我常用的做法是混合噪声模型:
I_observed = I_true + N_shot(I_true) + N_read + N_quant
其中:
N_shot —— 散粒噪声(泊松分布,与信号相关)
N_read —— 读出噪声(高斯分布,信号无关)
N_quant —— 量化噪声(均匀分布,通常可忽略)
这个模型虽然简单,但在工程上非常实用。我在调试高通平台时,就是用这个模型来标定传感器的噪声参数——拍几张不同亮度的灰卡,拟合出散粒噪声和读出噪声的系数。
噪声参数标定流程
- 准备均匀灰卡:至少5个亮度等级(从暗到亮)
- 拍摄多帧:每个亮度拍10-20帧,计算像素均值和方差
- 拟合曲线:方差 vs 均值,得到斜率和截距
- 解析参数:斜率 → 散粒噪声增益,截距 → 读出噪声方差
小技巧:标定时记得关掉所有ISP处理(降噪、锐化、HDR等),拿到最原始的RAW数据。我见过有人拿处理过的图像标定噪声参数,结果完全不对——降噪算法已经把噪声抹掉了,你标定个啥?
知识结构总览
下面这张图把本章的核心逻辑串起来了。你可以把它当作噪声分析的思维导图:
小结
这一章我们把噪声的底细摸了一遍。记住三个核心点:
- 高斯噪声——信号无关,用固定参数处理
- 泊松/散粒噪声——信号相关,亮区噪声大但信噪比高
- 混合模型——真实场景是多种噪声叠加,标定参数才能精准降噪
搞懂了这些,后面讲降噪算法时你就能理解——为什么有些滤波器对暗区有效但对亮区无效,为什么有些算法要分区域处理。嗯,这些都是噪声模型决定的。