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

基于SRGAN的图像超分辨率实例相关推荐

  1. 基于SRGAN实现图像超分辨率重建或复原

    基于SRGAN实现图像超分辨率重建或复原 2018年04月20日 11:50:26 山水之间2018 阅读数 14064 文章标签: SRGAN图像超分辨率重建 更多 分类专栏: 深度学习 图像处理  ...

  2. 超分辨率——基于SRGAN的图像超分辨率重建(Pytorch实现)

    基于SRGAN的图像超分辨率重建 本文偏新手项,因此只是作为定性学习使用,因此不涉及最后的定量评估环节 目录 基于SRGAN的图像超分辨率重建 1 简要介绍 2 代码实现 2.1 开发环境 2.2 主 ...

  3. 基于SRGAN的图像超分辨率处理

    基于SRGAN的图像超分辨率处理 相关代码 算法原理 图像超分任务 文章创新点 网络结构 生成网络: 1. 整体结构图 2. 网络细节图 判别网络 1. 整体结构图 2. 网络细节图 损失函数 con ...

  4. 小米9拍照黑科技:基于NAS的图像超分辨率算法

    作者:Xiangxiang Chu, Bo Zhang等 丨 机器之心编译丨 雷军表示:这是一篇小米最新出炉的论文,基于弹性搜索在图像超分辨率问题上取得了令人震惊的结果,该模型已开源. 本篇是基于 N ...

  5. 基于Python的图像超分辨率(Image Super Resolution)

    资源下载地址:https://download.csdn.net/download/sheziqiong/85596189 一.业务背景 本实验将使用时深度学习技术对图像进行超分辨率重建,设计到的技术 ...

  6. 学习笔记之——基于深度学习的图像超分辨率重建

    最近开展图像超分辨率( Image Super Resolution)方面的研究,做了一些列的调研,并结合本人的理解总结成本博文~(本博文仅用于本人的学习笔记,不做商业用途) 本博文涉及的paper已 ...

  7. 基于深度学习的图像超分辨率重建

    最近开展图像超分辨率( Image Super Resolution)方面的研究,做了一些列的调研,并结合本人的理解总结成本博文~(本博文仅用于本人的学习笔记,不做商业用途) 本博文涉及的paper已 ...

  8. 图像超分辨率算法:CVPR2020

    图像超分辨率算法:CVPR2020 Unpaired Image Super-Resolution using Pseudo-Supervision 论文地址: http://openaccess.t ...

  9. 基于深度学习的超分辨率综述

    1.单图像超分辨率重建 SISR方法框架由两部分组成,非线性映射学习和上采样模块. 非线性映射学习模块负责完成LR到HR的映射,这过程中利用损失函数引导和监督学习的进程:上采样模块实现重建图像的放大, ...

最新文章

  1. tcpdump抓包并保存到远程服务器
  2. 不改文件名的情况下上传突破
  3. sqlserver 指数_指数基金的分类有哪些?
  4. python旋转矩阵_python实现回旋矩阵方式(旋转矩阵)
  5. 解析针对 HTTP/2 协议的不同步攻击
  6. WCF服务实现客户端Cookie共享,表单验证的解决方案
  7. unity 公用的方法库
  8. 前端学习(3215):类的编写
  9. 天池 在线编程 删除字符(单调栈)
  10. 会议交流 | CAAI BDSC2021大会专题七:社会计算与开放知识图谱
  11. Android笔记 隐式意图demo
  12. C++ 解引用操作符重载
  13. SpringBoot2.0源码分析(二):整合ActiveMQ分析
  14. tensorflow精进之路(二十)——使用slim模型库训练自己的数据
  15. JS Math方法、逻辑
  16. POJ 2187 凸包旋转卡壳
  17. 【LeetCode】【数组】题号:56,重塑矩阵
  18. Marlin 固件配置手动退换料
  19. negative和passive的反义词_消极的近义词和反义词
  20. matlab for循环与subs应用 求解

热门文章

  1. C语言search函数的作用,C语言lsearch()函数:用于在给定的区域内从头到尾进行线性搜索...
  2. 守法公民 Law Abiding Citizen (2009)
  3. 360极速浏览器屏蔽百度广告
  4. 一个C语言编写的坦克大战游戏
  5. 深度学习基础 - 概率的三个公理
  6. 分享一个超nice的数据分析实战案例, “手把手”教学,收藏等于学会
  7. 裁员1700人,IBM 声称内部调整团队;谷歌将以26亿美元全现金收购Looker,绝对大手笔...
  8. dakai微信小程序 ios_【iOS】微信小程序打开APP到底是怎么回事?
  9. main.c: In function ‘hello’: main.c:3:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ bef
  10. 2022年计算机二级考试WPS Office高级应用与设计考前冲刺题及答案