增大图像分辨率,让图像更清晰

本文所涉及所有资源均在    传知代码平台可获取。

目录

概述

低分辨率图像

高分辨率图像

演示效果

论文解读

背景描述

ESRGAN模型背景与优势

BSRGAN模型背景与动机

模型结构与核心思想

ESRGAN

BSRGAN

使用方式(论文复现)

1.下载附件(附件中提供源码)

2.在服务器中创建环境

3.创建环境并激活

4.设置配置文件

5.修改main_train_gan.py里面的配置文件路径

6.训练模型

图像测试

部署方式

概述

超分辨率(Super-Resolution),简称超分(SR)。是指利用光学及其相关光学知识,根据已知图像信息恢复图像细节和其他数据信息的过程,简单来说就是增大图像的分辨率,从模糊的低分辨率图像中重建出清晰度高、细节饱满的高分辨率图像。

分辨率是描述图像清晰度的一个重要参数,它通常通过两个维度来定义:水平分辨率和垂直分辨率。这两个维度的乘积(即像素总数)决定了图像的总体分辨率。例如,一个800x600像素的图像,其分辨率就是800乘以600,即480,000像素。相比之下,一个更高分辨率的图像,如1920x1080(也称为1080p或全高清),将包含更多的像素(2,073,600像素),从而提供更清晰、更详细的图像。

低分辨率图像

低分辨率图像是指图像中像素的密度较低,即每英寸或每厘米包含的像素点数量较少,因此图像的细节和清晰度相对较低。这种图像在视觉上会显得较为模糊或粗糙,特别是在与高分辨率图像进行对比时更为明显。

在超分辨率任务中,低分辨率图像一般都是通过图像退化并加入噪声合成得到的,退化模型在下面会提到。

低分辨率图像可能由于多种原因而产生,包括但不限于:

1.图像捕获设备:使用较低质量的相机或摄像头拍摄时,可能会生成低分辨率的图像。

2.图像压缩:为了减小文件大小以便于存储或传输,图像可能会被压缩,这可能会导致分辨率的降低。

3.显示设备:在低分辨率的显示设备上查看高分辨率图像时,图像可能会以较低的分辨率显示,以适应设备的显示能力。

4.图像编辑:在图像编辑过程中,如果进行了不恰当的缩放或裁剪操作,也可能导致图像分辨率的降低。高分辨率图像

高分辨率图像是指图像中像素的密度非常高,即每英寸或每厘米包含的像素点数量较多,从而能够提供更清晰、更详细和更逼真的图像显示效果。高分辨率图像能够捕捉到更多的细节和细微差别,使得图像在放大后依然保持清晰,不会出现模糊或锯齿状边缘。

高分辨率图像通常用于需要高精度和高质量图像的场景,如专业摄影、影视制作、广告设计、医疗成像、科学研究和地理信息系统等领域。在这些领域中,高分辨率图像能够提供更多的信息,帮助用户进行更精确的分析和判断。

演示效果

论文解读

在本章节中主要介绍ESRGAN和BSRGAN两篇论文,代码实现结合了两篇论文的创新。

ESRGAN(Enhanced Super-Resolution Generative Adversarial Network)是一种用于图像超分辨率增强的深度学习模型,它基于生成对抗网络(GAN)的原理,旨在通过训练生成模型来提高图像的细节和清晰度。

BSRGAN(Designing a Practical Degradation Model for Deep Blind Image Super-Resolution)设计一个能够处理更广泛退化类型的深度盲图像超分辨率模型,作者提出了一个更复杂但实用的退化模型。

背景描述

ESRGAN模型背景与优势

1.背景:ESRGAN是香港中文大学(深圳)本科生在ECCV 2018会议上提出的方法,该方法在PIRM 2018-SR比赛中取得了冠军,并获得了最佳感知指数。

  1. 优势:相比于传统的图像超分辨率算法和早期的SRGAN模型,ESRGAN能够生成更多自然且细致的纹理细节,同时减少了噪声。

BSRGAN模型背景与动机

1.背景:传统的图像超分辨率(SISR)方法通常基于预设的退化模型(如双三次插值下采样)进行训练,然而这些预设模型往往与真实世界中的图像退化方式不匹配,导致模型性能下降。

  1. 动机:为了设计一个能够处理更广泛退化类型的深度盲图像超分辨率模型,作者提出了一个更复杂但实用的退化模型。

模型结构与核心思想

ESRGAN

生成器:

网络结构:ESRGAN的生成器部分结合了UNET结构和残差结构,整体采用RRDB(Residual-in-Residual Dense Block)作为新的网络结构单元。RRDB通过引入更多的残差连接和密集连接,增加了网络的深度和复杂性,使得网络能够学习更精细的细节。

删除批量规范化:为了提高模型的稳定性和降低计算成本,ESRGAN移除了批量规范化(Batch Normalization, BN)层。

判别器:

相对生成对抗网络:ESRGAN借鉴了相对生成对抗网络(Relativistic GAN)的思想,让判别器预测相对的真实度而不是绝对的值。这种改进使得判别器在评估生成图像时更加灵活和准确。

Relativistic average Discriminator (RaD):ESRGAN使用RaD作为判别器,通过比较真实图像和生成图像之间的相对真实度来优化生成器。

BSRGAN

提出一种随机置换策略,在处理图像退化问题时,随机置换策略是一种有效的方法来模拟真实世界中复杂的退化过程。这种策略通过随机调整不同退化类型(如模糊、下采样、噪声等)的顺序和参数,从而生成具有广泛覆盖性的退化数据。

随机置换策略的核心思想在于:不是固定地使用某一种或几种固定的退化顺序和参数来生成训练数据,而是随机地选择和调整这些退化因素,以更好地模拟真实世界中的复杂退化情况。在随机置换策略中,通常会考虑以下几种主要的退化类型:

1.模糊(Blur):

各向同性高斯模糊:模拟均匀的模糊效果。

各向异性高斯模糊:模拟非均匀的模糊效果,更接近真实世界中的模糊情况。

2.下采样(Downsampling):

最近邻插值:简单但效果较差的插值方法。

双线性插值:效果优于最近邻插值。

双三次插值:效果最佳但计算量最大。

上下缩放:先通过一种插值方法下采样,再通过另一种插值方法上采样,模拟更复杂的退化过程。

3.噪声(Noise):

高斯噪声:模拟常见的加性噪声。

JPEG压缩噪声:模拟JPEG压缩过程中产生的噪声。

传感器噪声:模拟相机传感器在成像过程中产生的噪声,具有信号依赖性和非均匀性。

模型在训练过程中采用了随机置换策略来生成训练数据。具体来说,模糊、下采样和噪声的顺序以及每种退化类型的具体参数都是随机选择的。这种策略使得模型能够处理多种退化类型的图像,并在实验中表现出了优异的性能。

使用方式(论文复现)

1.下载附件(附件中提供源码)

训练数据集采用公开数据集DIV2K和Flickr2K,下载链接如下:

DIV2K:https://data.vision.ee.ethz.ch/cvl/DIV2K/

Flickr2K:http://cv.snu.ac.kr/research/EDSR/Flickr2K.tar

将下载好的两个数据集合并为一个文件夹DF2K

下载好后的数据集,将这两个文件夹下的图像全都拷贝到DF2K文件夹下的HR文件夹中,并上传服务器。

2.在服务器中创建环境

上传代码文件和数据集文件到服务器端,并切换目录到Super-Resolution文件夹下

3.创建环境并激活

# 创建环境
conda create -n Super-Resolution python==3.7.16

# 激活环境
conda activate Super-Resolution

# 安装所需库环境
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

# 安装所需natsort包
pip install natsort -i https://pypi.tuna.tsinghua.edu.cn/simple

4.设置配置文件

配置文件在Super-Resolution/options/文件夹下,一共包含了两个配置文件,如图所示:

train_bsrgan_x4_gan.json:该配置文件能够产生视觉效果更好的图像。

train_bsrgan_x4_psnr.json:该配置文件能够产生更高的指标值。

打开train_bsrgan_x4_gan.json文件(这里仅介绍该配置文件)

在配置文件中主要修改以下参数即可

“gpu_ids”: [0,1] // 选择显卡id

“scale”: 4 //设置超分倍数,这里选择4倍

“dataroot_H”: “…/DF2k/HR/” //选择数据集路径(在train字典下)

“dataroot_H”: “…/DF2k/HR/” //设置测试集路径(在test字典下)

“dataloader_batch_size”: 2 //设置batch_size大小

5.修改main_train_gan.py里面的配置文件路径

这里采用的相对路径,一般不需要修改。6.训练模型

python main_train_gan.py

训练完成之后,模型文件都会保存在/superresolution/bsrgan_x4_gan/models/文件夹下

图像测试

权重文件下载地址:https://drive.google.com/drive/folders/13kfr3qny7S2xwG9h7v95F5mkWs0OmU0D

将上面训练好的模型拷贝到Super-Resolution/model_zoo/文件夹下,在测试时需要修改image_test.py里面的路径信息,如下图所示:

python image_test.py

部署方式

python 3.7, Pytorch

使用Linux系统安装requirements.txt环境,在复现部分已经详细说明

感觉不错,点击我,立即使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿追

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值