一、什么是图像超分辨
图像超分辨是一种技术,旨在通过硬件或软件的方法提高原有图像的分辨率。这一过程涉及从一系列低分辨率的图像中获取一幅高分辨率的图像,实现了时间分辨率向空间分辨率的转换。超分辨率重建的核心思想是利用多帧图像序列的时间带宽来换取空间分辨率的提升。这项技术在多个电子图像应用领域中具有重要意义,如医疗图像、卫星图像和计算机视觉中的模式识别等,其中高分辨率图像能够提供更多的细节,对于做出正确的诊断或提高识别性能至关重要。12
图像超分辨率重建的方法可以分为几种主要类型:
- 基于插值的方法:这些方法实现简单,广泛应用于图像处理,但线性模型的限制使得它们在恢复高频细节方面的能力有限。
- 基于稀疏表示的技术:这类技术通过使用先验知识增强了线性模型的能力,假设自然图像可以被字典的元素稀疏表示,从而学习到低分辨率图像到高分辨率图像的映射。
- 基于深度学习的方法:特别是卷积神经网络(CNN)的应用,如SRCNN模型,通过使用多层网络结构,实现了先进的结果。随后,各种基于深度学习的模型进入超分辨率图像重建领域,追求细节的恢复或降低感知损失为目标。
此外,图像超分辨率重建还包括其他技术,如基于重建的方法和基于学习的方法。基于重建的方法基于均衡及非均衡采样定理,假设低分辨率的输入采样信号能预估出原始的高分辨率信号。而基于学习的方法则是近年来研究的热点,利用大量的高分辨率图像构造学习库,产生学习模型,以获得图像的高频细节和较好的图像恢复效果。
详细的评价准则和重建方法详见下面的链接:
图像超分辨率重建相关概念、评价指标、数据集、模型_super-resolution-CSDN博客
二、基于飞桨框架的超分辨重建
https://github.com/PaddlePaddle/PaddleHub/blob/develop/README_ch.md
超分辨率实现的流程,参考以下链接:
4倍超分辨率
飞桨PaddlePaddle-源于产业实践的开源深度学习平台
2倍超分辨率
飞桨PaddlePaddle-源于产业实践的开源深度学习平台
2.1 环境搭建及运行
## 默认安装CPU版本或者GPU版本,安装paddle时建议使用百度源
pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
# 在命令行中输入以下命令
pip install paddlehub -i https://mirror.baidu.com/pypi/simple
#2倍率增强
import cv2
import paddlehub as hub
# #2倍倍率
sr_model = hub.Module(name='dcscn')
im = cv2.imread('C:/Users/kongxiangnan/Desktop/test/new10.bmp').astype('float32')
#visualization=True可以用于查看超分图片效果,可设置为False提升运行速度。
res = sr_model.reconstruct(images=[im], visualization=True,output_dir='C:/Users/kongxiangnan/Desktop/test/result/')
print(res[0]['data'])
二、 RealESRGAN
论文地址:http://arxiv.org/abs/1609.04802
项目地址:https://github.com/xinntao/Real-ESRGAN
Real-ESRGAN将强大的ESRGAN扩展到一个实际的恢复应用程序,它是用纯合成数据进行训练的。具体地说,引入了一种高阶退化建模过程来更好地模拟复杂的真实世界的退化。还考虑了合成过程中常见的振铃和超调伪影。此外,采用了具有谱归一化的U-Net鉴别器来提高鉴别器能力,稳定训练动力学。广泛的比较表明,它的视觉性能比以前的各种真实数据集的工作。
2.1 Windows环境下快速测试运行
模型下载地址:
https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth
可执行文件下载地址: