使用GAN做图像超分——SRGAN,ESRGAN

在GAN出现之前,使用的更多是MSE,PSNR,SSIM来衡量图像相似度,同时也使用他们作为损失函数。

但是这些引以为傲的指标,有时候也不是那么靠谱:

MSE对于大的误差更敏感,所以结果就是会倾向于收敛到期望附近,表现为丢失高频信息。同时根据实验,MSE的收敛效果也差于L1:

但是只使用L1也有问题,现在通常的做法是多种损失混合使用,比如MS-SSIM+L1,还有基于DCT的loss。

在目前超分辨率的论文中不使用MSE,而使用L1或者Perceptual loss的原因是什么? - 知乎

SRGAN,ESRGAN,Real ESRGAN,一步步演化,对比着看才更容易理解。

SRGAN

SRGAN主要从损失函数的角度优化。因为发现一MSE为损失函数时,网络会倾向于平均的结果,表现在图像上就是过于平滑,丢失细节。https://arxiv.org/pdf/1609.04802.pdf

SRGAN使用了两个损失函数,一个是使用VGG的特征图,在特征图上计算欧式距离。第二个损失函数是使用对抗网络中的鉴别器,判断当前输出结果是否是真实的HR数据。

ESRGAN

ESRGAN在损失函数上继续优化。特征图损失部分,使用的是激活前的而不是激活后的,因为激活后的未免太抽象;

鉴别器损失部分,借鉴relativistic GAN,使用相对损失而不是绝对损失。

除了损失函数,网络结构方面也是把残差,dense net组合成更复杂的RRDB:

首先是构建Dense Block,卷积越往后,接受的通道数越多(因为是之前所有的输出和最开始的输入)。Dense Block把输出和输入线性组合,就是RDB。RRDB就是把三个RDB串起来,再把输出和输入做线性组合。组合的时候,输出只占0.2.

最终以PSNR和GAN为目标,作者训练了两套模型参数,对两套参数加权融合,可以互补二者的优缺点。

Real ESRGAN

Real ESRGAN主要的贡献是数据对的生成。通过模糊,下采样,加噪声,压缩,模拟振铃效应等得到了更接近真实退化的图像对:

SRGAN、ESRGAN与Real ESRGAN方法介绍 - 知乎

ESRGAN原理分析和代码解读 - 知乎

超分之ESRGAN官方代码解读_residual-in-residual dense block、-CSDN博客

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

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

相关文章

spring05:代理模式 和 AOP

spring05:代理模式 和 AOP 文章目录 spring05:代理模式 和 AOP前言一、静态代理模式(代理类直接写好)1. (房东租房子 的案例) 二、动态代理模式(代理类是动态生成的)1. (…

动态代理,XML,Dom4j

文章目录 动态代理概述特点代码实现实现的关键步骤优点 XML概述作用编写第一个XML文件组成声明元素(标签、标记)属性注释转义字符[实体字符字符区(了解) 约束DTD约束Schema约束名称空间 Dom4jXML解析解析方式和解析器解析方式解析器Snipaste_2024-04-17_21-22-44.png<br /&g…

竞赛 基于LSTM的天气预测 - 时间序列预测

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 机器学习大数据分析项目 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-senior/po…

【机器学习300问】74、如何理解深度学习中L2正则化技术?

深度学习过程中&#xff0c;若模型出现了过拟合问题体现为高方差。有两种解决方法&#xff1a; 增加训练样本的数量采用正则化技术 增加训练样本的数量是一种非常可靠的方法&#xff0c;但有时候你没办法获得足够多的训练数据或者获取数据的成本很高&#xff0c;这时候正则化技…

pajamas 1 daydream.sequence-template

0. 老实交代&#xff0c;最近对于python&#xff0c;非常之感冒 热天气常驻之后&#xff0c;各种毛病就来了&#xff1a;蚊子很彪悍&#xff0c;牙齿不舒服&#xff0c;肠胃那更是一坨 … 虽然不久前&#xff0c;荷包大残&#xff0c;但是关注到 mac mini 之后&#xff0c;就…

项目7-音乐播放器5+注册账号

1.前端代码 MAPPER Insert("insert into user(username,password) values (#{username},#{password}) ")Integer insertUserInfo(String username,String password); Service public Result insertUserInfo(String username, String oldpassword,String newpasswo…

MAC电脑M1安装OpenCV

最近在学习研究OpenCV&#xff0c;奈何只有mac电脑。安装OpenCV感觉还是挺麻烦的&#xff0c;所以记录一下&#xff0c;难免以后会忘记。 安装OpenCV我参考的帖子 https://www.bilibili.com/read/cv23613225/ 一、首先安装Anaconda 目前已安装不做赘述 二、启动命令窗口 方…

SpringBoot搭建环境

创建项目向导 用idea向导建SpringBoot项目&#xff1a;菜单 > File > New > Project… 选择向导&#xff1a; 默认向导 https://start.spring.io 建议用 https://start.aliyun.com 配置项目信息 Group : 组织名 Artifact : 项目名 Version : 版本号 name : 与Artifa…

【在线OJ系统】自定义注解实现分布式ID无感自增

实现思路 首先自定义参数注解&#xff0c;然后根据AOP思想&#xff0c;找到该注解作用的切点&#xff0c;也就是mapper层对于mapper层的接口在执行前都会执行该aop操作&#xff1a;获取到对于的方法对象&#xff0c;根据方法对象获取参数列表&#xff0c;根据参数列表判断某个…

Hbase的简单学习一

一 Hbase的搭建与安装 1.1 安装 1.准备好文件&#xff0c;上传到Linux上 2.解压文件 tar zxvf hbase-2.2.7-bin.tar.gz -C ../ ../是解压到的路径 1.2 配置文件 1.配置环境变量 去etc/profile目录下 export HBASE_HOME/usr/local/soft/hbase-2.2.7 export PATH$PATH:$H…

Midjourney 实现角色一致性的新方法

AI 绘画的奇妙之处&#xff0c;实乃令人叹为观止&#xff01;就像大千世界中&#xff0c;寻不见两片完全相同的树叶一般&#xff0c;AI 绘画亦复如是。同一提示之词&#xff0c;竟能催生出千变万化的图像&#xff0c;使得AI所绘之作&#xff0c;宛如自然之物般独特&#xff0c;…

在报表控件 FastReport .NET 中使用 PageCreate 事件

FastReport Business Graphics .NET&#xff0c;是一款基于fastreport报表开发控件的商业图形库&#xff0c;借助 FastReport 商业图形库&#xff0c;您可以可视化不同的分层数据&#xff0c;构建业务图表以进行进一步分析和决策。利用数据呈现领域专家针对 .NET 7、.NET Core、…

使用Android studio,安卓手机编译安装yolov8部署ncnn,频繁出现编译错误

从编译开始就开始出现错误&#xff0c;解决步骤&#xff1a; 1.降低graddle版本&#xff0c;7.2-bin --->>> 降低为 6.1.1-all #distributionUrlhttps\://services.gradle.org/distributions/gradle-7.2-bin.zip distributionUrlhttps\://services.gradle.org/di…

【论文阅读】RS-Mamba for Large Remote Sensing Image Dense Prediction(附Code)

论文作者提出了RS-Mamba(RSM)用于高分辨率遥感图像遥感的密集预测任务。RSM设计用于模拟具有线性复杂性的遥感图像的全局特征&#xff0c;使其能够有效地处理大型VHR图像。它采用全向选择性扫描模块&#xff0c;从多个方向对图像进行全局建模&#xff0c;从多个方向捕捉大的空间…

Vue的生命周期的详解

Vue的生命周期是每个使用Vue框架的前端人员都需要掌握的知识&#xff0c;以此作为记录。 Vue的生命周期就是vue实例从创建到销毁的全过程&#xff0c;也就是new Vue() 开始就是vue生命周期的开始。Vue 实例有⼀个完整的⽣命周期&#xff0c;也就是从开始创建、初始化数据、编译…

基于51单片机点滴输液控制系统LCD显示( proteus仿真+程序+设计报告+讲解视频)

基于51单片机点滴输液控制系统LCD显示 1. 主要功能&#xff1a;2. 讲解视频&#xff1a;3. 仿真设计4. 程序代码5. 设计报告6. 设计资料内容清单&&下载链接 基于51单片机点滴输液控制系统LCD显示( proteus仿真程序设计报告讲解视频&#xff09; 仿真图proteus7.8及以上…

基于开源IM即时通讯框架MobileIMSDK:RainbowChat v11.5版已发布

关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架&#xff0c;超轻量级、高度提炼&#xff0c;一套API优雅支持UDP 、TCP 、WebSocket 三种协议&#xff0c;支持iOS、Android、H5、小程序、Uniapp、标准Java平台&#xff0c;服务端基于Netty编写。 工…

09 SQL进阶 -- SQL高级处理 -- 窗口函数等

1. 窗口函数 1.1 窗口函数概念及基本的使用方法 窗口函数也称为 OLAP 函数。OLAP 是 OnLine AnalyticalProcessing 的简称,意思是对数据库数据进行实时分析处理。 为了便于理解,称之为窗口函数。常规的 SELECT 语句都是对整张表进行查询,而窗口函数可以让我们有选择的去某…

创建一个javascript公共方法的npm包,js-tool-big-box,发布到npm上,一劳永逸

前端javascript的公共方法太多了&#xff0c;时间日期的&#xff0c;数值的&#xff0c;字符串的&#xff0c;搞复制的&#xff0c;搞网络请求的&#xff0c;搞数据转换的&#xff0c;几乎就是每个新项目&#xff0c;有的拷一拷&#xff0c;没有的继续写&#xff0c;放个utils目…

每日一题---OJ题: 用队列实现栈

片头 嗨! 小伙伴们,大家好! 今天我们一起来看看这道OJ题---用队列实现栈,话不多说,我们马上开始~ emmm,题目看似有点长,我们一起来分析分析! 我们都知道,栈的特点是后进先出(Last In First Out,简称 LIFO ),队列的特点是先进先出(First In First Out 简称 FIFO),明明两者的性…