SRGAN 使用指南:将低分辨率图像转换为高分辨率图像

2023-11-29 10:52

本文主要是介绍SRGAN 使用指南:将低分辨率图像转换为高分辨率图像,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SRGAN、ESRGAN、Real-ESRGAN 使用指南

    • SRGAN
      • 网络结构
      • 优化目标
    • ESRGAN
    • Real-ESRGAN

 


SRGAN

超分辨率:从低分辨率(LR)图像来估计其对应高分辨率(HR)图像的任务,被称作超分辨率(SR)。

SRGAN 图像超分辨率的深度学习模型,通过生成对抗网络(GAN)的训练,将低分辨率图像转换为高分辨率图像。

SRGAN 项目代码:https://github.com/tensorlayer/srgan

网络结构

分为 2 部分:

  • 生成器:残差模块(不改特征分辨率,图中的 B 个残差块)+ 上采样模块(提高分辨率,图中的反卷积层、重建层)
  • 判别器:卷积层(通道数不断增加,通道数增加一倍,特征分辨率减一半)

    上采样模块是,亚像素卷积上采样模块,通过卷积和像素重排操作实现上采样,可以保持图像的细节信息。

不是普通的上采样层,通过插值算法实现上采样,简单但可能会导致图像的细节信息丢失。

优化目标

分为 3 部分:感知损失、内容损失、对抗损失。

  • 感知损失 是基于感知质量评价指标(使用预训练的感知质量评价网络(如VGG网络)中的特征提取器来提取生成图像和真实图像的特征,并计算它们之间的欧氏距离)计算的。测量生成图像与真实高分辨率图像之间的感知差异。具体而言,通过计算生成图像和真实图像在特征空间中的距离,可以评估它们的相似性。感知损失帮助生成器学习到更接近真实图像的内容和结构

  • 内容损失 是基于均方误差(MSE)计算的。它测量生成图像与真实高分辨率图像之间的像素级差异。内容损失帮助生成器学习到更接近真实图像的细节和颜色

  • 对抗损失 是对抗性损失是通过判别器网络来评估生成图像的真实性,用于指导生成图像更逼真的外观和纹理

 


感知损失:内容损失 + 对抗性损失 × 权重

l S R l^{SR} lSR l X S R l_{\mathbf{X}}^{SR} lXSR 是同一个损失函数 l 的不同形式或表示。

l S R l^{SR} lSR 是总体损失函数,包括了两个部分: l X S R l_{\mathbf{X}}^{SR} lXSR 1 0 − 3 l G e n S R 10^{-3}l_{Gen}^{SR} 103lGenSR

  • 表示生成器网络的整体损失,用于优化生成器网络的训练。

l X S R l_{\mathbf{X}}^{SR} lXSR 是生成图像与真实高分辨率图像之间的差异损失函数。

  • 用于度量生成图像与真实图像之间的差异,并作为总体损失的一部分,目标是使生成图像尽可能接近真实高分辨率图像。

l X S R l_{\mathbf{X}}^{SR} lXSR 1 0 − 3 l G e n S R 10^{-3}l_{Gen}^{SR} 103lGenSR 是分别计算两个部分的损失函数,并根据一定的权重进行加权求和,得到总体损失函数 l S R l^{SR} lSR

  • 目的是平衡两个部分的重要性,使得生成器网络能够同时优化生成图像与真实图像之间的差异,并通过判别器网络的误分类来提高生成器的性能。

 


内容损失(基于VGG特征空间):将生成器得到ISR图像与IHR图像输入VGG-19网络,对每一层的特征映射计算欧式距离。

 


对抗损失:通过添加Gan生成网络损失,鼓励网络欺骗鉴别器。

 


ESRGAN

 


Real-ESRGAN

这篇关于SRGAN 使用指南:将低分辨率图像转换为高分辨率图像的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/432546

相关文章

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

sqlite3 命令行工具使用指南

《sqlite3命令行工具使用指南》本文系统介绍sqlite3CLI的启动、数据库操作、元数据查询、数据导入导出及输出格式化命令,涵盖文件管理、备份恢复、性能统计等实用功能,并说明命令分类、SQL语... 目录一、启动与退出二、数据库与文件操作三、元数据查询四、数据操作与导入导出五、查询输出格式化六、实用功

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c

在Java中将XLS转换为XLSX的实现方案

《在Java中将XLS转换为XLSX的实现方案》在本文中,我们将探讨传统ExcelXLS格式与现代XLSX格式的结构差异,并为Java开发者提供转换方案,通过了解底层原理、性能优势及实用工具,您将掌握... 目录为什么升级XLS到XLSX值得投入?实际转换过程解析推荐技术方案对比Apache POI实现编程

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

c/c++的opencv图像金字塔缩放实现

《c/c++的opencv图像金字塔缩放实现》本文主要介绍了c/c++的opencv图像金字塔缩放实现,通过对原始图像进行连续的下采样或上采样操作,生成一系列不同分辨率的图像,具有一定的参考价值,感兴... 目录图像金字塔简介图像下采样 (cv::pyrDown)图像上采样 (cv::pyrUp)C++ O