当前位置: 首页 > news >正文

【论文阅读】ESRGAN+

学习资料

  • 论文题目:进一步改进增强型超分辨率生成对抗网络(ESRGAN+ : FURTHER IMPROVING ENHANCED SUPER-RESOLUTION GENERATIVE ADVERSARIAL NETWORK)
  • 论文地址:2001.08073
  • 代码:ncarraz/ESRGANplus: ICASSP 2020 - ESRGAN+: 进一步改进增强型超分辨率生成对抗网络 - ICPR 2020 - Tarsier: 超分辨率 GAN 中不断发展的噪声注入

1. WHY

尽管 ESRGAN 能够生成视觉质量较好的图像,但仍有提升空间。作者旨在进一步提高 ESRGAN 生成图像的感知质量,缩小生成图像与真实图像之间的差距。

2. WHAT

2.1. ESRGAN +

ESRGAN 的基本块使得网络易于训练且容量较高。本文保持 ESRGAN 的整体架构不变,但将其中的 Dense 块替换为新提出的块。

新块名为 Residual - in - Residual Dense Residual Block(RRDRB),它在 RRDB(Residual - in - Residual Dense Block)的基础上进行了改进。RRDB 原本具有残差 - 残差结构且主路径中有 Dense 块,新块在 Dense 块内部又增加了一个层次的残差学习,也就是每两层就添加一个残差。这样做的好处是,在不增加网络复杂度的情况下提升了网络容量。

例如,原来的 Dense 块在处理图像特征时可能能力有限,新的结构可以让网络更好地学习和利用图像特征,就像给网络增加了更多的 “工具” 来处理图像信息,从而使生成图像的视觉质量比使用简单 Dense 块时更好。

从特征利用角度看,新架构结合了 ResNet 能重用特征和 DenseNet 能发现新特征的优点,所以能生成感知质量更高的图像,使用这种新架构的模型被命名为 ESRGAN +。

上:密集块是ESRGAN的RRDB中使用的主要路径。下:在密集块中,每两个层添加一个残差。

2.2. nESRGAN +

引入噪声的目的和方式:在人脸生成领域已经有将噪声添加到生成器的做法,且效果较好,但在超分辨率领域尚未应用。本文为了让生成的图像具有随机细节,在生成器架构中引入噪声输入。具体来说,在每个残差密集块的输出添加高斯噪声,同时还有学习到的每个特征的缩放因子。例如,网络在处理图像时,每经过一个残差密集块,就会给输出的图像特征加上一些随机的噪声,这些噪声会根据学习到的缩放因子进行调整。

噪声对图像的影响:这种随机变化只会影响图像的某些局部方面,不会改变我们对图像的整体感知。比如,对于一幅风景图像,添加噪声后,图像的整体形状、主要物体的布局等大的方面不会改变,但像树叶、草地等局部细节会变得更加随机和丰富。这样做的好处是,网络不需要专门生成空间变化的伪随机数来提供细节,从而可以将原本用于生成随机数的网络容量高效利用起来,在高级方面(如整体结构和高层次信息保持不变的情况下)提供更精细的细节。同时使用新块和噪声输入的模型被称为 nESRGAN +。

2.3. 实验

训练集

DIV2K:包含 2K 分辨率的图像;数据集原本有 800 张图像,实验中通过随机水平翻转和旋转进行数据增强,以扩充训练数据量

测试集

BSD100、Urban100、OST300、Set5、Set14、PIRM 

图像预处理

低分辨率(LR)图像通过对高分辨率(HR)图像使用双三次核(bicubic kernel)下采样得到,缩放因子为\times 4

并且裁剪出128\times 128的 HR 子图像用于训练。

训练参数设置

小批量设置(mini - batch)16(每次训练时使用16张图像进行计算和参数更新)
模型初始化利用一个以 PSNR(峰值信噪比)为导向的预训练模型来初始化生成器,为后续训练提供一个较好的初始参数状态。
损失函数参数损失函数保持不变,其中\lambda =5\times 10^{-3}\eta =1\times 10^{-2},这些参数用于平衡不同损失项在总损失中的比重。
学习率策略初始学习率设置为1\times 10^{-4},并且在训练过程中的50k100k200k300k次迭代时将学习率减半,以逐步调整模型的学习步长,使模型在训练后期能够更精细地收敛。
优化器设置采用 Adam 优化器来优化模型参数,其中\beta _{1}=0.9\beta _{2}=0.999,这些超参数控制着优化器对梯度的估计和权重更新的方式。

训练硬件

训练过程在 NVIDIA Tesla K80 GPUs 上进行,利用其强大的计算能力加速训练过程。

模型结构

训练所使用的生成器具有23个块,模型的实现基于 Pytorch 框架,该框架提供了高效的深度学习模型构建和训练功能。

3. HOW

3.1. 定量评估

在 PIRM 数据集上评估模型,在 YCbCr 颜色空间中,仅测量亮度通道上的 PSNR(峰值信噪比),同时使用 PIRM - SR 挑战赛中的感知指数(基于 Ma's scoreNIQE,计算方式为$\frac{1}{2}\left ( \left ( 10-Ma \right ) +NIQE\right )$)进行评估。

结果显示,ESRGAN + 和 nESRGAN + 模型在感知质量方面始终优于 ESRGAN,nESRGAN + 在 PIRM 数据集上的感知分数更好,突出了噪声输入在生成器网络中的优势,但噪声注入的泛化存在局限性,如在 Urban100 和 OST300 数据集上,添加噪声对某些图像类别(如建筑物图像)的感知质量提升不明显。

最佳和第二最佳结果分别用高亮和下划线标出。

我们使用感知指数(右侧的数值)进行评估,但也提供了PSNR(左侧的数值)作为参考。

3.2. 定性评估

通过对比基于 PSNR 和感知质量的模型(如 SRCNN、EnhanceNet、SRGAN、ESRGAN 等),使用 Set14 数据集图像进行定性比较。结果表明,作者提出的模型重建的图像具有更详细的结构,与真实图像更难区分,并且能较好地保留原始图像的大部分纹理,如男孩的肤色等。

相关文章:

【论文阅读】ESRGAN+

学习资料 论文题目:进一步改进增强型超分辨率生成对抗网络(ESRGAN : FURTHER IMPROVING ENHANCED SUPER-RESOLUTION GENERATIVE ADVERSARIAL NETWORK)论文地址:2001.08073代码:ncarraz/ESRGANplus: ICASSP …...

北京市首发教育领域人工智能应用指南,力推个性化教育新篇章

近年来,人工智能在全球教育领域的应用呈现蓬勃发展之势,各国都在探索如何将其更好的融入教育体系,在这一背景下,北京市于10月26日发布《北京市教育领域人工智能应用指南》(以下简称《指南》),推…...

【Java并发编程】信号量Semaphore详解

一、简介 Semaphore(信号量):是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。 Semaphore 一般用于流量的控制,特别是公共资源有限的应用场景。例如数据库的连接&am…...

window11使用wsl2安装Ubuntu22.04

目录 1、快速了解wsl2 安装子系统linux流程(B站视频) 2、wsl2常用命令 3、windows与子系统Linux文件访问方法 4、子系统linux使用windows网络代理、网络配置(镜像网络,非NAT) 5、wsl2 Ubuntu miniconda 安装 6、…...

虚拟滚动 - 从基本实现到 Angular CDK

简介 在大数据列表的处理上,虚拟滚动是一种优化性能的有效方式。本篇文章将详细介绍两种常见的虚拟滚动实现方式:使用 transform 属性和 Intersection Observer。重点讲解如何通过 transform 属性实现高效的虚拟滚动,并对比Angular CDK中的实…...

Spring WebFlux学习笔记(一)

核心思想 WebFlux主要是异步 例子 参考一个源码&#xff1a; https://blog.csdn.net/qq_43923045/article/details/106309432?spm1001.2014.3001.5506 GetMapping("/delay1")public Mono<RestResult> delayResult() {long l System.currentTimeMillis();…...

富格林:正确追损思维安全交易

富格林指出&#xff0c;对于如何正确追损的这个问题是需要持续付出时间和精力的&#xff0c;发现具备耐心的投资者往往在正确追损的路上更加游刃有余。他们总是可以保持较为平和的心态&#xff0c;不急不躁地分析原因并通过自身掌握的安全应对措施来进行交易。富格林在以下分享…...

前端vue2迁移至uni-app

1.确定文件存放位置 components: 继续沿用 pages: views内容移动到pages static: assets内容移动到static uni_modules: uni-app的插件存放位置 迁移前 src├─assets│ └─less├─components│ ├─common│ │ ├─CommentPart│ │ └─MessDetail│ ├─home│…...

恋爱脑学Rust之闭包三Traits:Fn,FnOnce,FnMut

在Rust中&#xff0c;FnOnce、FnMut和Fn是三个用于表示闭包&#xff08;closure&#xff09;类型的trait。闭包是一种特殊的函数&#xff0c;它可以捕获其环境变量&#xff0c;即在其定义时所处的作用域中的变量。以下是关于这三个trait的详细介绍&#xff1a; 1. FnOnce&#…...

区块链介绍

区块链&#xff08;英文名&#xff1a;blockchain或block chain&#xff09;是一种块链式存储、不可篡改、安全可信的去中心化分布式账本&#xff0c;它结合了分布式存储、点对点传输、共识机制、密码学等技术&#xff0c;通过不断增长的数据块链&#xff08;Blocks&#xff09…...

git回滚间隔的提交

如果你需要回滚几个非连续的提交&#xff0c;可以使用 git revert 来选择性地撤销这些提交。这样做不会改变提交历史&#xff0c;只是会在当前分支上创建新的提交来反转指定的更改。 ### 使用 git revert 回滚间隔的提交 1. **查看提交历史**&#xff1a; 首先&#xff0c…...

Map和Set(数据结构)

一、概念 Map 和 set 是一种专门用来进行搜索的容器或者数据结构&#xff0c;其搜索的效率与其具体的实例化子类有关。 Map 和 Set 是一种适合动态查找的集合容器。 模型 一般把搜索的数据称为关键字&#xff08; Key &#xff09;&#xff0c;和关键字对应的称为值&#xff0…...

vue3uniapp实现自定义拱形底部导航栏,解决首次闪烁问题

前言&#xff1a; 我最初在网上翻阅查找了很多方法&#xff0c;发现大家都是说在page.json中tabbar中添加&#xff1a;"custom": true,即可解决首次闪烁的问题&#xff0c;可是添加了我这边还是会闪烁&#xff0c;因此我这边改变了思路&#xff0c;使用了虚拟页面来解…...

新需求编码如何注意低级错误代码

1. 日常开发常见错误问题 变量拷贝未修改变量定义的值刚开始是随意写的一个值&#xff0c;想等到上线的时候再改成正确的&#xff0c;但是上线的时候忘记改了程序常量配置的错误逻辑关系判断错误 常见的如都不为null、都不为空集合判断不为空逻辑取反了多个关系的 && …...

系统架构图设计(行业领域架构)

物联网 感知层&#xff1a;主要功能是感知和收集信息。感知层通过各种传感器、RFID标签等设备来识别物体、采集信息&#xff0c;并对这些信息进行初步处理。这一层的作用是实现对物理世界的感知和初步处理&#xff0c;为上层提供数据基础网络层&#xff1a;网络层负责处理和传输…...

windows 文件监控 c++ 11及以上版本可用

在该版本上稍微改了一下https://blog.csdn.net/weixin_50964512/article/details/125002563 #include<iostream> #include<string> #include<Windows.h> #include<list> #include<locale> using namespace std;class WatchFolder {HANDLE m_hFi…...

jsMind:炸裂项目,用JavaScript构建的思维导图库,GitHub上的热门开源项目

嗨&#xff0c;大家好&#xff0c;我是小华同学&#xff0c;关注我们获得“最新、最全、最优质”开源项目和工作学习方法 jsMind 是一个基于 JavaScript 的思维导图库&#xff0c;它利用 HTML5 Canvas 和 SVG 技术构建&#xff0c;可以轻松地在网页中嵌入和编辑思维导图。它以 …...

postman的脚本设置接口关联

pm常用的对象 变量基础知识 postman获取响应结果的脚本的编写 下面是购物场景存在接口信息的关联 登录进入---搜索商品---进入商品详情---加入购物车 资源在附件中&#xff0c;可以私聊单独发送 postman的SHA256加密 var CryptoJS require(crypto-js);// 需要加密的字符串 …...

【python】OpenCV—Tracking(10.3)—GOTURN

文章目录 1、功能描述2、模型介绍3、代码实现4、完整代码5、结果展示6、优缺点分析7、参考 1、功能描述 基于 Generic Object Tracking using Regression Networks 方法&#xff0c;实现单目标跟踪 2、模型介绍 &#xff08;1&#xff09;发表来自 Held D, Thrun S, Savarese…...

git pull遇到一个问题

shell request failed on channel 0 需要修改服务器配置[rootadmin ~]# cat /etc/security/limits.d/20-nproc.conf # Default limit for number of users processes to prevent # accidental fork bombs. # See rhbz #432903 for reasoning.* soft nproc 409…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗&#xff1f; 在ComfyUI中实现图生视频并延长到5秒&#xff0c;需要结合多个扩展和技巧。以下是完整解决方案&#xff1a; 核心工作流配置&#xff08;24fps下5秒120帧&#xff09; #mermaid-svg-yP…...

MySQL 数据库深度剖析:事务、SQL 优化、索引与 Buffer Pool

在当今数据驱动的时代&#xff0c;数据库作为数据存储与管理的核心&#xff0c;其性能与可靠性至关重要。MySQL 作为一款广泛使用的开源数据库&#xff0c;在众多应用场景中发挥着关键作用。在这篇博客中&#xff0c;我将围绕 MySQL 数据库的核心知识展开&#xff0c;涵盖事务及…...