PSNR 峰值信噪比(越大越好)
psnr一般是用于最大值信号和背景噪音之间的一个工程项目。通常在经过影像压缩之后,通常输 出的影像都会在某种程度与原始影像不同。为了衡量经过处理后的影像品质,我们通常会参考PSNR值来衡量某个处理程序能否令人满意。它的单位是dB。

其中2^n-1为图片可能的最大像素值。如果每个像素都由 8 位二进制来表示,那么就为 255。通常,如果像素值由n位二进制来表示,则为2^n-1
一般地,针对uint8数据,最大像素值为255;针对浮点型数据,最大像素值为1。
上面是针对灰度图像的计算方法,如果是彩色图像,通常有三种方法来计算。
- 分别计算 RGB 三个通道的 PSNR,然后取平均值。
- 计算RGB三通道的 MSE ,然后再除以 3 。
- 将图片转化为YCbCr格式,然后只计算 Y 分量也就是亮度分量的PSNR。
SSIM 结构相似性(越大越好)
是一种全参考的图像质量评价指标,它分别从亮度、对比度、结构三方面度量图像相似性。SSIM取值范围[0,1],值越大,表示图像失真越小。

在实际应用中,可以利用滑动窗将图像分块,令分块总数为N,考虑到窗口形状对分块的影响,采用高斯加权计算每一窗口的均值、方差以及协方差,然后计算对应块的结构相似度SSIM,最后将平均值作为两图像的结构相似性度量,即平均结构相似性MSSIM:

Perceptual Path Length
为了能得出更符合人类感官的图像,引入了感知路径距离的概念。在GAN网络空间中,z1的白狗和z2的黑狗应该距离比较短,也就是较少的参数移动就可以从白狗变成黑狗,而如果在路径上出现了卧室照片,则说明GAN网络质量不够好。于是可以用曲线积分的方法来优化GAN网络。

LPIPS(Learned Perceptual Image Patch Similarity) 图像感知相似度也称为“感知损失”(越小越好)
LPIPS 比传统方法(比如L2/PSNR, SSIM, FSIM)更符合人类的感知情况。LPIPS的值越低表示两张图像越相似,反之,则差异越大。

计算方法:
https://github.com/richzhang/PerceptualSimilarity
inception network
inception network是一个固定的训练好的分类网络,可以对生成的图像进行分类。
IS(inception score)(越大越好)
基本思想:IS用来衡量GAN网络的两个指标:
- 生成图片的质量
- 多样性
描述:计算生成数据上的条件标签分布和边缘标签分布之间KL散度。
假如inception network(通常用分类器Inception Net-V3)能够以较高的概率预测图片中包含的物体,也就是有很高的把握对其进行正确分类,这就说明图片质量较高。

FID(Fréchet Inception Distance)(越小越好)
基本思想:直接考虑生成数据和真实数据在feature层次的距离,不再额外的借助分类器。因此来衡量生成图片和真实图片的距离。
描述:多元高斯拟合和嵌入特征空间的数据之间的Wasserstein-2距离。


较低的FID意味着两个分布之间更接近,也就意味着生成图片的质量较高、多样性较好。FID和IS都是基于特征提取,也就是依赖于某些特征的出现或者不出现。但是他们都无法描述这些特征的空间关系。(假如生成的人脸器官位置错乱,根据FID和IS依然会认为是一张好照片)
KID(Kernel Inception Distance)(越小越好)
描述:使用从每个分布独立抽取的样本来测量两个概率分布Pr和Pg之间的差异。
与FID类似,KID通过计算Inception表征之间最大均值差异的平方来度量两组样本之间的差异。此外,与所说的依赖经验偏差的FID不同,KID有一个三次核的无偏估计值,它更一致地匹配人类的感知。
FID和KID的计算
https://github.com/mseitzer/pytorch-fid
fidelity --gpu 0 --isc --fid --kid --input1 img_path1 --input2 img_path2 --kid-subset-size 50
其中kid-subset-size是kid的核,默认为1000,需要小于样本数量。





