图像评价指标——PSNR、SSIM、FID、KID

概念

PSNR

PSNR 叫 峰值信噪比,与均方误差MSE 和最大像素值MAX有关。
在这里插入图片描述

SSIM

SSIM 是结构相似性,比较亮度、对比度和结构三个指标。
在这里插入图片描述

FID

fid是一个非常常用的评估图像生成质量的指标。
fid是一种度量两个图片数据集相似度的方法,我们生成的图片与真实图片越相似越好,FID值越小越好。

KID

KID来自于论文 《Demystifying MMD GANs》,是一种和FID十分相似的GAN生成质量度量指标,可以评估GAN的收敛程度。

使用方法

PSNR

# im1 和 im2 都为灰度图像,uint8 类型

# method 1
diff = im1 - im2
mse = np.mean(np.square(diff))
psnr = 10 * np.log10(255 * 255 / mse)

# method 2
psnr = skimage.measure.compare_psnr(im1, im2, 255)

SSIM

# im1 和 im2 都为灰度图像,uint8 类型
ssim = skimage.measure.compare_ssim(im1, im2, data_range=255)

FID

pip install torch-fidelity

#FID
fidelity --gpu 0 --fid --input1 img_dir1/ --input2 img_dir2/

KID

#method 1
n = real_features.shape[1]
    m = min(min(real_features.shape[0], gen_features.shape[0]), max_subset_size)
    t = 0
    for _subset_idx in range(num_subsets):
        x = gen_features[np.random.choice(gen_features.shape[0], m, replace=False)]
        y = real_features[np.random.choice(real_features.shape[0], m, replace=False)]
        a = (x @ x.T / n + 1) ** 3 + (y @ y.T / n + 1) ** 3
        b = (x @ y.T / n + 1) ** 3
        t += (a.sum() - np.diag(a).sum()) / (m - 1) - b.sum() * 2 / m
    kid = t / num_subsets / m

#method 2

#KID
fidelity --gpu 0 --kid --input1 img_dir1/ --input2 img_dir2/

参考链接:

  • https://www.codenong.com/cs109682095/
  • https://blog.csdn.net/artistkeepmonkey/article/details/119727935
  • https://blog.csdn.net/weixin_42976407/article/details/124508652

你可能感兴趣的:(智能前沿,python,图像生成,评价指标,PSNR,SSIM)