【论文阅读】ESRGAN

news2024/11/28 6:26:07

学习资料

  • 论文题目:增强型超分辨率生成对抗网络(ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks)
  • 论文地址:[1809.00219] ESRGAN:增强型超分辨率生成对抗网络
  • 代码:xinntao / ESRGAN:ECCV18 研讨会 - 增强的 SRGAN。Champion PIRM Challenge 关于感知超分辨率。训练代码位于 BasicSR 中。

1. WHY

SRCNN→SRGAN

以PSNR为导向的方法往往输出过于平滑的结果,缺乏足够的高频细节,因为 PSNR指标在根本上与人类观察者的主观评估不一致。

所以提出了基于感知驱动的方法。 感知损失(感知损失聚焦特征空间,通过比较生成图像与真实图像在预训练网络中的特征,使模型学习到高级语义特征。这有助于生成更逼真自然、纹理细节丰富且视觉效果更好的超分辨率图像,提升模型对图像的理解与重建能力)被提出用于在特征空间而不是像素空间中优化超分辨率模型。GAN被引入到SRIR,以鼓励网络倾向于看起来更像自然图像的解决方案。进一步结合语义图像先验(利用图像中物体、场景等的已有知识。比如知道天空在上且颜色均匀,以此引导模型生成更合理的高分辨率图像,改善纹理细节,让结果更符合视觉认知),以改善恢复的纹理细节。

追求视觉愉悦结果的一个里程碑是 SRGAN。基本模型是通过残差块 [18] 构建的,并在 GAN 框架中使用感知损失进行优化。通过所有这些技术,SRGAN 显著提高了重建的整体视觉质量,超过了以 PSNR 为导向的方法。

SRGAN→ESRGAN

尽管已有如 SRGAN 等感知驱动方法改善了视觉效果,但生成的细节仍伴有不良伪影,与真实图像GT存在明显差距,因此需要进一步提升超分辨率图像的视觉质量。

2. WHAT

我们采用SRResNet的基本架构,其中大部分计算在LR特征空间中进行。我们可以选择或设计“基本模块Basic Block”(例如,残差模块,密集模块,RRDB)以获得更好的性能。

2.1. 生成器改进

为了进一步提高SRGAN恢复图像的质量,我们主要对生成器G的结构进行了两项修改:

2.1.1. 去除 BN 层

原因

BN 层在训练时用批次均值和方差归一化特征,测试时用训练集估计均值和方差。当训练和测试数据集统计特征差异大时,会引入伪影且限制泛化能力。在 GAN 框架下训练且网络深时,BN 层更易产生伪影,违反稳定训练需求。

效果

去除 BN 层可实现稳定训练和一致性能,节省计算资源和内存,在某些情况下还能带来轻微性能改善。

2.1.2. 采用 RRDB 块

结构特点

RRDB 具有残差 - 残差结构,在不同层次进行残差学习,主路径中使用稠密块,网络容量因稠密连接而提高。比 SRGAN 中原始残差块更深更复杂。

训练促进技术

  • 残差缩放:在将残差添加到主路径前乘以 0.2,防止不稳定,可解释为纠正不当初始化,避免残差网络中输入信号幅度放大。
  • 较小初始化:将 MSRA 初始化计算的参数乘以 0.1,在实验中效果良好,有助于训练非常深的网络。

效果

基于观察到更多层和连接可提升性能,RRDB 能提升网络表示能力,捕捉更多语义信息,改善恢复纹理,减少不愉快噪声,使更深模型更易训练且性能卓越。

2.2. 判别器改进

原理

与 SRGAN 中的标准判别器不同,相对论判别器试图预测一个真实图像x_r相对于一个假图像x_f更真实的概率。

标准判别器D(x)=\sigma(C(x))估计输入图像x是现实和自然的概率(\sigma是 sigmoid 函数,$C(x)$是未转换的鉴别器输出),而相对论平均鉴别器$D_{Ra}(x_r,x_f)=\sigma(C(x_r)-E_{x_f}[C(x_f)])$,其中$E_{x_f}[\cdot]$表示对小批量中所有假数据取平均的操作。


普通判别器是判断一张图是真(自然)图还是假(生成)图。相对论判别器不一样,它是看一张真图比一张假图更真实的可能性有多大。比如说有一张真实的风景照和一张生成的风景照,它不是简单说这两张图哪个真哪个假,而是判断真实照片比生成照片更真实的程度

对于标准判别器,它算出一个数(通过$C(x)$计算后再用\sigma函数转换),这个数表示输入图x是真实自然的概率。

而相对论判别器呢,它要算真实图像x_r的某个值($C(x)$相关的)减去假图像x_f的 平 均 值 ($E_{x_f}[ C( x_f) ]$),然后再用\sigma函数得到结果,这个结果就是真图比假图更真实的概率。

标准鉴别器与相对论鉴别器之间的差异

判别器损失与生成器对抗损失

判别器损失:$L_D^{Ra}=-\mathbb{E}_{x_r}\left[log\left(D_{Ra}\left(x_r,x_f\right)\right)\right]-\mathbb{E}_{x_f}\left[log\left(1-D_{Ra}\left(x_f,x_r\right)\right)\right]$

生成器的对抗损失:$L_G^{Ra}=-\mathbb{E}_{x_r}\left[log\left(1-D_{Ra}\left(x_r,x_f\right)\right)\right]-\mathbb{E}_{x_f}\left[log\left(D_{Ra}\left(x_f,x_r\right)\right)\right]$

其呈对称形式且包含了x_rx_r。这使得生成器在对抗训练中受益于来自生成数据和真实数据的梯度,而在 SRGAN 中只有生成部分起作用。


判别器有自己的损失计算($L_D^{Ra}$),生成器也有对应的对抗损失($L_G^{Ra}$)。生成器的对抗损失这样设计的好处是,它在训练的时候,既会考虑到真实图像的信息,也会考虑到生成图像的信息(因为损失里既有x_r又有相关x_f的部分)。而以前的 SRGAN,生成器训练时主要只靠生成图像那边的信息。这样一来,通过相对论判别器,生成器能学到更多东西,生成的图像边缘更清晰,纹理更细致,看起来就更像真实的照片了。

作用

在实验中,这种对鉴别器的修改有助于生成器学习更清晰的边缘和更详细的纹理,从而提升生成图像的质量,使生成的图像在视觉效果上更接近真实图像。

2.3. 感知损失改进

改进原因

SRGAN 中对激活后的特征进行约束存在问题。首先,激活特征非常稀疏,特别是在非常深的网络之后,如在 VGG19 - 543 层之后,图像 “baboon” 的激活神经元平均百分比仅为 11.17%,稀疏激活提供了弱监督,导致性能较差。其次,使用激活之后的特征还会导致与真实图像相比重建亮度不一致。

改进方式

对激活前的特征进行约束,开发更有效的感知损失L_{percep}。使用预训练的 19 层 VGG 网络,其中 54 表示在第 5 个最大池化层之前第 4 个卷积获得的特征(高层特征),22 表示低层特征,通过最小化生成图像与真实图像在激活前特征之间的距离来优化感知损失。

生成器总损失

生成器的总损失$L_G=L_{percep}+\lambda L_G^{Ra}+\eta L_1$,其中是$L_1=\mathbb{E}_{x_i}\|G(x_i)-y\|_{1}$内容损失,用于评估恢复图像$G( x_i)$与真实值y之间的 1 - 范数距离,\lambda\eta是平衡不同损失项的系数。

MINC 损失探索

还探讨了 PIRM - SR 挑战中的感知损失变体 MINC 损失。与常用的采用为图像分类训练的 VGG 网络的感知损失不同,MINC 损失基于针对材料识别的微调 VGG 网络,重点关注纹理而非物体。尽管 MINC 损失带来的感知指标提升微小,但探索关注纹理的感知损失对 SR 有重要意义。

2.4. 网络插值策略

目的

在基于 GAN 的方法中去除不愉快的噪声,同时保持良好的感知质量,并且能够平衡感知质量和 PSNR(峰值信噪比)。

策略

首先训练一个以 PSNR 为导向的网络G_{PSNR},然后通过微调获得一个基于 GAN 的网络G_{GAN}。对这两个网络的所有对应参数进行插值,得到插值模型$G_{INTERP}$,其参数$\theta_G^{INTERP}=(1-\alpha)\theta_G^{PSNR}+\alpha\theta_G^{GAN}$,其中$\alpha\in[0,1]$是插值参数。

优点

插值模型能够为任何可行的生成有意义的结果,而不会引入伪影。可以在不重新训练模型的情况下,持续平衡感知质量和保真度。

与图像插值对比

图像插值是直接对输出图像进行逐像素插值,而不是网络参数插值。这种方法未能在噪声和模糊之间实现良好的折衷,插值图像要么过于模糊,要么噪声过多并带有伪影。而网络插值策略在平衡感知质量和保真度方面表现更优,能提供更平滑的控制。

在 PIRM - SR 挑战中的应用

对于需要更高 PSNR 的区域(如 PIRM - SR 挑战中的区域 1 和 2),使用 ESRGAN 结果与以 PSNR 为导向的方法(如 RCAN)结果之间的图像插值。对于追求最佳感知质量的区域 3,采用提出的 ESRGAN 模型(使用了网络插值等改进策略),该模型在 PIRM - SR 挑战赛(区域 3)中获得了最佳感知指数的第一名。

2.5. 实验

数据

训练主要使用 DIV2K 数据集(800 张高质量 2K 分辨率图像),还补充了 Flickr2K 数据集(2650 张 2K 高分辨率图像)和 OutdoorSceneTraining (OST) 数据集,以丰富训练集纹理。

在 RGB 通道中训练模型,并通过随机水平翻转和 90 度旋转来增强训练数据集。

评估在广泛使用的基准数据集上进行,包括 Set5、Set14、BSD100、Urban100 以及 PIRM - SR 挑战中的 PIRM 自验证数据集。

图像缩放因子固定为\times 4,通过下采样 HR 图像获得 LR 图像,下采样使用 MATLAB 双三次插值核函数。

训练阶段

首先进行第一阶段训练,使用 L1 损失训练一个以 PSNR 为导向的模型。学习率初始化为2\times 10^{-4},并且每2\times 10^{5}次小批量更新后衰减一个因子 2。

接着进入第二阶段,将第一阶段训练好的 PSNR 导向模型作为生成器的初始化。生成器使用公式$L_G=L_{percep}+\lambda L_G^{Ra}+\eta L_1$中的损失函数进行训练,其中\lambda =5\times 10^{-3}\eta =1\times 10^{-2}。学习率设定为1\times 10^{-4},并在[50k,100k,200k,300k]迭代时减半。

优化方法

优化过程使用 Adam 优化算法,其中\beta _{1}=0.9\beta _{2}=0.999。在训练过程中,交替更新生成器和判别器网络,直到模型收敛。

生成器设置

生成器有两种设置,一种包含 16 个残差块,其容量与 SRGAN 相似;另一种是更深的模型,包含 23 个 RRDB 块。

训练环境

实验使用 PyTorch 框架实现模型,并使用 NVIDIA Titan Xp GPU 进行训练。

实验方法

定性结果比较、消融研究、网络插值实验、PIRM - SR 挑战参赛方法

3. HOW

定性结果出色:在多个公共基准数据集上与先进方法对比,ESRGAN 在生成图像的清晰度和细节表现上超越以往方法。如在生成动物毛发、建筑结构和草地纹理等方面更加自然逼真,且有效减少了如 SRGAN 中出现的伪影等不良现象。

消融实验验证:通过逐步修改基线 SRGAN 模型进行消融研究,证明了各改进组件(如移除 BN 层、使用激活前特征计算感知损失、采用 RaGAN 判别器、使用更深层含 RRDB 的网络)对最终结果均有积极贡献,有效提升了图像质量。

网络插值有效:网络插值策略在平衡感知质量和 PSNR 方面表现卓越,能够在减少伪影的同时保持良好纹理,而图像插值在去除伪影方面效果不佳。

挑战赛成绩优异:在 PIRM - SR 挑战赛中,采用特定配置的 ESRGAN 变体,结合 MINC 损失、Pristine 数据集、高权重 L1 损失和反向投影后处理等手段,在区域 3 中荣获第一名,充分证实了所提方法在感知质量方面的有效性和先进性。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【HarmonyOS】判断应用是否已安装

【HarmonyOS】判断应用是否已安装 前言 在鸿蒙中判断应用是否已安全,只是通过包名是无法判断应用安装与否。在鸿蒙里新增了一种判断应用安装的工具方法,即:canOpenLink。 使用该工具函数的前提是,本应用配置了查询标签querySch…

Linux内核-tmpfs虚拟文件系统

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 我们的Linux进阶部分,到目前为止,已经讲过:硬件,日常运维,基础软…

机器视觉运动控制一体机在DELTA并联机械手视觉上下料应用

市场应用背景 DELTA并联机械手是由三个相同的支链所组成,每个支链包含一个转动关节和一个移动关节,具有结构紧凑、占地面积小、高速高灵活性等特点,可在有限的空间内进行高效的作业,广泛应用于柔性上下料、包装、分拣、装配等需要…

基于SSM+小程序的购物管理系统1

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM小程序的购物管理系统1,可以实现首页、个人中心、商品分类管理、商品信息管理、特价商品管理、用户管理、留言板管理、系统管理、订单管理等功能。方便用户对首页、商品…

Redis 事务 总结

前言 相关系列 《Redis & 目录》(持续更新)《Redis & 事务 & 源码》(学习过程/多有漏误/仅作参考/不再更新)《Redis & 事务 & 总结》(学习总结/最新最准/持续更新)《Redis & 事务…

正点原子阿尔法ARM开发板-IMX6ULL(十一)——IIC协议和SPI协议--AP3216C环境光传感器和ICM20608六轴传感器

文章目录 一、前言二、 IIC协议2.1 协议解读2.1.1 起始位、停止位、数据传输2.1.2 写时序2.1.3 读时序 2.2 代码分析2.3 AP3216C环境光传感器的代码分析 三、SPI协议3.1 协议解读3.2 代码分析3.3 ICM-20608六轴传感器代码分析 一、前言 看了IIC,我之前毕设用过这个…

Vmware虚拟机解决摄像头无效,相机失效

问题: 使用vmware虚拟机,打开windows的虚拟机,发现找不到摄像头,打开自带的相机软件报错: 解决方法如下,依次点击vmware状态栏的 虚拟机-可移动设备-chicony integrated camera-连接(断开与主…

MySQL用户权限管理属于SQL语句中的DCL语句

1.用户授权 语法:grant 权限,权限,on 库名,表名 to 用户名 [identified by 密码] MySQL5的版本,如果这个用户事先不存在,这个grant命令去给用户授权的时候,会将用户一起创建出来&#xff0…

已解决 django.db.utils.OperationalError: (1051, “Unknown table

报错信息: django.db.utils.OperationalError: (1051, "Unknown table bjybolg.tool_submission")python manage.py migrate --fake 命令用于告诉 Django 假装已经应用某个迁移,而不实际执行该迁移的操作。这通常在以下情况下非常有用&#x…

Linux shell编程学习笔记87:blkid命令——获取块设备信息

0 引言 在进行系统安全检测时,我们需要收集块设备的信息,这些可以通过blkid命令来获取。 1 blkid命令的安装 blkid命令是基于libblkid库的命令行工具,可以在大多数Linux发行版中使用。 如果你的Linux系统中没有安装blkid命令,…

堆的应用——堆排序和TOP-K问题

1.堆排序 想法⼀&#xff1a; 基于已有数组建堆、取堆顶元素完成排序。也就是利用写好的堆数据结构&#xff08;之前的文章有讲解&#xff09;&#xff0c;去实现排序。 void HeapSort(int* a, int n){HP hp;for(int i 0; i < n; i){HPPush(&hp,a[i]);}int i 0;whi…

HexForge:一款用于扩展安全汇编和十六进制视图的IDA插件

关于HexForge HexForge是一款用于扩展安全汇编和十六进制视图的IDA插件&#xff0c;在该工具的帮助下&#xff0c;广大研究人员可以方便地直接从 IDA Pro 界面数据解码、解密或执行安全数据审计任务。 功能介绍 1、从 IDA 的反汇编或十六进制视图复制原始十六进制&#xff1b;…

00 DSA-- 入门、实现动态数组、实现链表、栈和队列、环形数组、哈希表

两种代码模式 核心代码模式 核心代码模式&#xff1a;就是给你一个函数框架&#xff0c;你需要实现函数逻辑&#xff0c;这种模式一般称之为。 目前大部分刷题平台和技术面试/笔试场景都是核心代码模式。 比如力扣第一题两数之和&#xff0c;就是给出 twoSum 函数的框架如下…

Jmeter压力测试简单教程(包括服务器状态监控)

前段时间公司需要对服务器进行压力测试&#xff0c;包括登录前的页面和登录后的页面&#xff0c;主要目的是测试负载均衡的实现效果。不知道是不是因为Jmeter不如loadRunner火爆还是什么&#xff0c;网上关于Jmeter的资料有很多但是大多千篇一律&#xff0c;要么简单弄个页面测…

Android 开发 调节声音 SeekBar自定义样式

效果图 xml布局 mipmap/seekbar图片随意一张图都可以&#xff0c;这里我的图就不贴出来了 <SeekBarandroid:id"id/seekBar"android:layout_marginLeft"8dp"android:layout_width"377dp"android:layout_height"8dp"android:layou…

循序渐进丨openGauss / MogDB 数据库内存占用相关SQL

一、内存总体分布 数据库总体内存使用分布 select * from gs_total_memory_detail; 当dynamic_used_memory大于max_dynamic_memory就会报内存不足&#xff1b;如果此时dynamic_used_memory小于max_dynamic_memory&#xff0c;而dynamic_peak_memory大于max_dynamic_memory表…

基于vite和vue3、 eslint、prettier、stylelint、husky规范

前言 在现代的前端开发中&#xff0c;代码规范非常重要。它可以提高团队的协作效率&#xff0c;减少代码错误&#xff0c;使代码更易于维护。为了实现代码规范化&#xff0c;我们可以使用一些工具来辅助我们的开发流程&#xff0c;包括eslint、prettier、stylelint、husky&am…

MYSQL-SQL-03-DQL(Data Query Language,数据查询语言)(单表查询)

DQL&#xff08;数据查询语言&#xff09; DQL英文全称是Data Query Language(数据查询语言)&#xff0c;数据查询语言&#xff0c;用来查询数据库中表的记录。 查询关键字: SELECT 在一个正常的业务系统中&#xff0c;查询操作的频次是要远高于增删改的&#xff0c;当我们去访…

宇音天下最新力作 | VTX356语音识别合成芯片问世

北京宇音天下科技有限公司&#xff0c;依托在语音技术领域的丰富经验和技术积累&#xff0c;成功推出了一款具有里程碑意义的语音识别合成芯片——VTX356。这款芯片的问世&#xff0c;不仅彰显了公司在智能语音处理领域的专业实力&#xff0c;也预示着智能家居、车载电子、智能…

开始菜单增强工具 StartAllBack v3.7.10.4910 直装激活版

StartAllBack中文版(StartIsBack)是一款Win11开始菜单增强工具&#xff0c;可以为Windows11恢复经典样式的Windows7主题风格开始菜单和任务栏&#xff0c;功能包括了&#xff1a;自定义开始菜单样式和操作&#xff0c;个性化任务栏及资源管理器等。 详细功能 √ 全面更新中文语…