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图像处理的铁律。