【论文阅读】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 数据集图像进行定性比较。结果表明,作者提出的模型重建的图像具有更详细的结构,与真实图像更难区分,并且能较好地保留原始图像的大部分纹理,如男孩的肤色等。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android中的epoll机制

深入理解Android中的epoll机制 在Android系统中,epoll广泛用于高效管理网络和文件的I/O操作。它通过减少CPU资源消耗和避免频繁的内核态-用户态切换,实现了在多连接、多任务环境中的高性能。epoll的特性使其非常适合Android系统中网络服务器、Socket通信…

Android 15自定义设置导航栏与状态栏,EdgeToEdge适配

背景:android api 35,activity设置EdgeToEdge.enable((ComponentActivity) this)前提下 一、设置导航栏与状态栏颜色 设置的状态栏颜色,只需要设置fitsSystemWindows跟setOnApplyWindowInsetsListener xml设置: 代码:…

比例数据可视化(Python实现板块层级图绘制)——Instacart Market Basket Analysis

【实验名称】 实验一:绘制板块层级图 【实验目的】 1. 掌握数据文件读取 2. 掌握数据处理的方法 3. 实现板块层级图的绘制 【数据介绍】Instacart Market Basket Analysis 1. 数据说明 数据共有300 0000orders, 20 0000users, …

logback日志脱敏后异步写入文件

大家项目中肯定都会用到日志打印,目的是为了以后线上排查问题方便,但是有些企业对输出的日志包含的敏感(比如:用户身份证号,银行卡号,手机号等)信息要进行脱敏处理。 哎!我们最近就遇到了日志脱敏的改造。可…

使用text-embedding-3-small生成向量并将向量插入Mlivus Cloud用于语义搜索的深度解析与实战操作

使用text-embedding-3-small生成向量并将向量插入Mlivus Cloud用于语义搜索的深度解析与实战操作 在当今的大数据时代,文本数据的处理与分析显得尤为重要。如何高效地存储、查询和理解这些海量文本数据,成为了许多企业和研究机构面临的重大挑战。幸运的是,随着向量数据库技…

校园表白墙源码修复版

此校园表白墙源码基于thinkphp,因为时代久远有不少bug,经本人修复已去除大部分bug,添加了美化元素。 https://pan.quark.cn/s/1f9b3564c84b https://pan.baidu.com/s/1bb9vu9VV2jJoo9-GF6W3xw?pwd7293 https://caiyun.139.com/m/i?2hoTc…

用更多的钱买电脑而不是手机

如果,我们对自己的定义是知识工作者,那么在工作、学习相关的电子设备投入上,真的别舍不得花钱。 需要留意的是,手机,对于大部分在电脑前工作的人,不是工作设备。在我看来,每年投入到电脑的钱&…

【Java】java 集合框架(详解)

📃个人主页:island1314 ⛺️ 欢迎关注:👍点赞 👂🏽留言 😍收藏 💞 💞 💞 1. 概述 🚀 🔥 Java集合框架 提供了一系列用于存储和操作…

GeoWebCache1.26调用ArcGIS切片

常用网址: GeoServer GeoWebCache (osgeo.org) GeoServer 用户手册 — GeoServer 2.20.x 用户手册 一、版本需要适配:Geoserver与GeoWebCache、jdk等的版本适配对照 ​ 查看来源 二、准备工作 1、数据:Arcgis标准的切片,通过…

前OpenAI首席技术官为新AI初创公司筹资;我国发布首个应用临床眼科大模型 “伏羲慧眼”|AI日报

文章推荐 2024人工智能报告.zip |一文迅速了解今年的AI界都发生了什么? 今日热点 据报道,前OpenAI首席技术官Mira Murati正在为一家新的AI初创公司筹集资金 据路透社报道,上个月宣布离职的OpenAI首席技术官Mira Murati正在为一…

2024年妈杯MathorCup大数据竞赛A题超详细解题思路

2024年妈杯大数据竞赛初赛整体难度约为0.6个国赛。A题为台风中心路径相关问题,为评价预测问题;B题为库存和销量的预测优化问题。B题难度稍大于A题,可以根据自己队伍情况进行选择。26日早六点之前发布AB两题相关解题代码论文。 下面为大家带来…

excel斜线表头

检验数据验证对象 鼠标放在检验数据 验证对象中间,altenter 之后空格 选中格子,右键单元格格式, 完成 如果是需要多分割,操作一样,在画斜线的时候会有区别,在插入里面用直线画斜线即可 在表格插入的时…

el-table相关的功能实现

1. 表格嵌套表格时&#xff0c;隐藏父表格的全选框 场景&#xff1a;当table表格设置复选&#xff08;多选&#xff09;功能时&#xff0c;如何隐藏表头的复选框&#xff0c;不让用户一键多选。 <el-table :header-cell-class-name"cellClass">// 表头复选框禁…

基于Springboot无人驾驶车辆路径规划系统(源码+定制+开发)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

雷赛L6N伺服驱动器基本参数设置——EtherCAT 总线型

1、指令脉冲设置 PA0.08代表电机转一圈&#xff0c;所需要的指令脉冲数&#xff0c;该值驱动器默认值为0&#xff0c;该值更改后断电重启后生效。 2、编码器反馈脉冲设置 PA0.11&#xff0c;代表编码器输出每转脉冲数&#xff0c;实际反馈的脉冲数做了4倍频处理&#xff0c;设…

CSS揭秘:7. 伪随机背景

前置知识&#xff1a;CSS 渐变&#xff0c;5. 条纹背景&#xff0c;6. 复杂的背景图案 前言 本篇主要内容依然是关于背景的&#xff0c;无限平铺的背景会显得整齐美观&#xff0c;但又有些呆板&#xff0c;如何实现背景的多样性和随机性&#xff0c;是本篇的核心。 一、四种颜…

LTSC版本的Windows系统没有默认图片查看工具和便笺?教你下载。

前言 最近小白在使用Windows 11 LTSC版本&#xff0c;感觉真的是嘎嘎好用。 终于等到了&#xff01;旧电脑福星——最干净的Win11官方原版系统 小白用来安装这个系统的电脑配置其实也不低&#xff1a; i5-12400&#xff08;核显输出&#xff09; 16GB DDR4 3200MHz 500GB …

植物健康,Spring Boot来助力

3系统分析 3.1可行性分析 通过对本植物健康系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本植物健康系统采用SSM框架&#xff0c;JAVA作为开发语言&#…

【c++篇】:从基础到实践--c++内存管理技巧与模版编程基础

✨感谢您阅读本篇文章&#xff0c;文章内容是个人学习笔记的整理&#xff0c;如果哪里有误的话还请您指正噢✨ ✨个人主页&#xff1a;余辉zmh–CSDN博客 ✨ 文章所属专栏&#xff1a;c篇–CSDN博客 文章目录 前言一.c/c内存分布二.c/c的动态内存管理方式2.1.c语言的动态内存管…

Rust初踩坑

一、下载 到官网https://www.rust-lang.org/zh-CN/tools/install下载你需要的版本 二、安装 执行rustup-init 文件&#xff0c;选择1 按提示直到安装完成 可以通过以下命令测试&#xff1a; rustc -V # 注意的大写的 V cargo -V # 注意的大写的 V三、在VScode中…