4. 噪声评估指标:SNR、PSNR、SSIM、视觉噪声评估

噪声抑制做得好不好,不能光靠眼睛看。你得有数据说话。

我见过不少团队,模型跑出来的图看着挺干净,一上指标就露馅了。要么细节糊了,要么颜色偏了。所以这一章,我们聊聊怎么给噪声做「体检」。

4.1 信噪比(SNR)—— 最朴素的度量

SNR 是信号与噪声的功率比值。说白了,就是有用信息占多大分量。

公式(简化版):

SNR = 10 * log10( Psignal / Pnoise )

单位是 dB。值越大,说明信号越强,噪声越弱。

我在项目中常用 SNR 来快速评估 sensor 的底噪水平。比如同一颗 sensor,ISO 100 时 SNR 能到 45 dB,ISO 3200 时可能掉到 25 dB。这个落差,基本决定了你的降噪策略要从哪一档开始发力。

实用技巧:

计算 SNR 时,建议取图像中一块均匀区域(比如灰卡)作为噪声估计,再取一块纹理丰富区域作为信号。别整张图一起算,那样会把边缘和纹理的贡献也混进去。

4.2 峰值信噪比(PSNR)—— 工业标准,但有坑

PSNR 是 SNR 的变种,用像素最大值(8bit 就是 255)代替信号功率。它成了图像压缩和降噪领域最通用的指标。

公式:

PSNR = 10 * log10( MAX^2 / MSE )

其中 MSE 是均方误差,MAX 是像素最大值。

PSNR 的好处是计算简单、可复现。坏处也很明显——它不关心人眼怎么看。

我曾经踩过的坑:

有一次我调了一个降噪模型,PSNR 比 baseline 高了 0.8 dB,心里挺美。结果放到实际场景里,纹理细节全磨没了,像油画一样。从那以后,我再也不单看 PSNR 了。

PSNR 对像素级误差敏感,但对结构失真、纹理模糊几乎无感。所以它适合做回归测试,不适合做最终决策。

4.3 结构相似性(SSIM)—— 更接近人眼

SSIM 从亮度、对比度、结构三个维度比较两张图像。它比 PSNR 更贴近人眼感知。

SSIM 的三个分量:

  • 亮度(luminance):比较均值
  • 对比度(contrast):比较标准差
  • 结构(structure):比较协方差

最终 SSIM 是这三个分量的加权乘积,范围在 [-1, 1],越接近 1 越好。

我个人习惯用 SSIM 来评估降噪后的细节保留程度。比如一张图降噪后 PSNR 涨了 2 dB,但 SSIM 掉了 0.05,那说明降噪过头了,细节丢了。

注意:

SSIM 对局部结构敏感,但全局一致性它管不了。所以我会配合 PSNR 一起看,一个看像素误差,一个看结构保真。

4.4 视觉噪声评估:主观与客观

指标再漂亮,最终还是要过人眼这一关。视觉噪声评估分两条路:主观评价和客观模型。

4.4.1 主观评价

最直接的方法就是找人看。ITU-R BT.500 标准里定义了主观测试流程,比如双刺激连续质量量表(DSCQS)。

  • 双刺激法:同时展示参考图和测试图,让观察者打分
  • 单刺激法:只展示测试图,让观察者凭印象打分
  • 成对比较法:两两对比,选出更好的那张

主观评价的缺点是费时费力,而且不同人的审美差异很大。我见过同一个降噪结果,有人觉得干净,有人觉得太肉。

4.4.2 客观模型

为了模拟人眼,学术界提出了不少模型。常用的有:

模型 原理 适用场景
VIF(视觉信息保真度) 基于自然场景统计和 HVS 模型 通用图像质量评估
VMAF(视频多方法评估融合) 融合 VIF、DLM、运动特征 视频质量评估
NIQE(自然图像质量评估器) 无参考,基于自然场景统计 无参考场景
PIQE(感知图像质量评估) 块级失真检测 无参考,实时性高

我的经验:

在 HDR 噪声抑制项目中,我通常用 VIF 做主要客观指标,因为它对纹理和边缘的保真度比较敏感。NIQE 作为无参考的辅助指标,用来监控模型在未知场景下的表现。

4.5 知识体系总览

下面这张图把本章的评估体系串起来了。你可以看到,从像素级到感知级,每个指标都有自己的位置。

噪声评估指标体系 噪声评估指标 客观指标 主观评估 SNR PSNR SSIM VIF / VMAF NIQE / PIQE DSCQS 单刺激法 成对比较 ITU-R BT.500 评估策略建议 客观指标做回归测试 + 主观评估做最终验收

4.6 实战建议:怎么选指标

你可能会问:这么多指标,我到底该用哪个?

我的建议是分场景:

  • 算法调优阶段:用 PSNR + SSIM 组合,快速迭代
  • 模型选型阶段:加 VIF 或 VMAF,看感知质量
  • 上线前验收:必须做主观评估,至少找 5 个人看
  • 无参考场景(比如用户上传的图):用 NIQE 或 PIQE 做监控

避坑提醒:

我曾经在一个项目里只用 PSNR 做优化,结果模型学会了「磨皮」——PSNR 涨了,但纹理全没了。后来加上 SSIM 和 VIF,才把模型拉回来。记住:指标是工具,不是目标。

噪声评估没有银弹。理解每个指标的脾气,组合使用,才能做出真正能用的降噪系统。