GAN评价指标代码(FID、LPIPS、MS-SSIM

  • 写在前面
    • FID
    • LPIPS
    • MS-SSIM
  • 写在后面

写在前面

科研需要,对GAN生成的图片要做定量评价,因此总结一些自己要用到的一些评价指标。

FID

官方链接:https://github.com/mseitzer/pytorch-fid

描述:FID越小,表示生成图片越多样、质量越好。

步骤:
(1)先下载pytorch-fid

pip install pytorch-fid

(2)执行命令

python -m pytorch_fid path/dataset1/test/images path/dataset2/test/images

参数:
path/dataset1/test/images是真实图像路径
path/dataset2/test/images是生成图像路径

注意:
有个额外的参数--dims N,其中 N 是特征的维度,一共有64、192、768、2048(默认)这四种,表示的是使用Inception的哪一层去测试,一般默认都是2048即最终平均池化特征去测试。
但是官方说如果测试的样本少于2048个可以用–dims这个参数,但这会改变FID分数的大小,因此只有–dims相同时跑出来的分数才有可比性。
不过我看TensorFlow那边的FID说,建议使用10,000的最小样本量来计算 FID,否则会低估生成器的真实FID。所以如果样本量太少建议不使用FID这个指标。

LPIPS

官方链接:https://github.com/richzhang/PerceptualSimilarity
描述:LPIPS越高意味着图片与原图更多不同,越低意味着与原图更相似

步骤:
(1)下载LPIPS代码
(2)执行命令

python lpips_2dirs.py -d0 imgs/ex_dir0 -d1 imgs/ex_dir1 -o imgs/example_dists.txt --use_gpu

参数:
-d0是真实图像路径
-d1是生成图像路径
-o是输出的结果保存位置

MS-SSIM

链接:https://blog.csdn.net/m0_63642362/article/details/123297405
描述:接近1的值表示更好的图像质量,接近0的值表示较差的质量

代码
把生成图片放在imgs/fake_img路径下,把真实图片放在imgs/real_img路径下,然后运行即可

import os
import cv2
import paddle
from paddle_msssim import ssim, ms_ssimdef file_name(file_dir):img_path_list = []for root, dirs, files in os.walk(file_dir):for file in files:img_path_list.append((os.path.join(root, file),file))return img_path_list
def imread(img_path):img = cv2.imread(img_path)return paddle.to_tensor(img.transpose(2, 0, 1)[None, ...], dtype=paddle.float32)if __name__ == '__main__':file_dir = 'imgs/fake_img'  # 伪造图像路径target_dir = 'imgs/real_img' # 真实图像路径img_path_list = file_name(file_dir)target_path_list = file_name(target_dir)d = 0for i in range(img_path_list.__len__()):(img_path, img_name) = img_path_list[i](target_path, target_name) = target_path_list[i]print(img_path)print(target_path)fake = imread(img_path)real = imread(target_path)distance = ms_ssim(real, fake).cpu().numpy()print(distance)d += distance
print('average ms_ssim')
print(d/img_path_list.__len__())

写在后面

你笑我徒劳,而我一个人在路上,走完的四季,确实你永远体会不到的风景。
-----《愿有人陪你颠沛流离》

GAN评价指标代码(FID、LPIPS、MS-SSIM)相关推荐

  1. 【语义分割】评价指标代码函数:np.sum()、np.nansum()、np.nanmean()、np.diag()、np.bincount()

    引言 本文针对: [语义分割]评价指标:PA.CPA.MPA.IoU.MIoU详细总结和代码实现(零基础从入门到精通系列!)中实现评价指标代码里相关函数进行补充说明,包括:np.sum().np.na ...

  2. 图像增强评价指标学习之——结构相似性SSIM

    SSIM(structural similarity index),结构相似性,是一种衡量两幅图像相似度的指标.该指标首先由德州大学奥斯丁分校的图像和视频工程实验室(Laboratory for Im ...

  3. pytorch训练GAN的代码(基于MNIST数据集)

    论文:Generative Adversarial Networks 作者:Ian J. Goodfellow 年份:2014年 从2020年3月多开始看网络,这是我第一篇看并且可以跑通代码的论文,简 ...

  4. 电荷负载分解(NILM)评价指标代码详解

    有关NILM中的评价指标的解释请看我们另外一篇博文 ,下面简单解释一下代码实现,代码为python版本. import numpy as npdef tp_tn_fp_fn(states_pred, ...

  5. plt生成固定的colormap_白话生成对抗网络GAN及代码实现

    本文主要是个简单的笔记,参考资料来自下面三部分 Tutorial_HYLee_GAN Renu Khandelwal 的博客 Jason 的博客 神经网络一览 各种神经网络(全连接前向网络.卷积神经网 ...

  6. 显著性检测的评价指标代码

    包括MAE.Pre.Rec.F-measure.Auc.CC.Nss MAE: 平均绝对误差MAE(mean absolute error),范围[0,+∞),当预测值与真实值完全吻合时等于0,即完美 ...

  7. deeplabv3+ 论文相关参数 代码解析 Flip MS SC random crop

    目录 1.Flip 2. multi_scale input eval 3.SC 在aspp与deconv采用seperate conv multi_scale 的参数传递是: 另外,如果batch ...

  8. 图像质量评价指标FID、LPIPS、NIQE及其代码

    文章目录 FID LPIPS NIQE FID FID的全称是Fréchet Inception Distance,用于衡量两个多元正态分布的距离,数值越小越好.具体的,FID使用Inception ...

  9. 生成对抗网络GAN论文总结+复现代码(已完成27篇,未完待续。。。)

    GAN论文学习心得 写在前面 (GAN)Generative Adversarial Networks (CGAN)Conditional Generative Adversarial Nets (D ...

  10. gan怎么输入一维数据_GAN评价指标最全汇总

    本文首发于微信公众号:有三AI 作者:小米粥 最近一部分的内容将会比较容易,将和大家一起讨论GAN的评价指标.在判别模型中,训练完成的模型要在测试集上进行测试,然后使用一个可以量化的指标来表明模型训练 ...

最新文章

  1. Python 元组的使用
  2. 电视盒子root_电视盒子 免root 去广告换桌面,20分钟还原干净清爽的桌面
  3. 注定不平凡的2020年
  4. netty系列之:使用netty搭建websocket服务器
  5. Windows 2008 R2安装DHCP服务器问题及解决方法
  6. FPGA时钟激励编写(方法二)
  7. java bufferedrandomaccessfile_java 读写操作大文件 BufferedReader和RandomAccessFile
  8. 远程命令,代码执行漏洞原理
  9. python 读取xlsx特定页_python 读取 Excel
  10. shell学习教程(超详细完整)
  11. EXCEL无法插入公式
  12. MYSQL字符串聚合函数
  13. 根据IP获取城市-新浪ip接口
  14. 关于Qt6.2中的所有属性绑定
  15. 360年会三娘逆袭 女程序员戴假发化妆成-搜狐滚动
  16. 红旗linux镜像文件iso,红旗Linux11下载-红旗Linux国产操作系统11ISO 社区预览版下载...
  17. android 手机屏幕密度等级和屏幕逻辑尺寸
  18. AES加密算法在Java中的应用
  19. 计算机网络数据通信论文,浅谈计算机网络与数据通信的发展
  20. EGL和OpenGL简介

热门文章

  1. 服务器系统怎么添加网络打印机,如何添加网络打印机
  2. ORACLE11gR2安装XDB
  3. 2019蓝桥杯 - 迷宫
  4. 计算机毕业论文初稿,毕业论文初稿一般写多久
  5. python的power,Python numpy.power()函数使用说明
  6. 输入qq号强制进空间_终于能改QQ号了?!快来设置
  7. 万用表测占空比怎么接_万用表的占空比是什么意思?
  8. 如何用ps修改图片的大小不变形
  9. 虚拟签到拍照打卡技巧,超实在的教程
  10. PC-DMIS 圆(环)型平面自动测量子程序