1、去噪基础:图像噪声来源与分类
做ISP图像处理这些年,我接触最多的就是噪声。说实话,刚入行那会儿,我总觉得去噪就是简单做个滤波。后来在项目中吃了不少亏,才明白——不懂噪声的来龙去脉,去噪就是瞎搞。
这一章,咱们就把噪声的底细摸清楚。你想想看,连敌人长什么样都不知道,怎么打胜仗?
1.1 噪声到底从哪来?
图像噪声,说白了就是传感器在捕捉光线时产生的「意外信号」。我习惯把噪声来源分成三类:
- 传感器自身:CMOS/CCD的暗电流、读出电路的热噪声
- 光子特性:光本身就是离散的粒子,统计涨落不可避免
- 传输过程:信号在传输中受电磁干扰,或者存储时数据出错
嗯,这里要注意——噪声不是「坏掉」才有的。哪怕你拿最顶级的工业相机,在暗光下拍一张纯黑画面,放大看照样有噪点。这是物理规律,躲不开。
核心认知:噪声是成像系统的固有属性,不是bug,是feature。去噪的本质是在「去除噪声」和「保留细节」之间找平衡。
1.2 四大常见噪声类型
我在项目中实际遇到的噪声,90%以上可以归到这四类。咱们一个一个说。
1.2.1 高斯噪声
这是最经典的噪声模型。它来自传感器读出电路的热运动,每个像素的噪声值服从正态分布。
数学上长这样:
概率密度函数:p(x) = (1/σ√2π) * exp(-(x-μ)²/2σ²)
其中 μ 是均值(通常为0),σ 是标准差(控制噪声强度)
我记得第一次做去噪算法评估时,用的就是高斯噪声。因为它数学性质好,方便分析。但实际项目中,纯高斯噪声很少单独出现,往往是混合噪声的一部分。
我的经验:在实验室测试去噪算法时,先加高斯噪声做基准测试。但最终调参,一定要用真实场景数据。我吃过这个亏——实验室跑分漂亮,一上产品就翻车。
1.2.2 泊松噪声(散粒噪声)
这个噪声跟光子的量子特性有关。光打到传感器上,本质是光子一个个砸过来。光子数量服从泊松分布。
关键特性:噪声强度跟信号强度挂钩。亮的地方噪声大,暗的地方噪声小。
泊松分布:P(k) = (λ^k * e^(-λ)) / k!
λ 是平均光子数,k 是实际观测到的光子数
噪声方差 = λ(均值等于方差)
你想想看,这意味着什么?暗光下信噪比天然就差。因为光子少,统计涨落相对更明显。这也是为什么夜景照片噪点多的根本原因。
避坑指南:我曾经在低光照项目里直接用高斯噪声模型去拟合泊松噪声,结果暗部细节全糊了。后来改用泊松-高斯混合模型,效果才起来。记住——暗光场景,泊松噪声是主角。
1.2.3 椒盐噪声
这个噪声很直观——图像上随机出现白点(盐)和黑点(椒)。它通常来自传感器坏点、传输错误或者存储介质问题。
特点:
- 只有两个值:0(黑)或255(白)
- 随机分布,跟图像内容无关
- 密度参数控制噪声比例
处理椒盐噪声,中值滤波是经典方案。我做过对比实验:3x3中值滤波对5%密度的椒盐噪声,恢复效果能达到PSNR 35dB以上。
1.2.4 散粒噪声(Shot Noise)
其实散粒噪声跟泊松噪声是同一个东西的不同叫法。但有些资料会把它单独拎出来,强调它在高增益场景下的表现。
简单说:增益越大,散粒噪声越明显。手机拍照时ISO开到3200以上,满屏的彩色噪点,就是散粒噪声在作祟。
1.3 信噪比与噪声评估指标
做去噪,你得有个尺子量效果。我常用的指标就这几个:
1.3.1 信噪比(SNR)
定义很简单:
SNR = 10 * log10(信号功率 / 噪声功率)
单位:dB
SNR越高,图像质量越好。一般经验:
| SNR范围 | 图像质量 | 典型场景 |
|---|---|---|
| >40dB | 优秀 | 专业摄影棚 |
| 30-40dB | 良好 | 白天户外 |
| 20-30dB | 可接受 | 室内灯光 |
| <20dB | 较差 | 暗光/夜景 |
注意:SNR是全局指标,不能反映局部细节保留情况。我见过SNR很高的去噪结果,但纹理细节全没了——这叫「过度平滑」,是去噪的大忌。
1.3.2 PSNR(峰值信噪比)
这是学术界最常用的指标:
PSNR = 10 * log10(MAX² / MSE)
MAX是像素最大值(8bit图像为255)
MSE是均方误差
PSNR > 40dB 通常认为恢复效果很好。但说实话,PSNR高不代表人眼看着舒服。我做过测试:两张图PSNR差2dB,人眼根本分不出好坏。
1.3.3 SSIM(结构相似性)
这个指标更贴近人眼感知。它从亮度、对比度、结构三个维度评估图像质量。
SSIM(x,y) = [l(x,y)]^α * [c(x,y)]^β * [s(x,y)]^γ
取值范围:0~1,越接近1越好
我个人习惯:PSNR看数值,SSIM看趋势。两个指标结合着用,比单看一个靠谱。
1.3.4 主观评估
嗯,这个最容易被忽略,但恰恰最重要。我建议:
- 放大到100%看细节纹理
- 关注边缘是否模糊
- 检查暗部有没有色块
- 看平坦区域是否出现伪纹理
我的习惯:每次调完去噪参数,先不看PSNR,直接肉眼扫一遍关键区域。等主观感觉OK了,再用客观指标验证。这样效率最高。
1.4 本章小结
这一章咱们把噪声的底细摸清楚了:
- 噪声来源:传感器、光子、传输
- 四大噪声:高斯、泊松、椒盐、散粒
- 评估指标:SNR、PSNR、SSIM、主观评估
下一章,咱们就要动手了——经典去噪算法实战。我会从最基础的空域滤波讲起,一步步带你搭建自己的去噪流水线。
记住一句话:懂噪声,才能去好噪。这是ISP图像处理的铁律。