前置笔记
【学习笔记】图像质量评估方法 (2.图像压缩、超分辨率、去噪、修复的评价)
【学习笔记】图像质量评估方法 (3.对拍摄照片做美化、4.生成图像的真实性评价)
5 生成图像是否符合用户要求
本节方法主要用于评价文本到图像生成(Text-to-Image Generation,T2I)的图文一致性(Text-Image Alignment) 。
与之前介绍的 FID、KID、CMMD 不同,它们不只是评价生成图像是否真实,而是重点判断:生成图像是否正确呈现了 Prompt 要求的物体、属性、数量、位置关系和复杂语义。
5.1 R-precision:基于图文检索的匹配评价
核心思想:如果生成图像真正符合对应文本,那么在多个候选文本中,正确文本应该与图像最相似。
R-precision 原本是信息检索指标,2018 年的 AttnGAN 将它用于文本到图像生成评价。
如何计算?
假设模型根据文本 T + T^+ T+生成图片 I I I。然后准备一组候选文本:
T = { T + , T 1 − , ⋯ , T K − } \mathcal{T}=\{T^+,T_1^-,\cdots,T_{K}^-\} T={T+,T1−,⋯,TK−}
其中包含1 条正确描述和K条不匹配的干扰描述。将图片和文本分别映射到特征空间:
v = f image ( I ) , t j = f text ( T j ) v=f_\text{image}(I),\ t_j=f_\text{text}(T_j) v=fimage(I), tj=ftext(Tj)
计算余弦相似度:
s ( I , T j ) = v ⊤ t j ∥ v ∥ ∥ t j ∥ s(I,T_j)=\frac{v^\top t_j}{\|v\|\|t_j\|} s(I,Tj)=∥v∥∥tj∥v⊤tj
然后根据相似度排序,观察正确描述是否排在第一位。当只有一个正确描述时:
R @ 1 = 1 N ∑ i = 1 N 1 rank ( T i + ) = 1 R@1=\frac{1}{N}\sum_{i=1}^N\mathbf{1}\\text{rank}(T_i\^+)=1 R@1=N1i=1∑N1rank(Ti+)=1
例如评估 100 张生成图片,其中 82 张图片的正确文本排名第一,则 R @ 1 = 0.82 R@1=0.82 R@1=0.82。
结果:越高越好。
局限性: 评分依赖候选文本集合的难度。如果干扰文本差异很大,即使图像存在属性错误,正确文本仍可能排名第一。
5.2 CLIP相似度:图文语义空间的一致性
核心思想:使用 CLIP 将图片和文本映射到同一个语义空间,直接计算两者的相似程度。
提取图像与文本特征
对生成图像 I I I和输入文本 T T T,分别进行编码:
v = f CLIP img ( I ) , t = f CLIP text ( T ) v=f_\text{CLIP}^\text{img}(I),\ t=f_\text{CLIP}^\text{text}(T) v=fCLIPimg(I), t=fCLIPtext(T)
计算余弦相似度:
S CLIP ( I , T ) = v ⊤ t ∥ v ∥ 2 ∥ t ∥ 2 S_\text{CLIP}(I,T)=\frac{v^\top t}{\|v\|_2\|t\|_2} SCLIP(I,T)=∥v∥2∥t∥2v⊤t
两者越相似,通常表示图像与文本在 CLIP 特征空间中越接近。
实际也经常使用 CLIPScore 的形式:
CLIPScore = 2.5 max ( S CLIP , 0 ) \text{CLIPScore}=2.5\max(S_\text{CLIP},0) CLIPScore=2.5max(SCLIP,0)
局限性
假设 Prompt 是:A red cat beside a blue dog.
模型生成:A blue cat beside a red dog.
图片中仍然包含:猫、狗、红色、蓝色,因此图文整体特征可能仍然非常接近。但实际上,颜色与物体的绑定关系完全错误。
这种现象反映了 CLIP 相似度的主要问题:
它善于判断整体语义相关性,但对属性绑定、精确数量、空间关系和否定条件等细节可能不够敏感。
结果:越高越好,但不是严格校准的 Prompt 满足概率。
5.3 TIFA:使用视觉问答验证具体事实
TIFA(Text-to-Image Faithfulness Evaluation with Question Answering)发表于 ICCV 2023。
核心思想:将复杂 Prompt 拆解成多个可以验证的问题,再通过视觉问答模型检查生成图像是否满足这些要求。
将 Prompt 转换成问题
例如 Prompt:A red cat sitting on a chair, with two apples on the table.
首先使用语言模型生成问题及标准答案:
| 问题 | 期望答案 |
|---|---|
| What animal is present? | Cat |
| What color is the cat? | Red |
| Is the cat sitting on a chair? | Yes |
| How many apples are on the table? | Two |
使用 VQA 模型检查图像
对于生成图像 I I I,将每个问题输入视觉问答模型:
a ^ i = f VQA ( I , q i ) \hat{a}i=f\text{VQA}(I,q_i) a^i=fVQA(I,qi)
其中 q i q_i qi为第 i i i个问题, a i a_i ai是根据 Prompt 得到的标准答案, a ^ i \hat{a}_i a^i是VQA 模型根据图像预测的答案。
最终使用答案准确率作为评分:
S TIFA = 1 N ∑ i = 1 N 1 a \^ i = a i S_\text{TIFA}=\frac{1}{N}\sum_{i=1}^N\mathbf{1}\\hat{a}_i=a_i STIFA=N1i=1∑N1a\^i=ai
主要特点
相比 CLIP 相似度,TIFA 能够明确指出图片在哪里不符合 Prompt。这使它具有较好的可解释性。
不过,TIFA 的准确性取决于问题生成和 VQA 模型的能力;如果视觉问答模型把苹果数错了,最后也会产生错误评价。
5.4 T2I-CompBench:组合语义能力评价
T2I-CompBench 是 NeurIPS 2023 提出的组合式文本到图像生成评测基准。
核心思想:专门评价生成模型是否能够正确组合多个物体、属性及关系。
它包含 6,000 条组合式 Prompt,覆盖六个细分类别。
| 类别 | 评价内容 |
|---|---|
| Color Binding | 颜色是否绑定正确 |
| Shape Binding | 形状是否绑定正确 |
| Texture Binding | 纹理是否绑定正确 |
| Spatial Relationships | 左、右、上、下等空间关系 |
| Non-Spatial Relationships | 动作、交互等非空间关系 |
| Complex Compositions | 多种属性和关系的复杂组合 |
这里需要注意:T2I-CompBench 是一个 Benchmark,并不是所有任务都使用同一个评分公式。
属性绑定:使用 BLIP-VQA
例如:A green bench and a red car.
拆解为两个独立问题:是否存在绿色长椅?是否存在红色汽车?
使用 BLIP-VQA 估计两个问题回答 Yes 的概率:
p 1 = P ( Yes ∣ I , q 1 ) , p 2 = P ( Yes ∣ I , q 2 ) p_1=P(\text{Yes}|I,q_1),\ p_2=P(\text{Yes}|I,q_2) p1=P(Yes∣I,q1), p2=P(Yes∣I,q2)
然后得到: S binding = 0.36 S_\text{binding}=0.36 Sbinding=0.36
即使其中一个属性符合要求,只要另一项匹配度较低,总分也会明显下降。
空间关系:使用目标检测
例如:A cat to the left of a dog.
使用 UniDet 检测两个物体的 Bounding Box,得到中心坐标:
c cat = ( x c , y c ) , c dog = ( x d , y d ) c_\text{cat}=(x_c,y_c),\ c_\text{dog}=(x_d,y_d) ccat=(xc,yc), cdog=(xd,yd)
对于"猫位于狗左边",一个基本判断条件是: x c < x d x_c<x_d xc<xd
原方法还考虑水平位移是否大于垂直位移,以及两个检测框是否存在明显重叠,以提高判定的可靠性。
复杂组合评价
原论文针对复杂 Prompt 设计了 3-in-1 评价,将三种指标结合:
S complex = S CLIP + S BLIP-VQA + S UniDet 3 S_\text{complex}=\frac{S_\text{CLIP}+S_\text{BLIP-VQA}+S_\text{UniDet}}{3} Scomplex=3SCLIP+SBLIP-VQA+SUniDet
其中三项分别关注整体语义、属性绑定和空间关系。这是对原论文三类指标组合思想的表达,具体实现需要遵循相应的评分规则与尺度。
结果:各项指标一般越高越好。
T2I-CompBench 的优势是可以单独比较生成模型的各种组合能力,而不仅仅给出一个总体图文相似度。
5.5 GenEval:基于目标检测的组合生成评估
核心思想:使用目标检测和分割模型,直接检查图片是否满足一系列可明确验证的物体条件。
与 T2I-CompBench 相比,GenEval 更强调利用物体检测结果,对结构化 Prompt 进行相对明确的正确性判定。
检测图像中的物体
例如 Prompt:Two red cars and one blue bicycle.
使用目标检测模型:
D ( I ) = { ( b i , c i , m ) } i = 1 N D(I)=\{(b_i,c_i,m_)\}_{i=1}^N D(I)={(bi,ci,m)}i=1N
其中, b i b_i bi为目标的 Bounding Box, c i c_i ci为目标类别, m i m_i mi为目标分割 Mask。
然后依次检查:是否检测到汽车?汽车数量是否为 2?汽车颜色是否正确?是否有一辆自行车?自行车颜色是否为蓝色?
使用明确规则判断
例如数量检测可以写成 S count = 1 N car = 2 S_\text{count}=\textbf{1}N_\\text{car}=2 Scount=1Ncar=2;
颜色检测: S color = 1 c \^ car = red S_\text{color}=\textbf{1}\\hat{c}_\\text{car}=\\text{red} Scolor=1c\^car=red;
空间关系可以根据检测框中心计算: S position = 1 x A \< x B S_\text{position}=\textbf{1}x_A\
实际 GenEval 还会考虑检测置信度、分割 Mask 以及目标与属性之间的对应关系。
最终评分
对一个 Prompt,可以把不同条件组合起来:
S ( I , T ) = ∏ j = 1 K 1 C j ( I ) S(I,T)=\prod_{j=1}^K\textbf{1}C_j(I) S(I,T)=j=1∏K1Cj(I)
其中 C j C_j Cj表示第 j j j项条件成立。该公式反映了 GenEval 常用的严格判定思想:只有规定的条件全部满足,该样本才算成功。
对整个测试集:
S GenEval = 1 N ∑ i = 1 N S ( I i , T i ) S_\text{GenEval}=\frac{1}{N}\sum_{i=1}^N S(I_i,T_i) SGenEval=N1i=1∑NS(Ii,Ti)
官方报告还会提供单物体、双物体、计数、颜色、位置及颜色归属等子类别的结果,并汇总为总体评分。
结果:越高越好。
GenEval 的优势在于规则相对明确、可复现性较好,适合比较生成模型的基础组合能力。但它依赖检测模型的准确性,而且对抽象概念、复杂动作或逻辑推理的覆盖有限。
5.6 VQAScore:通过一次视觉问答直接评分
VQAScore 出自 ECCV 2024 的论文 Evaluating Text-to-Visual Generation with Image-to-Text Generation。
核心思想:不将 Prompt 拆成大量问题,而是直接询问 VQA 模型:这张图像是否完整呈现了给定文本?
构造图像理解问题
假设 Prompt 为:A red cat to the left of a blue dog.
构造问题:Does this image show "A red cat to the left of a blue dog"? Please answer yes or no.
将问题与生成图像一起输入视觉问答模型。
直接计算 Yes 的生成概率
VQAScore 的主要公式非常简单:
S VQA = P θ ( Yes ∣ I , q ( T ) ) S_\text{VQA}=P_\theta(\text{Yes}|I,q(T)) SVQA=Pθ(Yes∣I,q(T))
其中: I I I为生成图像, T T T为原始 Prompt, q ( T ) q(T) q(T)为根据 Prompt 构造的 Yes/No 问题, P θ P_\theta Pθ为VQA 模型生成 Yes 的条件概率。
这里取的是模型生成 Yes 的概率,不必然等于只对 Yes/No 两个选项重新归一化后的二分类概率。
VQAScore 还提出并使用了适合这一任务的 CLIP-FlanT5 模型,以加强图像和问题之间的交互。
结果:越高越好。
它对复杂 Prompt 的评价能力在论文实验中优于一些传统 CLIP 相似度方法,但最终仍受 VQA 模型理解能力和概率校准情况影响。
5.7 多模态模型评审:基于规则的复杂条件检查
核心思想:将图片、Prompt 和明确评分标准一起交给多模态大模型,让模型逐条检查要求是否满足,并给出评分与证据。
这并不是一个具有统一公式的单一算法,而是一类持续发展的评价框架。
构建明确的评分规则
假设 Prompt 为:A red cat sitting to the left of a blue dog, with exactly two apples on a table.
可以要求评审模型根据以下规则评分:
是否存在猫与狗?猫是否为红色、狗是否为蓝色?猫是否位于狗左边?桌子上是否恰好有两个苹果?
每个问题的分数权重为25%。
让多模态大模型观察图像后,分别输出每项条件的满足程度。可以抽象成:
s i = f θ ( I , T , C i ) s_i=f_\theta(I,T,C_i) si=fθ(I,T,Ci)
其中:
C i C_i Ci为第 (i) 项评分规则, s i s_i si为该规则的满足程度, f θ f_\theta fθ为多模态评审模型。
汇总评分
一种常见的实现方式是使用加权平均:
S MLLM = ∑ i = 1 K w i s i ∑ i = 1 K w i S_\text{MLLM}=\frac{\sum_{i=1}^K w_is_i}{\sum_{i=1}^K w_i} SMLLM=∑i=1Kwi∑i=1Kwisi
其中 w i w_i wi表示每项规则的重要性。
注意,这只是规则化多模态评审的一种通用数学表达,不是所有 MLLM-as-a-Judge 方法共同采用的标准公式。还可以设置硬约束,例如:只要人物数量错误,就直接判定该图像没有完全遵循 Prompt,而不是允许其他条件的高分抵消该错误。
多模态评审的优势
相比前面的方法,它可以尝试判断更加复杂的要求:
- 物体之间的交互关系。
- 多重条件是否同时满足。
- 图像中是否出现了不应存在的元素。
- 是否满足否定条件。
- 复杂的空间和逻辑关系。
- 文本与图像之间是否存在矛盾。
还可以让模型给出每项判断的文字证据,从而提高可解释性。
主要局限
多模态大模型本身可能产生幻觉,或者错误理解细节。
因此,较可靠的实践通常会结合结构化评分规则、图像证据、模型间一致性检查和人工标注校准,而不是完全依赖一句"请给这张图像打分"。