文章目录
- [1 图生文 (Image-to-Text)](#1 图生文 (Image-to-Text))
-
- [1.1 BLEU:基于准确率,得分越高越好](#1.1 BLEU:基于准确率,得分越高越好)
- [1.2 METEOR:基于准确率和召回率,得分越高越好](#1.2 METEOR:基于准确率和召回率,得分越高越好)
- [1.3 ROUGE:得分越高越好](#1.3 ROUGE:得分越高越好)
- [1.4 CIDEr:得分越高越好](#1.4 CIDEr:得分越高越好)
- [1.5 SPICE:得分越高越好](#1.5 SPICE:得分越高越好)
- [1.6 Human Evaluation](#1.6 Human Evaluation)
- [2 文生图 (Text-to-Image)](#2 文生图 (Text-to-Image))
-
- [2.1 Inception Score (IS):越小越好](#2.1 Inception Score (IS):越小越好)
- [2.2 Fréchet Inception Distance (FID):越小越好](#2.2 Fréchet Inception Distance (FID):越小越好)
- [2.3 SceneFID:越小越好](#2.3 SceneFID:越小越好)
- [2.4 R-precision (RP):越大越好](#2.4 R-precision (RP):越大越好)
- [2.5 VS (Visual-Semantic Similarity):越高大好](#2.5 VS (Visual-Semantic Similarity):越高大好)
- [2.6 Semantic Object Accuracy (SOA):越大越好](#2.6 Semantic Object Accuracy (SOA):越大越好)
- [2.7 CLIPScore:越小越好](#2.7 CLIPScore:越小越好)
- [2.8 Human Studies](#2.8 Human Studies)
- [3 图生图 (Image-to-Image)](#3 图生图 (Image-to-Image))
-
- [3.1 PSNR (Peak Signal-to-Noise Ratio):越大越好](#3.1 PSNR (Peak Signal-to-Noise Ratio):越大越好)
- [3.2 SSIM (Structural Similarity Index):越大越好](#3.2 SSIM (Structural Similarity Index):越大越好)
- [3.3 LPIPS (Learned Perceptual Image Patch Similarity):越小越好](#3.3 LPIPS (Learned Perceptual Image Patch Similarity):越小越好)
- [3.4 Inception Score (IS):越小越好](#3.4 Inception Score (IS):越小越好)
- [3.5 Fréchet Inception Distance (FID):越小越好](#3.5 Fréchet Inception Distance (FID):越小越好)
- [4 图像检索 (Image Retrieval)](#4 图像检索 (Image Retrieval))
- [5 问答任务 (Question Answering)](#5 问答任务 (Question Answering))
-
- [5.1 Simple Accuracy:越大越好](#5.1 Simple Accuracy:越大越好)
- [5.2 Wu-Palmer Similarity (WUPS):越大越好](#5.2 Wu-Palmer Similarity (WUPS):越大越好)
- [5.3 平均归一化Levenshtein Similarity (ANLS):越大越好](#5.3 平均归一化Levenshtein Similarity (ANLS):越大越好)
- [5.4 F1分数 (F1-Score):越大越好](#5.4 F1分数 (F1-Score):越大越好)
- [5.5 BELU、METETOR、ROUGE、CIDEr、SPICE](#5.5 BELU、METETOR、ROUGE、CIDEr、SPICE)
1 图生文 (Image-to-Text)
1.1 BLEU:基于准确率,得分越高越好
参考资料:
BLEU (B iL ingual E valuation Understudy) 是一种评估机器翻译文本的指标,但也可用于评估生成文本的质量,通过比较机器生成的文本和人类生成的参考文本的重叠程度。
BLEU 得分是一个 0 到 1 之间的数字,用于衡量机器翻译文本与一组高质量参考翻译的相似度。0 表示机器翻译的输出与参考翻译没有重叠(低质量),而 1 表示其与参考翻译完全重叠(高质量)。定义如下:
BLEU = ∏ i 4 min ( 1 , exp ( 1 − reference-length output-length ) ) ⏟ brevity penalty ( ∏ i = 1 4 p r e c i s i o n i ) 1 / 4 ⏟ n-gram overlap \text{BLEU} = \underbrace{\vphantom{\prod_i^4}\min\Big(1, \exp\big(1-\frac{\text{reference-length}} {\text{output-length}}\big)\Big)}{\text{brevity penalty}} \underbrace{\Big(\prod{i=1}^{4} precision_i\Big)^{1/4}}_{\text{n-gram overlap}} BLEU=brevity penalty i∏4min(1,exp(1−output-lengthreference-length))n-gram overlap (i=1∏4precisioni)1/4
以及:
p r e c i s i o n i = ∑ snt ∈ Cand-Corpus ∑ i ∈ snt min ( m c a n d i , m r e f i ) w t i = ∑ snt' ∈ Cand-Corpus ∑ i ′ ∈ snt' m c a n d i ′ precision_i = \dfrac{\sum_{\text{snt}\in\text{Cand-Corpus}}\sum_{i\in\text{snt}}\min(m^i_{cand}, m^i_{ref})} {w_t^i = \sum_{\text{snt'}\in\text{Cand-Corpus}}\sum_{i'\in\text{snt'}} m^{i'}_{cand}} precisioni=wti=∑snt'∈Cand-Corpus∑i′∈snt'mcandi′∑snt∈Cand-Corpus∑i∈sntmin(mcandi,mrefi)
其中:
- m c a n d i m_{cand}^i mcandi是匹配参考翻译的候选翻译中 i-gram 的数量
- m r e f i m_{ref}^i mrefi是参考翻译中 i-gram 的数量
- w t i w_t^i wti是候选翻译中 i-gram 的总数
该公式由两部分组成:简短惩罚因子和 n-gram 重叠度。
-
简短惩罚因子
简短惩罚因子惩罚与最接近的参考长度相比过短的生成翻译,且呈指数衰减。简短惩罚因子弥补了 BLEU 得分没有召回率项的缺陷。
-
N 元语法重叠度
n 元语法重叠度计算有多少一元语法、二元语法、三元语法和四元语法 (i=1,...,4) 与参考翻译中 n 元语法对应内容匹配。该项充当精确率指标。1-gram 反映充分性,而较长的 n-gram 反映翻译的流畅性。为避免过度计数,n-gram 数量限制为参考翻译中出现的最大 n-gram 数 ( m r e f n ) (m_{ref}^n) (mrefn)。
1.2 METEOR:基于准确率和召回率,得分越高越好
参考资料:
2004年,卡内基梅隆大学的Lavir提出评价指标中召回率的意义,基于此研究,Banerjee和Lavie(Banerjee and Lavie, 2005)发明了基于单精度的加权调和平均数和单字召回率的METEOR度量方法,目的是解决BLEU标准中的一些固有缺陷。简单说,该指标考虑了基于整个语料库上的准确率和召回率,而最终得出测度。
定义m为hypothesis和reference匹配到的总对数,hypothesis的长度为t,reference的长度为r,那么准确率计算方式为 P = m / t P=m/t P=m/t,召回率计算方式为 R = m / r R=m/r R=m/r,F值的计算方式为:
F m e a n = P ⋅ R α ⋅ P + ( 1 − α ) ⋅ R F_{mean}=\frac{P\cdot R}{\alpha\cdot P +(1-\alpha)\cdot R} Fmean=α⋅P+(1−α)⋅RP⋅R
上式中只利用了单词之间的匹配,为了考虑到词与词之间的顺序,文章引入了fragmentation penalty。如果两句子中,互相匹配的单词都是相邻的,那么它们就定义为同一块(chunk),计算总的块的个数ch。将frag定义为 f r a g = c h / m frag = ch / m frag=ch/m。那么fragmentation penalty定义为:
P e n = γ ∗ f r a g β Pen = \gamma * frag^{\beta} Pen=γ∗fragβ
其中 γ \gamma γ是惩罚力度,是一个超参数,取值范围为 0 ≤ γ ≤ 1 0 \leq \gamma \leq 1 0≤γ≤1。 β \beta β也是一个超参数。最终METEOR计算公式为:
M E T E O R = ( 1 − P e n ) ∗ F m e a n METEOR = (1 - Pen) *F_{mean} METEOR=(1−Pen)∗Fmean
1.3 ROUGE:得分越高越好
参考资料:
ROUGE(Recall-Oriented Understudy for Gisting Evaluation),可以看做是BLEU 的改进版,专注于召回率而非精度。换句话说,它会查看有多少个参考译句中的 n 元词组出现在了输出之中。
假设当前有一句源文s,以及相应的译文参考序列r1,r2,...,rn。机器翻译模型根据源文s生成了一个生成序列x,且W为根据候选序列x生成的N元单词组合,则ROUGE算法的计算方式为:
ROUGE-N ( x ) = ∑ k = 1 n ∑ w ∈ W min ( c w ( x ) , c w ( r k ) ) ∑ k = 1 n ∑ w ∈ W c w ( r k ) \text{ROUGE-N}(x) = \frac{\sum_{k=1}^n \sum_{w \in W} \text{min}(c_w(x), c_w(r_k))}{\sum_{k=1}^n \sum_{w \in W} c_w(r_k)} ROUGE-N(x)=∑k=1n∑w∈Wcw(rk)∑k=1n∑w∈Wmin(cw(x),cw(rk))
其中, c w ( x ) c_w(x) cw(x)为N元组合词w在生成序列x中出现的次数, c w ( r k ) c_w(r_k) cw(rk)为N元组合词w在参考序列 r k r_k rk中出现的次数。
从公式可以看到,ROUGE算法能比较好地计算参考序列中的字词是否在生成序列出现过,但没有关注生成序列的字词是否在参考序列中出现过,即ROUGE算法只关心生成序列的召回率,而不关心准确率。
1.4 CIDEr:得分越高越好
参考资料:
- Paper:https://arxiv.org/pdf/1411.5726.pdf
- 用于图像描述的评价指标CIDEr讲解
- Image captioning评价方法之CIDEr
- Image Caption 常用评价指标
CIDEr(Consensus-based Image Description Evaluation)专门为图像描述任务设计,CIDEr更接近人类去判断两个句子是否相近的原理,因为它利用了TF-IDF来对不同n-gram去赋予不同的权重,直观的来说,即经常出现的词组的权重具有更低的权重,而不常出现的词组则更特殊(具有更大的权重),人们会更注意这些特殊的单词。
- TF-IDF(Term Frequency Inverse Document Frequency) :给不同的n-gram赋予权重
g k ( s i j ) = h k ( s i j ) ∑ ω l ∈ Ω h l ( s i j ) l o g ( ∣ I ∣ ∑ I p ∈ I m i n ( 1 , ∑ q h k ( s p q ) ) ) g_k(s_{ij})=\frac{h_k(s_{ij})}{\sum_{\omega_l\in{\Omega}} h_l(s_{ij})}log(\frac{|I|}{\sum_{I_p\in I}min(1, \sum_q h_k(s_{pq}))}) gk(sij)=∑ωl∈Ωhl(sij)hk(sij)log(∑Ip∈Imin(1,∑qhk(spq))∣I∣)- h k ( s i j ) h_k(s_{ij}) hk(sij):表示一个n元组 w k w_k wk出现在某一个reference sentence s i j s_{ij} sij中的次数
- h k ( c i ) h_k(c_i) hk(ci):表示该n元组出现在candidate sentence c i c_i ci的次数
- Ω \Omega Ω:表示所有的n元组的个数
- I I I:表示所有的图片个数
- C I D E r n CIDEr_n CIDErn: 则是用来计算candidate sentence和reference sentences在n长度的元组表示时的相似度,用公式表示为:
C I D E r n ( c i , S i ) = 1 m ∑ j g n ( c i ) ⋅ g n ( s i j ) ∣ ∣ g n ( c i ) ∣ ∣ ⋅ ∣ ∣ g n ( s i j ) ∣ ∣ CIDEr_n(c_i, S_i)=\frac{1}{m}\sum_j\frac{\textbf{g}^n(c_i)\cdot \textbf{g}^n(s_{ij})}{||\textbf{g}^n(c_i)||\cdot ||\textbf{g}^n(s_{ij})||} CIDErn(ci,Si)=m1j∑∣∣gn(ci)∣∣⋅∣∣gn(sij)∣∣gn(ci)⋅gn(sij)- g n ( c i ) \textbf{g}^n(c_i) gn(ci):由n-gram取长度n时 g k ( c i ) g_k(c_i) gk(ci)组成的向量
- ∣ ∣ g n ( c i ) ∣ ∣ ||\textbf{g}^n(c_i)|| ∣∣gn(ci)∣∣:表示该向量的模
- ∣ ∣ g n ( s i j ) ∣ ∣ ||\textbf{g}^n(s_{ij})|| ∣∣gn(sij)∣∣含义类似
- m m m:为对应图片 I i I_i Ii有多少个reference sentences
- CIDEr: 最终n变化时,所有的 C I D E r n CIDEr_n CIDErn取平均得到:
C I D E r ( c i , S i ) = ∑ n = 1 N ω n C I D E r n ( c i , S i ) CIDEr(c_i, S_i)=\sum^N_{n=1}\omega_nCIDEr_n(c_i, S_i) CIDEr(ci,Si)=n=1∑NωnCIDErn(ci,Si)
其中 ω n = 1 / N \omega_n=1/N ωn=1/N,文章取N=4。
1.5 SPICE:得分越高越好
参考资料:
SPICE(Semantic Propositional Image Caption Evaluation):基于图的语义表示来编码 caption 中的 objects, attributes 和 relationships。它先将待评价 caption 和参考 captions 用 Probabilistic Context-Free Grammar (PCFG) dependency parser parse 成 syntactic dependencies trees,然后用基于规则的方法把 dependency tree 映射成 scene graphs。最后计算待评价的 caption 中 objects, attributes 和 relationships 的 F-score 值。
1.6 Human Evaluation
人工评估是最直接的方法,通常涉及让人类评判员对生成的文本进行打分。
2 文生图 (Text-to-Image)
文生图(Text-to-Image)大模型的评估指标主要涉及图像质量、图像多样性、图像保真性、文本相关性、对象符合性、数量对齐性、稳健性和可解释性等方面。
2.1 Inception Score (IS):越小越好
参考资料:
Inception Score (IS):衡量生成图像的质量,通过计算生成图像的条件概率分布和边缘概率分布之间的KL散度。
清晰度: 把生成的图片 x 输入 Inception V3 中,将输出 1000 维的向量 y ,向量的每个维度的值对应图片属于某类的概率。对于一个清晰的图片,它属于某一类的概率应该非常大,而属于其它类的概率应该很小(这个假设本身是有问题的,有可能有些图片很清晰,但是具体属于哪个类却是模棱两可的)。用专业术语说, p(y|x) 的熵应该很小(熵代表混乱度,均匀分布的混乱度最大,熵最大)。
多样性: 如果一个模型能生成足够多样的图片,那么它生成的图片在各个类别中的分布应该是平均的,假设生成了 10000 张图片,那么最理想的情况是,1000 类中每类生成了 10 张。转换成术语,就是生成图片在所有类别概率的边缘分布 p(y) 熵很大(均匀分布)。
具体计算时,可以先用生成器生成 N 张图片,然后用以下公式的经验分布来代替:
p ^ ( y ) = 1 N Σ i = 1 N p ( y ∣ x ( i ) ) \hat p(y) = \frac{1}{N}\Sigma_{i=1}^{N}p(y|x^{(i)}) p^(y)=N1Σi=1Np(y∣x(i))
综合上述两个方面,IS公式为:
I S ( G ) = e x p ( E x ∼ p g D K L ( p ( y ∣ x ) ∣ ∣ p ( y ) ) ) IS(G) = exp(E_{x \sim p_g}D_{KL}(p(y|x)||p(y))) IS(G)=exp(Ex∼pgDKL(p(y∣x)∣∣p(y)))
- exp:仅仅是为了好看,没有具体含义。
- x~Pg :表示从生成器中生图片。
- p(y|x) :把生成的图片 x 输入到 Inception V3,得到一个 1000 维的向量 y ,也就是该图片属于各个类别的概率分布。IS 提出者的假设是,对于清晰的生成图片,这个向量的某个维度值格外大,而其余的维度值格外小(也就是概率密度图十分尖)。
- p(y) :N 个生成的图片(N 通常取 5000),每个生成图片都输入到 Inception V3 中,各自得到一个自己的概率分布向量,把这些向量求一个平均,得到生成器生成的图片全体在所有类别上的边缘分布,见公式 (1)。
2.2 Fréchet Inception Distance (FID):越小越好
参考资料:
Fréchet Inception Distance (FID):衡量生成图像和真实图像在特征空间中的分布距离,值越小表示生成图像与真实图像的分布越接近。
说人话:找一个特征提取网络(VGG、Inception v3),分别提取真实图像和生成图像的特征图(一般取分类层前最后一个卷积层的特征),然后再计算这两个feature map之间的距离,公式如下:
d 2 = ∣ ∣ μ 1 − μ 2 ∣ ∣ 2 + T r ( C 1 + C 2 − 2 ∗ ( C 1 ∗ C 2 ) ) d^2 = ||\mu_1 - \mu_2||^2 + Tr(C_1 + C2 -2 * \sqrt(C_1 * C_2)) d2=∣∣μ1−μ2∣∣2+Tr(C1+C2−2∗( C1∗C2))
- 该分数被记为 d 2 d^2 d2,表示它是一个有平方项的距离。
- μ 1 \mu_1 μ1和 μ 2 \mu_2 μ2指的是真实图像和生成图像的特征均值(例如,2,048 维的元素向量,其中每个元素都是在图像中观察到的平均特征)。
- C 1 C_1 C1 和 C 2 C_2 C2 是真实图像的和生成图像的特征向量的协方差矩阵,通常被称为 sigma。
- ∣ ∣ μ 1 − μ 2 ∣ ∣ 2 || \mu_1 - \mu_2 ||^2 ∣∣μ1−μ2∣∣2代表两个平均向量差的平方和。Tr 指的是被称为「迹」的线性代数运算(即方阵主对角线上的元素之和)。
- sqrt 是方阵的平方根,由两个协方差矩阵之间的乘积给出。
2.3 SceneFID:越小越好
参考资料:
SceneFID: 把检测框里裁剪下来后计算FID。
2.4 R-precision (RP):越大越好
参考资料:
R-precision通过对提取的图像和文本特征之间的检索结果进行排序,来衡量文本描述和生成的图像之间的视觉语义相似性 。除了生成图像的真实文本描述外,还从数据集中随机抽取其他文本。然后,计算图像特征和每个文本描述的text embedding之间的余弦相似性,并按相似性递减的顺序对文本描述进行排序。如果生成图像的真实文本描述排在前r个内,则相关。
简单举个例子:假设r为3,有一百个文本,其中包括一个真实对应的文本和99个随机取出来的文本,将他们转为text embedding,然后分别与生成的图像计算余弦相似度,然后排序,如果真实文本生成的embedding排在前3位,则认为该图像与文本有相关性。
R-precision表示的是排序后真实文本出现在前r个的概率,越大说明图像与真实文本描述越相关,R-precision越大越好。
2.5 VS (Visual-Semantic Similarity):越高大好
参考资料:
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)∥2⋅∥fx(x)∥2ft(t)⋅fx(x)
- f t f_t ft:表示的是文本编码器
- f x f_x fx:表示的是图像编码器
- VS计算编码后的文本和图像的余弦值相似度,从而判断文本与图像是否相关。
2.6 Semantic Object Accuracy (SOA):越大越好
参考资料:
Semantic Object Accuracy (SOA)5:衡量生成图像是否包含文本中描述的对象,包括图像间和类间的平均召回率。这种评估方法特别关注生成图像中个别对象的准确性,SOA的核心原理可以概括为以下几个步骤:
- 预训练的对象检测器: SOA使用一个预训练的对象检测器(如YOLOv3)来评估生成的图像。这个检测器能够在图像中识别出特定的对象。
- Image caption的筛选: 从COCO验证集中选取所有明确提及某一主要对象类别(如"人"、"狗"、"汽车"等)的图像标题,并使用这些标题来生成图像。
- 生成图像的评估: 对于每个由文本描述生成的图像,使用预训练的对象检测器检查是否能够识别出标题中明确提到的对象。例如,如果文本标题是"一辆汽车在街上行驶",那么生成的图像应该包含一辆汽车,并且对象检测器应该能够识别出这辆汽车。
- 召回率的计算:
-
类别平均召回率(SOA-C): 对于COCO数据集中的每个对象类别,计算有多少生成的图像能够检测到该类别的对象。
S O A − C = 1 ∣ C ∣ Σ c ∈ C 1 ∣ I c ∣ Σ i c ∈ I c Y O L O v 3 ( i c ) SOA-C = \frac{1}{|C|}\Sigma_{c \in C} \frac{1}{|I_c|}\Sigma_{i_c \in I_c}YOLOv3(i_c) SOA−C=∣C∣1Σc∈C∣Ic∣1Σic∈IcYOLOv3(ic)
上述公式表示每类图片能被检出的图像数量占总图片数的占比,然后求取所有类别的均值。 -
图像平均召回率(SOA-I): 计算所有生成的图像中,平均有多少图像能够检测到标题中提到的对象。
S O A − I = 1 Σ c ∈ C ∣ I c ∣ Σ c ∈ C Σ i c ∈ I c Y O L O v 3 ( i c ) SOA-I = \frac{1}{\Sigma_{c \in C} |I_c|}\Sigma_{c \in C} \Sigma_{i_c \in I_c} YOLOv3(i_c) SOA−I=Σc∈C∣Ic∣1Σc∈CΣic∈IcYOLOv3(ic)
上述公式表示能被YOLOv3检测出指定目标类别c的图片数量占文本描述中包含该目标的图像数量的比值。
-
2.7 CLIPScore:越小越好
参考资料:
CLIPScore:衡量文本和生成图像的匹配程度。其计算公式如下:
C L I P − S ( c , v ) = w ∗ max ( cos ( c , v ) , 0 ) CLIP-S(c, v) = w * \max(\cos(c, v), 0) CLIP−S(c,v)=w∗max(cos(c,v),0)
- v:生成图像的嵌入image embedding
- c:文本嵌入text embedding
- w:一般设置为2.5
2.8 Human Studies
通过用户调研来评估生成图像的质量和文本相关性,这是最可靠的评估方法,但耗时耗力。
3 图生图 (Image-to-Image)
3.1 PSNR (Peak Signal-to-Noise Ratio):越大越好
PSNR(Peak Signal-to-Noise Ratio,峰值信噪比)是一种常用的评价图像质量的指标,尤其在图像压缩和各种图像处理领域中。它基于MSE(Mean Squared Error,均方误差)计算得出,MSE衡量的是原始图像与失真图像之间的平均误差平方。
PSNR通常表示为分贝(dB),其计算公式如下:
P S N R = 10 ⋅ log 10 ( M A X I 2 M S E ) PSNR = 10 \cdot \log_{10} \left( \frac{MAX_I^2}{MSE} \right) PSNR=10⋅log10(MSEMAXI2)
其中:
- M A X I MAX_I MAXI是图像可能的最大像素值,对于8位图像, M A X I MAX_I MAXI通常是255(因为像素值的范围是0到255)。
- M S E MSE MSE 是原始图像与失真图像之间的均方误差,计算公式如下:
[ MSE = \frac{1}{M \cdot N} \sum_{i=1}^{M} \sum_{j=1}^{N} (I(i, j) - K(i, j))^2 ]
- ( M ) 和 ( N ) 分别是图像的高度和宽度。
- ( I ) 是原始图像。
- ( K ) 是失真或重建的图像。
PSNR的优点是它提供了一个容易理解的度量,因为它是以分贝为单位的。然而,它也有一些局限性,比如它不考虑图像的感知质量,并且在某些情况下可能与人类的视觉感知不完全一致。尽管如此,PSNR仍然是一个广泛使用的评价图像质量的指标。
3.2 SSIM (Structural Similarity Index):越大越好
SSIM(Structural Similarity Index Measure,结构相似性度量)是一种评估两张图像之间视觉相似性的指标。它考虑了图像的亮度、对比度和结构信息,通过这些因素的比较来提供一个数值,该数值越接近1,表示两张图像越相似,图像质量越好;反之,数值越小,表示图像差异越大,图像质量越差。
SSIM的计算公式如下:
S S I M ( x , y ) = ( 2 μ x μ y + C 1 ) ( 2 σ x y + C 2 ) ( μ x 2 + μ y 2 + C 1 ) ( σ x 2 + σ y 2 + C 2 ) SSIM(x, y) = \frac{(2\mu_x\mu_y + C_1)(2\sigma_{xy} + C_2)}{(\mu_x^2 + \mu_y^2 + C_1)(\sigma_x^2 + \sigma_y^2 + C_2)} SSIM(x,y)=(μx2+μy2+C1)(σx2+σy2+C2)(2μxμy+C1)(2σxy+C2)
其中:
- x和y是要比较的两个图像。
- μ x \mu_x μx和 μ y \mu_y μy分别是图像x和y的平均亮度。
- σ x 2 \sigma_x^2 σx2和 σ y 2 \sigma_y^2 σy2分别是图像x和y的亮度方差。
- σ x y \sigma_{xy} σxy是图像x和y的亮度协方差。
- C 1 C_1 C1和 C 2 C_2 C2是小的常数,用来避免分母为零的情况。
SSIM的取值范围是[-1,1 ],但实际应用中通常不会取负值。在图像处理和评估中,我们希望SSIM的值越大越好,因为它表示图像之间的相似度更高,失真更小。在图像压缩、图像增强、图像配准和其他图像处理任务中,SSIM是一个常用的性能评价指标。
3.3 LPIPS (Learned Perceptual Image Patch Similarity):越小越好
参考资料:
- 项目主页:https://richzhang.github.io/PerceptualSimilarity/
- 论文地址:https://arxiv.org/abs/1801.03924
- 开源代码:https://github.com/richzhang/PerceptualSimilarity
- 有真实参照的图像质量的客观评估指标:SSIM、PSNR和LPIPS
即Learned Perceptual Image Patch Similarity,是一种衡量图像相似性的指标,它基于深度学习模型来评估图像之间的感知差异。LPIPS的核心思想是利用训练有素的卷积神经网络(CNN)来捕捉人类视觉系统对图像质量的感知。
LPIPS的工作原理如下:
- **特征提取:**首先,使用一个预训练的卷积神经网络(如VGG)从输入图像中提取特征。通常,会选择网络中间几层的输出作为特征表示。
- 特征归一化: 将提取的深层特征进行归一化处理,以消除不同尺度的影响。归一化通常是L2归一化,即每个维度的值都除以其L2范数。
- 线性投影: 将归一化后的特征通过一个全连接层(或线性层)进行投影,这个全连接层是LPIPS特有的,不是预训练CNN的一部分。这个线性层是训练得到的,目的是学习一个感知损失函数,它能够模拟人类对图像差异的感知。
- LPIPS计算: 对于两个图像 I 1 I_1 I1和 I 2 I_2 I2,它们的特征表示分别为 F 1 F_1 F1和 F 2 F_2 F2,LPIPS的计算公式可以表示为:
L P I P S ( I 1 , I 2 ) = d ( P ( F 1 ) , P ( F 2 ) ) LPIPS(I_1, I_2) = d(P(F_1), P(F_2)) LPIPS(I1,I2)=d(P(F1),P(F2))
其中d为距离函数,通常为欧几里得距离。
LPIPS的优点在于它能够更准确地模拟人类对图像质量的感知,尤其是在图像的细节、纹理和结构方面。这使得LPIPS在图像超分辨率、图像风格转换、图像修复等任务中,成为一种非常有用的评估工具。
LPIPS的值越小,表示图像之间的感知差异越小,即图像越相似。因此,在评估图像质量时,我们希望LPIPS的值尽可能地小。
3.4 Inception Score (IS):越小越好
见章节[2.1 Inception Score (IS):越小越好](#2.1 Inception Score (IS):越小越好)
3.5 Fréchet Inception Distance (FID):越小越好
见章节[2.2Fréchet Inception Distance (FID):越小越好](#2.2Fréchet Inception Distance (FID):越小越好)
4 图像检索 (Image Retrieval)
- 查准率(Precision): P = T P T P + F P P = \frac{TP}{TP + FP} P=TP+FPTP
- 查全率(Recall): R = T P T P + F N R = \frac{TP}{TP + FN} R=TP+FNTP
- F-Score: F β = ( 1 + β 2 ) ⋅ P ⋅ R β 2 ⋅ P + R F_\beta = \frac{(1 + \beta^2) \cdot P \cdot R}{\beta^2 \cdot P + R} Fβ=β2⋅P+R(1+β2)⋅P⋅R
其中,β是一个用于调节查准率和查全率之间权重的系数。当β=1时,称为F1分数。 - 平均精度(Average Precision,AP): A P = ∑ k = 1 K P @ k ⋅ d e l t a ( k ) AP = \sum_{k=1}^{K} P@k \cdot delta(k) AP=∑k=1KP@k⋅delta(k)
其中,P@k表示在前k个检索结果中正样本的比例,δ(k)是一个指示函数,当检索结果中第k个是正样本时,δ(k)=1,否则为0。 - 平均检索精度(Mean Average Precision,mAP): m A P = 1 N ∑ i = 1 N mAP = \frac{1}{N} \sum_{i=1}^{N} mAP=N1∑i=1N
其中,N是查询的总数,AP_i是第i个查询的平均精度。
5 问答任务 (Question Answering)
参考资料:
问答(QA)和视觉问答(VQA)大模型的评估指标主要用于衡量模型在理解问题、检索信息、生成答案等方面的性能。
5.1 Simple Accuracy:越大越好
精确匹配率,即模型答案与参考答案完全一致的比例。
这种简单的精度度量有其局限性,因为它需要精确匹配。考虑一下关于图像的问题,"图像中出现了什么水果?"',算法输出' apple ',但正确的标签是' apples ',它被认为是错误的,当系统输出' mango '时,它也同样被认为是错误的。
A c c u r a c y = 精确回答正确的数量 总问题数 Accuracy = \frac{精确回答正确的数量}{总问题数} Accuracy=总问题数精确回答正确的数量
5.2 Wu-Palmer Similarity (WUPS):越大越好
该指标旨在评估算法预测的答案与数据集中可用的ground truth答案之间的差异,这取决于它们语义内涵的差异。基于它们之间的相似性,WUPS将根据数据集中的ground truth答案和算法对问题的预测答案在0到1之间分配值。例如,apple和apples的相似度为0.98,而apple和fruit的相似度为0.86。
W u − P a l m e r = 2 ∗ d e p t h ( L C S ( s 1 , s 2 ) ) d e p t h ( s 1 ) + d e p t h ( s 2 ) Wu-Palmer = 2 * \frac{depth(LCS(s1, s2))}{depth(s1) + depth(s2)} Wu−Palmer=2∗depth(s1)+depth(s2)depth(LCS(s1,s2))
它通过考虑WordNet分类法中两个同义集的深度以及LCS(Least Common Subsumer)的深度来计算相关性。分数可以为0 <分数<=1。分数永远不会为零,因为LCS的深度永远不会为零(分类根的深度为1)。它根据单词含义的相似程度以及上位词树中同义词集相对于彼此出现的位置来计算相似度。
5.3 平均归一化Levenshtein Similarity (ANLS):越大越好
A N L S = 1 N ∑ i = 1 N L e v e n s h t e i n ( a i , p i ) max ( L e n g t h ( a i ) , L e n g t h ( p i ) ) ANLS = \frac{1}{N} \sum_{i=1}^{N} \frac{Levenshtein(a_i, p_i)}{\max(Length(a_i), Length(p_i))} ANLS=N1i=1∑Nmax(Length(ai),Length(pi))Levenshtein(ai,pi)
其中, L e v e n s h t e i n ( a i , p i ) Levenshtein(a_i, p_i) Levenshtein(ai,pi)计算的是答案 a i a_i ai和 p i p_i pi之间的Levenshtein距离, L e n g t h ( a i ) Length(a_i) Length(ai)和 L e n g t h ( p i ) Length(p_i) Length(pi)分别是 a i a_i ai和 p i p_i pi的长度。
5.4 F1分数 (F1-Score):越大越好
F 1 = 2 × Precision × Recall Precision + Recall F_1 = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} F1=2×Precision+RecallPrecision×Recall
5.5 BELU、METETOR、ROUGE、CIDEr、SPICE
参考第一章节:[1 图生文 (Image-to-Text)](#1 图生文 (Image-to-Text))。