MUSIQ ,MANIQA,CLIP-IQA,FID是什么指标,分别是如何计算的(图像恢复领域评价指标
文章目录
- 四个常见图像质量/生成效果评价指标概览
- 1 MUSIQ — Multi‑Scale Image Quality Transformer
- 2 MANIQA — Multi‑Dimension Attention Network for NR‑IQA
- 3 CLIP‑IQA — 利用 CLIP 先验的零样本 IQA
- 4 FID — Fréchet Inception Distance
- 小结
四个常见图像质量/生成效果评价指标概览
指标 | 用途 | 结果输出 | 典型应用场景 |
---|---|---|---|
MUSIQ | 单幅 NR‑IQA(无需参考图像) | 连续分值≈[0, 100] | 手机拍照、图像增强管线 |
MANIQA | 单幅 NR‑IQA,尤其针对 GAN 伪影 | 连续分值≈[0, 1] 或 [0, 10] | 超分/去噪模型调优 |
CLIP‑IQA | 单幅 NR‑IQA(零样本或少样本) | 连续分值≈[0, 10] | 多风格生成、审美评估 |
FID | 分布级 评价生成模型 | 越小越好(理想 0) | GAN / Diffusion 训练早停、模型横向比较 |
1 MUSIQ — Multi‑Scale Image Quality Transformer
是什么
MUSIQ 是 Google 于 ICCV 2021 提出的无参考图像质量评估模型,通过 多尺度 Vision Transformer 直接对原始分辨率图像打分,避免传统 CNN 必须裁剪/缩放而导致的构图破坏。citeturn2view0
核心思路
- 多尺度表征:把同一幅图像按若干比例(如 1.0×、0.5×、0.25×)缩放后分别切成 16 × 16 patch。
- Hash‑based 2D 位置编码 + Scale Embedding:解决不同尺度、不同长宽比 patch 的相对定位问题。
- 共享 Transformer 编码:全局自注意力跨尺度“看图”,捕获细节与整体构图质量。
- 全局池化 + MLP 回归:输出一个与主观 MOS(Mean Opinion Score)对齐的标量分值。
如何计算(推理阶段)
输入 RGB 图像 → 生成多尺度 patch → 位置/尺度嵌入 → Transformer → 全局平均池化 → 全连接层 → 质量分
使用官方预训练权重时,一行 PyTorch 代码即可:score = musiq_model(img_tensor).item()
。
2 MANIQA — Multi‑Dimension Attention Network for NR‑IQA
是什么
MANIQA 在 NTIRE 2022 冠军方案基础上提出,针对 GAN‑类伪影与高分辨率失真 引入多维注意力来提高 NR‑IQA 精度。citeturn3view0
核心结构
模块 | 作用 |
---|---|
ViT 主干 | 提取四层多尺度特征 |
TAB (Transposed Attention Block) | 在 通道维 做自注意力 → 重新分配特征重要性 |
SSTB (Scale Swin Transformer Block) | 在 空间维 做局部‑跨尺度注意力 |
双分支加权预测 | (i) Patch 权重分支 w_i (ii) Patch 质量分支 q_i → 最终分数 Σ w_i q_i |
计算步骤
- 将输入图像缩放到 384 × 384,喂入 ViT 得到多层特征。
- 交替经过 TAB 和 SSTB 堆叠,强化全局/局部依赖。
- 对每个 patch 同时预测 权重 与 质量,再加权求和。
features = ViT(img)
features = TAB(features) → SSTB(features)
score = Σ (softmax(W_w·features) ⊙ (W_q·features))
3 CLIP‑IQA — 利用 CLIP 先验的零样本 IQA
是什么
AAAI 2023 的 “Exploring CLIP for Assessing the Look & Feel of Images” 发现,OpenAI CLIP 的视觉嵌入已隐式编码“质量/审美”信息,可在 零样本 情况下预测人类打分。citeturn1search1
两种常用实现
- Prompt 对比法(完全零样本)
- 取文本提示 “a high‑quality photo” 与 “a low‑quality photo”,用 CLIP 计算图像与两提示的相似度差 Δs;再做归一化得到 0–10 分。
- 线性回归微调
- 在小规模 MOS 数据上拟合
score = wᵀf + b
(f 为 CLIP embedding)。只需十几分钟即可得到 SROCC≈0.9 的 NR‑IQA 模型。
- 在小规模 MOS 数据上拟合
推理流程(Prompt 法示例)
import torch, clip
model, preprocess = clip.load("ViT-B/32")
img = preprocess(PIL.Image.open("test.jpg")).unsqueeze(0).cuda()
text = clip.tokenize(["a high-quality photo", "a low-quality photo"]).cuda()
with torch.no_grad():img_f, txt_f = model.encode_image(img), model.encode_text(text)img_f, txt_f = img_f/ img_f.norm(dim=-1, keepdim=True), txt_f/ txt_f.norm(dim=-1, keepdim=True)
score = (img_f @ txt_f.T)[0] # 2 维,取差值即可
4 FID — Fréchet Inception Distance
是什么
FID 用来衡量 整批生成图像 与 真实图像 分布的距离,值越小代表生成结果越逼真、分布越接近真实。citeturn5view0
数学定义
设
- 真实图像经 Inception‑v3
pool3
得到特征分布 𝒩( μ_r, Σ_r ) - 生成图像同理得 𝒩( μ_g, Σ_g )
则
[
\text{FID}= |\mu_r-\mu_g|_2^{2}
+\operatorname{Tr}!\left(\Sigma_r + \Sigma_g - 2,\bigl(\Sigma_r \Sigma_g\bigr)^{\tfrac12}\right)
]
计算步骤
1. 准备 N_real 张真实图 & N_gen 张生成图
2. 用 Inception‑v3(不含最后全连接层)提取 2048 维特征
3. 计算两组特征的均值 μ 与协方差 Σ
4. 按上式求值 → FID (数值越低越好;≤10 通常被认为很高质量)
实践提示
- N ≥ 10 000 时估计更稳定;生成图不足可多次采样。
- 使用与论文一致的 TensorFlow /Inception 权重,否则绝对值可有系统偏移。
小结
- MUSIQ、MANIQA、CLIP‑IQA 都是 单幅无参考 质量评估器,本质是深度学习回归模型,前两者需专门训练,CLIP‑IQA 可以零样本使用。
- FID 则是 分布级 距离指标,需要一批生成图,与真实数据对比,常与 IS、KID 等一起报告。
根据项目目标(评估单张质量还是评估生成模型整体性能)选择合适指标,并保持实现细节(预处理、模型版本)的一致,才能得到可比较的结果。