【深度学习】实验7布置,图像超分辨

清华大学驭风计划

因为篇幅原因实验答案分开上传,

实验答案链接 http://t.csdnimg.cn/P1yJF

如果需要更详细的实验报告或者代码可以私聊博主

有任何疑问或者问题,也欢迎私信博主,大家可以相互讨论交流哟~~
深度学习训练营
案例 7 :图像超分辨
相关知识点:生成对抗网络、图像处理( PIL )和可视化( matplotlib )

1****任务和数据简介

本次案例将使用生成对抗网络来实现 4 倍图像超分辨任务,输入一张低分辨率图像,生成器会生成一张 4 倍超分辨率的图像,如图 1 所示。生成对抗网络选用 SRGAN 结构 [1] 。本案例训练集使用 DIV2K 数据集 [2] ,包含有 800 张 2K 左右高分辨率的图像和 800 张对应的低分辨率图像;测试集使用 DIV2K 验证集 [2] 、Set5、 Set14 、 B100 、 Urban100 五个数据集,分别包括高分辨率图像和对应的低分辨率图像。训练集和测试集中的所有低分辨图像都是由高分辨率图像下采样得到,下采样方法为使用 Matlab 中的 resize 函数, scale factor 为 0.25 ,其余为默认参数(双三次插值)。
图 1 图像超分辨任务

本案例使用 PSNR 与 SSIM 两个评价指标来衡量生成的高分辨率图像的质量,但指标的高低并不能直接反应图像质量的好坏,因此最终结果评价会加入人工评价,具体见第 4 部分的要求。

2****方法描述

模型结构

案例使用 [1] 中提出的 SRGAN 结构,生成器和判别器的结构与原论文保持一致,本案例要求自行实现 SRGAN 网络结构。

内容损失函数

对抗损失函数

3****参考程序及使用说明

本案例提供了部分代码供使用,各程序简介如下:
create_data_lists.py : 下载好训练集和测试集后,根据提供的数据集地址来生成案例训练测试所需要的 csv 文件。
datasets.py : 定义符合 pytorch 标准的 Dataset 类,供读入数据,注意训练阶段每张图片采样了 100 个 patch 来扩充训练集。
imresize.py : 用 python 实现了 matlab resize 函数,用于图像下采样。目前
python 第三方包中尚未有能得到与 matlab resize 函数一样结果的函数。
solver.py : 定义了一个 epoch 的训练过程。
models.py : 定义 SRGAN 模型结构,需要自行实现。
train.ipynb : 用于训练的 jupyter 文件,其中超参数需要自行调节,训练过程中可以看到模型损失的变化,每个 epoch 训练后都会进行模型保存。
test.ipynb : 加载指定的训练好的模型文件,在 5 个测试集上进行测试,计算并报告各个数据集上的 PSNR 和 SSIM 指标数值。
super_resolution.ipynb : 加载指定的训练好的模型文件,针对单个图片进行 4倍超分辨,并对结果进行可视化。
utils.py : 定义了一些可能会用到的函数,如图像数值格式转换等。
环境要求: python 包 pytorch, torchvision, numpy, csv, PIL, matplotlib, easydict ,tqdm 等。
使用说明:

  1. 下载训练集和测试集 [5] ,更改 create_data_lists.py 中数据集存放的位置,指定输出文件夹,运行该文件生成案例所需的 csv 文件; 2) 按照 SRGAN 网络结构完成 models.py
  2. 运行 train.ipynb 训练网络,现在的训练模式为初始化生成器和判别器后,对生成器和判别器进行交替更新。这样的训练模式只能得到一个表现很差的模型。案例要求自行设计训练模式,如加入生成器的预训练等[4] ,更改 solver.py 和 train.ipynb 训练出一个性能好的模型;
  3. 运行 test.ipynb 对训练的模型进行测试,现在是对 5 个测试集进行 PSNR和 SSIM 的计算。其中包含了 DIV2K 数据集中的验证集,这个验证集也可以作为训练时用于调整参数的验证集(如需验证请自行修改 train.ipynb实现,不做要求);
  4. 模型训练好之后运行 super_resolution.ipynb 生成供人工测评的图片。
    4 要求与建议
    完成 models.py 文件 ,可参考原论文 [1] ;
     调节 train.ipynb 中的超参数,使网络结构与原论文保持一致。运行 train.ipynb使案例可以跑通基础模式的训练;
    设计生成器和判别器的训练方式 ,可参考 [4] 中的训练方式,修改 solver.py 和train.ipynb 训练出性能更好的模型;
     运行 test.ipynb 对模型在 5 个测试集上进行测试,记录 PSNR 与 SSIM 结果;
     运行 super_resolution.ipynb ,为 Set5 测试集 中的每一张低分辨图片生成相应的高分辨图片,保留结果供人工评价
     完成一个实验报告,内容包括生成器和判别器的训练方式说明、模型最佳参数和对应的测试集结果、Set5 测试集图片生成结果、自己所做的尝试和改进;
    5 参考材料
    [1] Ledig, Christian, et al. "Photo-realistic single image super-resolution using a generative adversarial network." Proceedings of the IEEE conference on computervision and pattern recognition. 2017. https://arxiv.org/abs/1609.04802
    [2] https://data.vision.ee.ethz.ch/cvl/DIV2K/
    [3] https://zhuanlan.zhihu.com/p/50757421
    [4] https://github.com/tensorlayer/srgan
    [5] 数据集下载链接
    训练集: http://data.vision.ee.ethz.ch/cvl/DIV2K/DIV2K_train_HR.zip http://data.vision.ee.ethz.ch/cvl/DIV2K/DIV2K_train_LR_bicubic_X4.zip
    测试集: http://data.vision.ee.ethz.ch/cvl/DIV2K/DIV2K_valid_HR.zip
    http://data.vision.ee.ethz.ch/cvl/DIV2K/DIV2K_valid_LR_bicubic_X4.zip
    https://cloud.tsinghua.edu.cn/d/d97daf4c4b394abf86ec/
相关推荐
用户691581141651 小时前
Ascend Extension for PyTorch的源码解析
人工智能
用户691581141651 小时前
Ascend C的编程模型
人工智能
-Nemophilist-1 小时前
机器学习与深度学习-1-线性回归从零开始实现
深度学习·机器学习·线性回归
成富2 小时前
文本转SQL(Text-to-SQL),场景介绍与 Spring AI 实现
数据库·人工智能·sql·spring·oracle
CSDN云计算2 小时前
如何以开源加速AI企业落地,红帽带来新解法
人工智能·开源·openshift·红帽·instructlab
艾派森2 小时前
大数据分析案例-基于随机森林算法的智能手机价格预测模型
人工智能·python·随机森林·机器学习·数据挖掘
hairenjing11232 小时前
在 Android 手机上从SD 卡恢复数据的 6 个有效应用程序
android·人工智能·windows·macos·智能手机
小蜗子2 小时前
Multi‐modal knowledge graph inference via media convergenceand logic rule
人工智能·知识图谱
SpikeKing2 小时前
LLM - 使用 LLaMA-Factory 微调大模型 环境配置与训练推理 教程 (1)
人工智能·llm·大语言模型·llama·环境配置·llamafactory·训练框架
黄焖鸡能干四碗3 小时前
信息化运维方案,实施方案,开发方案,信息中心安全运维资料(软件资料word)
大数据·人工智能·软件需求·设计规范·规格说明书