Text to Image 文本生成图像定量评价指标分析笔记 Metric Value总结 IS、FID、R-prec等

一、介绍

文本生成图像的评估也是一个很有挑战性的工作,一个良好的t2i模型评价指标不仅要评估生成的图像是否真实,而且要评估文本描述与生成图像之间的语义相关性。

度量指标目前常用的有8种,如下表,IS、FID、SceneFID是对图像质量的一个判断,R-prec、VS、SOA、Captioning是对图像和文本的相关性的一个判断:

度量指标图像质量图像多样性图像保真性文本相关性对象符合性数量对齐性稳健性可解释性自动化
IS
FID
SceneFID
R-prec
VS
SOA
Captioning(√)
User Studies

下面将总结几种常用的定量指标,分析其原理、应用和在其上取得的分数排行榜。

二、inception score(IS)

2.1、原理

IS分数用到了KL散度和熵的数学知识,其主要原理在于计算p(y|x)和p(y)之间的散度:

I S = exp ⁡ ( E x K L ( p ( y ∣ x ) ∥ p ( y ) ) \mathrm{IS}=\exp \left(\mathbb{E}_{x} \mathrm{KL}(p(y \mid x) \| p(y))\right. IS=exp(ExKL(p(yx)p(y))

  • 不要被公式吓住,其实很简单,我们先从里面最核心的来看
  1. p ( y ∣ x ) p(y|x) p(yx):其中x表示一个生成的样本,y是预测的标签,简单来说:x 表示模型生成的图片,y 表示这个图片包含的主要物体,条件概率 p ( y ∣ x ) p(y|x) p(yx)代表:给出一个图片,预测图片中包含的物体的概率,也就是有很高的把握对其进行正确分类,概率越大,越容易的知道其中包含什么物体。所以从一定程度上, p ( y ∣ x ) p(y|x) p(yx)代表了图片的质量,概率越高越好。
  2. p ( y ) p(y) p(y):y是预测的标签,p(y)表示边际分布,换句话说就是标签的分布情况,我们希望标签分布均匀,而不希望模型生成的都是某一类图片。这时候我们考虑的不是条件概率了,而是边缘概率p(y)。举个不恰当的例子来说,第一个模型生成出的图像的概率这样:p(喜鹊)=0.98,p(麻雀)=0.01,p(鸽子)=0.01,第二个模型生成图像的概率是p(喜鹊)=0.33,p(麻雀)=0.34,p(鸽子)=0.33。那么我们肯定认为第二个模型生成的多样性更好一点。 p ( y ) p(y) p(y)可以代表模型生成的多样性,我们希望p(y)分布均匀,最好达到p(y1=p(y2)=…=1/n,
  3. 熵的概念:指信息熵,个人理解成混乱程度。当概率小的时候,则不确定性大,熵的值就会越大。我们希望 p ( y ∣ x ) p(y|x) p(yx)概率越高越好,用熵来说,则其熵值越小越好,熵越小,不确定性越小,就能越好的对生成图像进行分类。我们希望各个 p ( y ) p(y) p(y)概率越小越好,用熵来说,则其熵值越大越好,熵越大,不确定性越大(更加混乱),就能生成更多的类别。
  4. KL散度:通过3我们希望p(y|x)的熵越小越好,p(y)的熵越大越好,故此时引入KL散度,KL散度也叫相对熵,表示两者的离散状态,简单来说就是两个概率的信息熵的差值: p ( y ) p(y) p(y)的熵减去 p ( y ∣ x ) p(y|x) p(yx)的熵

综上所述,IS分数越大越好。越大表示散度越大,即两者熵的差值越大。

2.2、复现

IS分数通过使用预先训练好的Inception-v3网络,对生成的图像进行分类来计算。通常由大量样本(通常为30k或50k)的十次分割的平均值和方差(正态分布用)计算得出。

代码:https://github.com/hanzhanggit/StackGAN-inception-model

复现:IS指标复现 文本生成图像IS分数定量实验全流程

2.3、排行榜

在CUB数据集上的IS分数排行(部分):

排名模型IS分数(↑)
1ManiGAN8.47
2RiFeGAN5.23
3DF-GAN4.86
4DM-GAN4.75
5MirrorGAN4.56
6AttnGAN4.36
7StackGAN++4.04
8StackGAN3.70

2.4、不足

IS分数不能检测过度拟合,也不能测量类内变化。因此,如果一个网络能够记住训练集,或者每次只生成一个完美的图像,那么它将获得非常高的成功率

此外,它没有使用真实世界样本的统计数据,并将其与合成样本的统计数据进行比较.而是使用在ImageNet数据集上预训练的分类器,该数据集主要包含以一个对象为中心的图像。因此,它可能不太适合更复杂的数据集。

三、FID(Fréchet Inception Distance )

3.1、原理

FID分数用于根据预训练网络提取的特征,测量真实图像分布和生成图像分布之间的距离。

F I D = ∥ μ r − μ g ∥ 2 2 + Tr ⁡ ( Σ r + Σ g − 2 ( Σ r Σ g ) 1 / 2 ) \mathrm{FID}=\left\|\boldsymbol{\mu}_{r}-\boldsymbol{\mu}_{g}\right\|_{2}^{2}+\operatorname{Tr}\left(\boldsymbol{\Sigma}_{\boldsymbol{r}}+\boldsymbol{\Sigma}_{g}-2\left(\boldsymbol{\Sigma}_{\boldsymbol{r}} \boldsymbol{\Sigma}_{g}\right)^{1 / 2}\right) FID=μrμg22+Tr(Σr+Σg2(ΣrΣg)1/2)

  1. 物理意义:真实图像在空间中是服从一个分布的(假设为正态分布),而GAN生成的特征也是一个分布,GAN做的事情就是不断训练使这两个分布尽可能的相同。FID就是计算这两个分布直接的距离,使用的距离算法叫做Frechet distance。(比较好的还有Wasserstein-2 distance)
  2. 假设你有基础的统计学知识,很简单就能明白两个正态分布只要均值和方差相同,则两个分布相同。而我们这里的图像是多维的分布,所以使用协方差矩阵衡量单个分布里两个维度之间的相关性,FID正是用均值和协方差矩阵来计算两个分布之间的距离
  3. 上式由两个部分组成,r表示真实图像,g表示生成图像。第一部分中μ 表示分布的均值,第一部分为两个均值 μ 的差的平方。
  4. 第二部分中,Σ表示协方差,Tr表示迹(矩阵对角线上的元素和),第二部分为协方差矩阵的和减去根号下协方差矩阵的乘积的迹。

FID计算两个分布之间的距离,距离越小代表生成的分布越贴近于真实分布,故FID越小越好。

3.2、复现

与IS类似,计算FID中我们也同样使用inception network网络,由30k或50k的真实和生成的图像样本计算,使用预先训练的Inception-v3模型的最后一个池化层的激活来获得视觉特征。

代码:https://github.com/mseitzer/pytorch-fid

复现:FID指标复现踩坑避坑 文本生成图像FID定量实验全流程

3.3、排行榜

在COCO数据集上的FID分数排行(部分):

排名模型FID分数(↓)
1Lafite8.12
2OFA10.5
3LightweightManiGAN12.39
4OP-GAN24.70
5ManiGAN25.08
6AttnGAN+VICTR29.26
7DMGAN+VICTR32.37
8StackGAN++81.59

3.4、不足

FID的评价指标有很高的偏差,需要相同数量的样本进行公平比较。且其基于特征提取,也就是依赖于某些特征的出现或者不出现,因此无法描述这些特征的空间关系。例如用GAN去生成人脸,如果嘴巴长在眼睛上面,FID可能也会认为它是一张较好地生成结果。

另外其面临着与IS相同的问题,因为它依赖于在ImageNet上预先训练的分类器。不适合在内部差异较大的数据集上使用,无法区分过拟合。

四、R-precision

4.1、原理

R-precision通过对提取的图像和文本特征之间的检索结果进行排序,来衡量文本描述和生成的图像之间的视觉语义相似性。除了生成图像的真实文本描述外,还从数据集中随机抽取其他文本。然后,计算图像特征和每个文本描述的text embedding之间的余弦相似性,并按相似性递减的顺序对文本描述进行排序。如果生成图像的真实文本描述排在前r个内,则相关。

简单举个例子:假设r为3,有一百个文本,其中包括一个真实对应的文本和99个随机取出来的文本,将他们转为text embedding,然后分别与生成的图像计算余弦相似度,然后排序,如果真实文本生成的embedding排在前3位,则认为该图像与文本有相关性。

R-precision表示的是排序后真实文本出现在前r个的概率,越大说明图像与真实文本描述越相关,R-precision越大越好

4.2、复现

Github:https://github.com/maincarry/R-Precision
复现:R分数指标复现踩坑避坑 文本生成图像R_Precision定量实验全流程

4.3、排行榜

在CUB数据集上的R分数排行(部分)

排名模型R-prec (↑)
1DMGAN76.58%
2ControllGAN69.33%
3AttnGAN67.82%
4MirrorGAN57.67%

R-precision的测量数据较少,有些数据还有争议,待各位补充。

4.4、不足

R-prec在COCO图像上通常会失败,因为在COCO图像中,可能会将高度相似性分配给提到全局背景色的错误标文本描述或出现在中间的对象。

五、VS相似度(Visual-Semantic Similarity)

5.1、原理

VS相似度通过一个经过训练的视觉语义嵌入模型计算图像和文本之间的距离来衡量合成图像和文本之间的对齐。具体来说,学习两个映射函数,分别将图像和文本映射到公共表示空间。然后通过下面的公式,比较其相似性:

V S = f t ( t ) ⋅ f x ( x ) ∥ f t ( t ) ∥ 2 ⋅ ∥ f x ( x ) ∥ 2 \mathrm{VS}=\frac{f_{t}(t) \cdot f_{x}(x)}{\left\|f_{t}(t)\right\|_{2} \cdot\left\|f_{x}(x)\right\|_{2}} VS=ft(t)2fx(x)2ft(t)fx(x)

  1. f t f_t ft表示的是文本编码器
  2. f x f_x fx表示的是图像编码器
  3. VS计算编码后的文本和图像的余弦值相似度,从而判断文本与图像是否相关。

VS相似度越高越好。VS相似度表示文本与图像的相似程度,越高表示越相似。

5.2、排行榜

在CUB数据集上的VS相似度排行(部分)

排名模型VS相似度 (↑)
1SEGAN30.2
2PPAN29.8±14.6
3StackGAN22.8±16.2
4AttnGAN22.5

VS相似度的测量数据同样较少,且浮动较大。

5.3、不足

VS相似度最大的缺点就是即使对于真实图像,标准偏差也非常高。因此,它不能提供一种非常精确的评估模型性能的方法。其还没有被社区广泛采用,报告的结果也很少。

六、其他

其他定量指标还有:Captioning Metrics、Semantic Object Accuracy (SOA)、LPIPS等等

七、总结

很明显,t2i的评估仍然是一个非常困难的问题。要评价一个好的T2I模型,应该考虑其是否既能生成高质量的图像,又能生成与输入描述一致的图像。

在图像质量方面需要考虑图像:a)高图像保真度和多样性的模型,b)解纠缠表示,c)明确定义的界限,d)对小变换的不变性,e)与人类判断和排序高度一致,f)低样本和计算复杂度…等等

在图像文本对齐方面,由于许多不同的标题可以正确描述描绘复杂场景的图像,暂时没有很好的定量评价标准,很难定义图像与输入描述对齐的确切含义。一个良好的图像文本对齐评估应包括以下指标:a)所提到的物体是否被正确描绘和易于识别 ,b)生成的物体的数量和位置是否与文本相符,c)生成的图像是否能够被文本正确描述,d)是否对输入描述中的微小变化具有鲁棒性(比如更换颜色)…等等

觉得本文不错的话,还请点赞、评论、关注,这将给我带来很大的动力。
有其他疑问请在评论区留言,你提出的问题将对作者和其他人提供很大帮助。

### 文生图模型的美学评测方法与指标 评估文生图模型生成图像的质量通常涉及多个维度,其中包括视觉逼真度、语义一致性以及美学质量。以下是关于文生图模型美学评测的主要方法和指标: #### 1. 主观评价(Human Evaluation) 主观评价是最直接的方式之一,通过让评分者对生成图像进行打分来衡量其美学价值。这种方法可以分为以下几种形式: - **偏好测试**:给定两组或多组图像,评分者选择更喜欢的一组[^2]。 - **单项评分**:评分者基于特定标准(如清晰度、美感、创意等)为单张图像打分。 尽管主观评价能有效捕捉人类审美倾向,但它也存在耗时长、成本高以及结果受个体差异影响较大的缺点。 #### 2. 客观数量化指标 为了弥补主观评价的不足,研究者开发了一系列客观数量化指标用于自动评估生成图像的美学质量。常见的指标包括但不限于以下几个方面: ##### a. Fréchet Inception Distance (FID) FID 是一种广泛使用的生成对抗网络性能评估工具,它可以计算真实数据分布与生成样本之间的距离。虽然 FID 更侧重于整体相似性和多样性而非纯粹的艺术风格匹配程度,但在一定程度上也能间接反映出某些类型的美观特性[^3]。 ##### b. CLIPScore CLIPScore 结合了自然语言处理技术和计算机视觉技术的优势,利用预训练好的对比学习框架(Contrastive Language–Image Pre-training, CLIP),分别提取文本描述特征向量和图片表示空间中的位置关系作为输入参数;最终输出一个介于0到1之间的小数用来表征两者间契合水平——数值越高表明二者越接近理想状态即既忠实还原原始指令又具备良好外观属性。 ##### c. LPIPS (Learned Perceptual Image Patch Similarity) LPIPS 考虑到了人眼感知上的细微差别,在低层次像素级误差基础上融入高层语义信息从而更加贴近实际用户体验效果。因此当应用于艺术创作领域内的作品评判环节时往往表现出色因为它们倾向于奖励那些具有强烈个人特色或者独特表达方式的画面构图而不是单纯追求精确复制原物象外形轮廓而已。 ##### d. AMT (Amazon Mechanical Turk Tests) 有时也会借助众包平台比如 Amazon MTurk 来收集大量匿名用户的反馈意见进而得出统计意义上的结论有关某款产品或服务的整体受欢迎程度如何等等情况下的参考依据之一便是此类在线问卷调查活动所得出来的平均得分状况报告等内容资料来源说明如下所示。 #### 3. 综合考量因素 除了上述提到的一些具体的技术手段之外还需要注意到其他一些可能会影响最后评定结果的因素例如文化背景差异可能导致不同地区人群对于色彩搭配喜好偏向有所不同; 年龄性别职业等因素也可能造成各自偏爱不同类型题材内容的现象发生所以最好能够在设计实验方案之初就充分考虑到这些潜在变量并采取适当措施加以控制以便获得更为可靠稳定的测量值范围区间内合理估计目标群体普遍认可接受的标准阈限设定原则等方面的知识要点归纳总结起来就是一句话概括得好不好看不仅仅取决于算法本身还要考虑使用者的需求特点才行啊朋友们记住了吗哈哈😊 ```python import numpy as np from scipy.spatial.distance import cosine def calculate_fid(real_features, generated_features): mu_real = np.mean(real_features, axis=0) sigma_real = np.cov(real_features, rowvar=False) mu_gen = np.mean(generated_features, axis=0) sigma_gen = np.cov(generated_features, rowvar=False) fid_value = _compute_frechet_distance(mu_real, sigma_real, mu_gen, sigma_gen) return fid_value def _compute_frechet_distance(mu1, sigma1, mu2, sigma2, eps=1e-6): diff = mu1 - mu2 covmean, _ = linalg.sqrtm(sigma1.dot(sigma2), disp=False) if not np.isfinite(covmean).all(): msg = ('fid calculation produces singular product; ' 'adding %s to diagonal of cov estimates') % eps warnings.warn(msg) offset = np.eye(sigma1.shape[0]) * eps covmean = linalg.sqrtm((sigma1 + offset).dot(sigma2 + offset)) tr_covmean = np.trace(covmean) return (diff.dot(diff) + np.trace(sigma1) + np.trace(sigma2) - 2 * tr_covmean) ```
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中杯可乐多加冰

请我喝杯可乐吧,我会多加冰!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值