第三章 图像质量评价指标:从信息熵到无参考评价

做图像融合也好,做场景自适应算法也好,最终都得回答一个问题:这张图到底好不好?

我刚开始接触这个领域时,总觉得“好”是个主观感受。后来被项目逼着做量化评估,才发现——没有指标,你连算法好坏都说不清。这一章,我就把常用的几个评价指标掰开揉碎了讲清楚。

核心观点:图像质量评价不是选一个指标就完事,而是要根据应用场景组合使用。单一指标往往有盲区。

3.1 信息熵:图像的信息量有多大?

信息熵这个概念,说白了就是衡量图像里“信息丰富程度”的。熵越大,说明图像细节越多,纹理越丰富。

计算公式很简单:

H = - Σ p(i) * log₂(p(i))

其中 p(i) 是灰度值 i 出现的概率。对于 RGB 图像,我一般分别计算三个通道的熵,然后取平均。

我在项目中遇到过一个坑:两张图熵值一样,但一张是清晰的风景,另一张是随机噪声。为什么?因为噪声的灰度分布也很均匀,熵值自然高。所以,信息熵不能单独用,必须配合其他指标。

图像类型 典型熵值范围 说明
纯色图像 0 ~ 1 几乎没有信息
自然风景 6 ~ 8 纹理丰富
高噪声图像 7 ~ 8 熵值虚高
过曝/欠曝 2 ~ 4 信息丢失严重

我的习惯:在曝光融合项目中,我会先看熵值。如果融合后的熵值比原图还低,说明算法把细节抹掉了,得调参数。

3.2 对比度:图像“通透”吗?

对比度衡量的是图像中明暗差异的程度。高对比度的图像看起来“通透”,低对比度的图像则“发灰”。

常用的 RMS 对比度公式:

C = sqrt( (1/N) * Σ (I(i) - μ)² )

其中 μ 是平均灰度,N 是像素总数。

你想想看,一张雾霾天的照片和一张晴天的照片,对比度能差多少?我实测过,雾霾图对比度通常在 30~50,晴天风景能到 80~120。

我曾经在做一个去雾算法时,只盯着对比度调参。结果对比度上去了,图像也出现了严重的过曝区域。后来才明白:对比度提升要有限度,否则会损失高光和阴影的细节。

避坑指南:对比度指标对噪声敏感。椒盐噪声会显著拉高对比度值,让你误以为图像质量很好。所以,评估前最好先做简单的去噪处理。

3.3 饱和度:颜色够“鲜艳”吗?

饱和度描述的是颜色的纯度。在 HSV 色彩空间中,饱和度 S 的取值范围是 [0, 1]。0 表示灰色,1 表示纯色。

计算方式:

S = (max(R,G,B) - min(R,G,B)) / max(R,G,B)

整图的饱和度指标,我通常取所有像素饱和度的平均值。

嗯,这里要注意:饱和度不是越高越好。我在做 HDR 融合时,曾经把饱和度拉得很高,结果天空变成了诡异的紫色。后来我给自己定了个规矩:饱和度提升幅度不超过原始图像的 30%。

应用场景 建议饱和度范围 备注
监控图像 0.3 ~ 0.5 优先保证细节
摄影后期 0.5 ~ 0.7 自然为主
广告设计 0.7 ~ 0.9 可以适当夸张

3.4 结构相似性 (SSIM):像不像原图?

SSIM 是我个人最常用的全参考指标。它从亮度、对比度、结构三个维度比较两张图像的相似度。

公式长这样:

SSIM(x,y) = [l(x,y)]^α * [c(x,y)]^β * [s(x,y)]^γ

其中 l 是亮度比较,c 是对比度比较,s 是结构比较。默认 α=β=γ=1。

为什么 SSIM 比 PSNR 好用? 我举个例子:一张图稍微调亮了一点,PSNR 可能掉很多,但 SSIM 变化不大,因为结构没变。这才是符合人眼感知的。

经验值:SSIM > 0.9 表示两张图几乎一样;0.8 ~ 0.9 表示有轻微差异;低于 0.7 说明结构已经明显改变了。

我在项目中遇到过一个情况:融合后的图像 SSIM 很高,但人眼看着就是不舒服。后来发现,SSIM 对局部过曝不敏感。所以,我现在的做法是:先看 SSIM,再配合局部区域的对比度检查。

3.5 无参考图像质量评价:没有原图怎么办?

实际项目中,很多时候你拿不到“完美”的原图做对比。这时候就需要无参考评价指标。

常用的方法有:

  • BRISQUE:基于自然场景统计,提取空间域特征,用 SVR 回归预测质量分数。
  • NIQE:不依赖失真类型,只从图像本身提取特征,与“自然模型”对比。
  • PIQE:基于块级处理,对局部失真敏感。

我个人习惯用 BRISQUE,因为它速度快,而且对常见的模糊、噪声、压缩失真都比较敏感。但要注意:BRISQUE 的分数越低越好,这点和 SSIM 相反。

指标 分数含义 适用场景
BRISQUE 越低越好(0~100) 通用失真检测
NIQE 越低越好(0~100) 无参考对比
PIQE 越低越好(0~100) 局部失真敏感

避坑指南:无参考指标对训练数据集的依赖很大。比如 BRISQUE 是在 LIVE 数据集上训练的,如果你的图像风格和 LIVE 差异很大,分数可能不准。我建议:用多个无参考指标交叉验证。

3.6 知识体系总览

下面这张图,我把本章的核心知识点串起来了。你可以把它当作一个“评价指标选择指南”。

图像质量评价指标知识体系 图像质量评价指标体系 图像质量评价 全参考 半参考 无参考 SSIM / PSNR 信息熵 / 对比度 BRISQUE / NIQE 有原图对比时使用 需部分参考信息 无原图时首选 建议:全参考 + 无参考组合使用,避免单一指标的盲区 例如:SSIM 评估结构保持 + BRISQUE 评估自然度

3.7 实战建议:如何组合使用这些指标?

说了这么多,到底怎么用?我分享一个自己在项目中验证过的流程:

  1. 第一步:用无参考指标做初筛。BRISQUE 跑一遍,分数高于 50 的直接淘汰。
  2. 第二步:有原图时,用 SSIM 做精细评估。SSIM > 0.85 才算合格。
  3. 第三步:用信息熵和对比度做辅助判断。确保融合后的图像没有信息丢失。
  4. 第四步:人工抽检。选 10% 的样本,肉眼过一遍。这一步不能省。

我的习惯:写一个自动评估脚本,把所有指标跑一遍,输出一个综合评分。评分公式我一般用加权平均:0.4 * SSIM + 0.3 * (1 - BRISQUE/100) + 0.2 * 熵归一化 + 0.1 * 对比度归一化。权重根据项目调整。