【深度学习】实验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
3) 运行 train.ipynb 训练网络,现在的训练模式为初始化生成器和判别器后,对生成器和判别器进行交替更新。这样的训练模式只能得到一个表现很差的模型。案例要求自行设计训练模式,如加入生成器的预训练等[4] ,更改 solver.py train.ipynb 训练出一个性能好的模型;
4) 运行 test.ipynb 对训练的模型进行测试,现在是对 5 个测试集进行 PSNR和 SSIM 的计算。其中包含了 DIV2K 数据集中的验证集,这个验证集也可以作为训练时用于调整参数的验证集(如需验证请自行修改 train.ipynb实现,不做要求);
5) 模型训练好之后运行 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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/381564.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年【起重机司机(限桥式起重机)】最新解析及起重机司机(限桥式起重机)考试资料

题库来源:安全生产模拟考试一点通公众号小程序 起重机司机(限桥式起重机)最新解析是安全生产模拟考试一点通生成的,起重机司机(限桥式起重机)证模拟考试题库是根据起重机司机(限桥式起重机)最新版教材汇编出起重机司机(限桥式起重机)仿真模拟考试。2024…

Idea里自定义封装数据警告解决 Spring Boot Configuration Annotation Processor not configured

我们自定对象封装指定数据&#xff0c;封装类上面一个红色警告&#xff0c;虽然不影响我们的执行&#xff0c;但是有强迫症看着不舒服&#xff0c; 去除方式&#xff1a; 在pom文件加上坐标刷新 <dependency><groupId>org.springframework.boot</groupId><…

Stata实证命令代码汇总

Stata代码命令汇总 数据内容&#xff1a;包括数据导入和管理、数据的处理、描述性统计、相关性分析、实证模型、内生性解决、检验分析、结果导出 具体如下&#xff1a; 一、数据导入和管理&#xff1a;数据导入、数据导出 二、数据的处理&#xff1a;生成新变量、格式转换、…

FTP 文件传送协议

目录 1 文件传送协议 FTP 1.1 FTP 的基本工作原理 FTP 特点 主进程的工作步骤 两个连接 两个不同的端口号 NFS 采用另一种思路 1.2 简单文件传送协议 TFTP TFTP 的主要特点 TFTP 的工作&#xff08;很像停止等待协议&#xff09; 1 文件传送协议 FTP 文件传送协议 …

计算机算术

计算机算术 数据是什么 数据是各种各样的信息&#xff0c;如数字、文本、计算机程序、音乐、图像、符号等等&#xff0c;实际上&#xff0c;信息可以是能够被计算机存储和处理的任何事物。 位与字节 计算机中存储和处理信息的最小单位是位&#xff08;Binary digit比特&#x…

C++,stl,list容器详解

目录 1.list基本概念 2.list构造函数 3.list的赋值和交换 4.list大小操作 5.list的插入的删除 6.list数据存取 7.list反转和排序 排序案例 1.list基本概念 2.list构造函数 #include<bits/stdc.h> using namespace std;void print(const list<int> &lk) …

【Ubuntu 20.04/22.04 LTS】最新 esp-matter SDK 软件编译环境搭建步骤

仓库链接&#xff1a;esp-matter SDK官方软件说明&#xff1a;ESP Matter Programming Guide官方参考文档&#xff1a;使用 Matter-SDK 快速搭建 Matter 环境 (Linux) 环境要求 Ubuntu 20.04 或 Ubuntu22.04网络环境支持访问 Gihub 在安装 esp-matter SDK 软件编译环境之前&a…

行程开关方向

平板打印机的行程开关方向通常取决于设备的特定设计和制造商的指导。一般来说&#xff0c;行程开关的方向是指当行程开关被触发时&#xff0c;设备移动的方向。例如&#xff0c;如果一个行程开关被设计为当它被触发时&#xff0c;设备会向左移动&#xff0c;那么这个行程开关的…

Oracle 几种行转列的方式 sum+decode sum+case when pivot

目录 原始数据&#xff1a; 方式一&#xff1a; 方式二&#xff1a; 方式三&#xff1a; unpivot的使用&#xff1a; 原始数据&#xff1a; 方式一&#xff1a; select t_name,sum(decode(t_item, item1, t_num, 0)) item1,sum(decode(t_item, item2, t_num, 0)) item2,s…

【51单片机】添加模块代码的常见问题(图示&代码演示)

前言 大家好吖&#xff0c;欢迎来到 YY 滴 系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 本章节是Lcd1602章节的一部分&#xff0c;以把4个Lcd驱动程序添加为例子&#xff0c;完整传送门在下方传送门 欢迎订阅 YY滴C专栏&…

【蓝桥杯冲冲冲】[CEOI2015 Day2] 世界冰球锦标赛

蓝桥杯备赛 | 洛谷做题打卡day32 文章目录 蓝桥杯备赛 | 洛谷做题打卡day32题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示样例解释 题解代码我的一些话 [CEOI2015 Day2] 世界冰球锦标赛 题目描述 译自 CEOI2015 Day2 T1「Ice Hockey World Championship」 今年的…

三、OpenAI所有模型介绍

1. 综述 OpenAI API开发了具有各种能力的模型。可以根据不同的需求选择不同的模型并进行精调。 模型描述GPT-4、GPT-4 Turbo一组从GPT-3.5升级后的模型&#xff0c;能够生成自然语言和代码GPT-3.5 Turbo一组从GPT-3.5升级后的模型&#xff0c;能够生成自然语言和代码DALL.E能…

政安晨:示例演绎机器学习中(深度学习)神经网络的数学基础——快速理解核心概念(二){两篇文章讲清楚}

这一篇与上一篇是兄弟篇&#xff0c;意在通过两篇文章讲清楚深度学习中神经网络的数学基础&#xff0c;第一次看到这篇文章的小伙伴可以从上一篇文章看起&#xff08;包括搭建环境等等都在上一篇&#xff09;&#xff0c;上一篇链接如下&#xff1a; 政安晨&#xff1a;示例演…

Aethir和Well-Link Tech携手革新云游戏,释放人工智能(AI)潜力

​Aethir将为Well-Link Tech的2亿用户提供先进的GPU计算能力&#xff0c;大幅提升他们的游戏体验。 新加坡&#xff0c;2024年2月7日 - 先驱性的去中心化GPU网络Aethir与实时云渲染技术领导者Well-Link Tech携手共创云游戏和元宇宙发展的新时代。 借助Well-Link Tech对领先游戏…

ECMAScript Modules规范的示例详解

ECMAScript Modules&#xff08;ESM&#xff09;是JavaScript中用于模块化开发的规范&#xff0c;它允许开发者将代码分割成多个独立的文件&#xff0c;以提高代码的可维护性和可重用性。下面是一个ECMAScript Modules规范的示例详解&#xff1a; 创建模块 1.1 导出变量 在一个…

STL之list容器的介绍与模拟实现+适配器

STL之list容器的介绍与模拟实现适配器 1. list的介绍2. list容器的使用2.1 list的定义2.2 list iterator的使用2.3 list capacity2.4 list element access2.5 list modifiers2.6 list的迭代器失效 3. list的模拟实现3.1 架构搭建3.2 迭代器3.2.1 正向迭代器3.2.2反向迭代器适配…

深度学习技巧应用36-深度学习模型训练中的超参数调优指南大全,总结相关问题与答案

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用36-深度学习模型训练中的超参数调优指南大全,总结相关问题与答案。深度学习模型训练中的调优指南大全概括了数据预处理、模型架构设计、超参数优化、正则化策略和训练技巧等多个关键方面,以提升模型性能和泛化能力。 …

申请SSL证书怎么进行域名验证?域名验证的三种方式

SSL证书是用于加密和保护Web服务器和浏览器之间通信的数字证书&#xff0c;在申请SSL证书时&#xff0c;为了防止域名被冒用&#xff0c;对于申请SSL证书的域名&#xff0c;要求先验证这个域名的所有权。而目前可用的域名验证SSL证书方式有三种&#xff1a;分别是DNS验证、邮箱…

展示wandb的数据

import wandb import matplotlib.pyplot as plt# 初始化 wandb API api wandb.Api()# 假设您想要访问的项目名为 my_project&#xff0c;并且您的 wandb 用户名为 my_username project_name "aicolab/RWKV-5-Test"# 获取项目中的runs runs api.runs(project_name)…

【MySQL】-12 MySQL索引(上篇MySQL索引类型前置-1)

MySQL索引 索引1 索引基础2 索引与优化1 选择索引的数据类型1.1 选择标识符 2 索引入门2.1 索引的类型2.1.1 B-Tree索引2.1.2 Hash索引2.1.3 空间(R-Tree)索引2.1.4 全文(Full-text)索引 索引的优点&#xff1a;索引是最好的解决方案吗&#xff1f; 索引 索引&#xff08;在MYS…