基于SRGAN的图像超分辨率实例

之前自学了有关图像超分辨处理方面的知识,这篇博文参考了这位博主的例子:博客地址,完整地跑了一下代码,记录一下自己的学习过程
工程文件:压缩包链接
提取码:1111

1.建议新建一个专门的环境,之后的各种配置基于此环境(Python版本选择3.6)
在这里插入图片描述

2.安装CUDA
安装之前,我们首先要确定本机是否有独立显卡。以win10为例,在控制面板\系统和安全\系统找到设备管理器下的显示适配器中,查看是否有独立显卡,如下图所示:
在这里插入图片描述

接下来就可以开始安装cuda,打来官网:https://developer.nvidia.com/cuda-toolkit-archive
在这里插入图片描述

由于需要适配Pytorch1.4,因此我们选择CUDA Toolkit 10.1进行下载,并按以下配置下载到本地
在这里插入图片描述

双击安装,可以改变解压目录(路径最好不要有中文名),然后选择默认安装方式即
可。
测试一下cuda是否安装成功。打开cmd命令终端,然后输入命令:nvcc -V
如下图所示,安装成功。
在这里插入图片描述

3.安装cudnn
cudnn官网下载地址:https://developer.nvidia.com/cudnn
单击Download Cudnn,注册账号后才能开始下载,之后选择如下版本:
在这里插入图片描述

按自己系统选择,我的是win10,所以选则如下图:
在这里插入图片描述

下载之后,解压缩,将CUDNN压缩包里面的bin、clude、lib文件直接复制到CUDA的安装目录下(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1),直接覆盖
安装即可完成。
添加系统环境变量到path中:
C:\Program Files\NVIDIA Corporation\NVSMI
然后在Windows PowerShell终端中运行命令,可以查看GPU使用情况:
nvidia-smi
在这里插入图片描述

4.安装pytorch
在anaconda中找到之前新建的环境,以环境名sr为例,打开命令行终端,输入如下指令,开始安装:

在这里插入图片描述

pip install torch===1.4.0 torchvision===0.5.0 -f https://download.pytorch.org/whl/torch_stable.html

后边加阿里云镜像源加速:

-i https://mirrors.aliyun.com/pypi/simple/

在这里插入图片描述

安装完成后,验证是否成功并且能够成功调用cudnn,在该环境下(sr),输入python进入python环境,输入命令,如下图显示版本号即pytorch安装成功:

import torch 
print(torch.__version__)

在这里插入图片描述

接着,验证pytorch调用cuda是否正确,显示为true即调用成功:
在这里插入图片描述

  1. 安装cpu版tensorflow,利用tensorboard可视化运行结果
pip install tensorflow==2.1.0 -i https://mirrors.aliyun.com/pypi/simple/
  1. 安装scikit-image(提供PSNR和SSIM的计算)
pip install scikit-image==0.16.2 -i https://mirrors.aliyun.com/pypi/simple/

至此,项目所需配置基本完成。
7. 下载项目工程文件(COCO2014数据集因为有18个G左右,所以仅给出部分数据)
下载到本地后,打开Pycharm导入工程文件,然后选择新建的python环境即可,如下图所示:
在这里插入图片描述

  1. 项目组织架构

在这里插入图片描述

8.1项目根目录下有8个.py文件和3个文件夹,下面对各个文件和文件夹进行简单说明。

1) create_data_lists.py:生成数据列表,检查数据集中的图像文件尺寸,并将符合的图像文件名写入JSON文件列表供后续Pytorch调用;
2) datasets.py:用于构建数据集加载器,主要沿用Pytorch标准数据加载器格式进行封装;
3) models.py:模型结构文件,存储各个模型的结构定义;
4) utils.py:工具函数文件,所有项目中涉及到的一些自定义函数均放置在该文件中;
5) train_srresnet.py:用于训练SRResNet算法;
6) train_srgan.py:用于训练SRGAN算法;
7) eval.py:用于模型评估,主要以计算测试集的PSNR和SSIM为主;
8) test.py:用于单张样本测试,运用训练好的模型为单张图像进行超分重建;
9) data:用于存放训练和测试数据集以及文件列表;
10) results:用于存放运行结果,包括训练好的模型以及单张样本测试结果;
11) runs: 模型训练过程中的各项指标记录,可以作为数据文件利用tensorboard来查看训练结果,在程序运行的过程中可以再开一个终端运行下述命令:tensorboard --logdir runs,从而打开tensorboard监视器,打开后可以在浏览器中访问:http://localhost:6006/ 来监视训练结果。

8.2整个代码运行顺序如下:
1) 运行create_data_lists.py文件用于为数据集生成文件列表;
2) 运行train_srresnet.py进行SRResNet算法训练,训练结束后在results文件夹中会生成checkpoint_srresnet.pth模型文件;(已经训练完毕可以直接调用)
3) 运行eval.py文件对测试集进行评估,计算每个测试集的平均PSNR、SSIM值;
4) 运行test.py文件对results文件夹下名为test.jpg的图像进行超分还原,还原结果存储在results文件夹下面;
5) 运行train_srgan.py文件进行SRGAN算法训练,训练结束后在results文件夹中会生成checkpoint_srgan.pth模型文件;(已经训练完毕可以直接调用)
6) 修改并运行eval.py文件对测试集进行评估,计算每个测试集的平均PSNR、SSIM值;·
7) 修改并运行test.py文件对results文件夹下名为test.jpg的图像进行超分还原,还原结果存储在results文件夹下面;

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

江小猿

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值