Real-SR算法,实现真实图像超高分辨率处理

首先,先了解Real-SR算法:

Real-SR是腾讯优图实验室提出一种新的图像超分辨率算法。该算法在CVPR-NTIRE-2020真实图像超分比赛中以明显优势获得双赛道冠军。

与已有的超分辨率方法相比,RealSR的创新主要体现在三个方面:

1. RealSR采用了自主设计的新型图片退化方法,通过分析真实图片中的模糊和噪声,模拟真实图片的退化过程

2. 不需要成对的训练数据,利用无标记的数据即可进行训练。

3. 可以处理低分辨率图像中的模糊噪声问题,得到更加清晰干净的高分辨结果。

算法的主要步骤可以分为两个模块:退化模型的估计,超分模型的训练。方法框架如下图所示

Real-SR算法,实现真实图像超高分辨率处理_第1张图片

那么应该实现这个算法,用于根据我们的需求训练我们的模型进行研究呢...

先说说我的硬件配置:

CPU:i5 10400F 

NVIDIA 1060 显卡 只有1280个cuda核心

环境问题:

建议使用Real-SR推荐环境

Anaconda + Pytorch + GPU

Demo:

- Python 3 (Recommend to use [Anaconda](https://www.anaconda.com/download/#win))
- [PyTorch >= 1.0](https://pytorch.org/)
- NVIDIA GPU + [CUDA](https://developer.nvidia.com/cuda-downloads)
- Python packages: `pip install numpy opencv-python lmdb pyyaml`
- TensorBoard: 
  - PyTorch >= 1.1: `pip install tb-nightly future`
  - PyTorch == 1.0: `pip install tensorboardX`

 我自己的环境是:

WIN10 + Anaconda 1.7.2(python3.8)+CUDA 11.1+torch  1.8.1+cu111    +    torchaudio 0.8.1    +   torchvision  0.9.1+cu111

这里需要注意的是CUDA的版本选择是要根据自己的显卡来确定的,具体方法:打开NVIDIA控制面板、系统信息、组件。我的显卡显示的是CUDA11.1的驱动,所以我需要下载11.1版本的cudatoolkit,你也可以直接去NVIDIA官方查看自己的cuda版本。

如果安装cuda出现问题,可参考https://blog.csdn.net/qq_27173371/article/details/107104991

配置完环境,就完成了第一步

接下来就是下载Real-SR代码了

https://github.com/Tencent/Real-SR

 国内镜像地址:

https://git.code.tencent.com/Tencent_Open_Source/Real-SR

Real-SR算法,实现真实图像超高分辨率处理_第2张图片

这个文件里有所有需要的配置说明以及Demo

这里我解释一下:

文件内的数据下载地址基本都是google地址,国内访问不了,需要工具,而且速度比较慢。

我们也可以选择下载以及训练好的模型,也可以用腾讯的数据训练自己的模型,当让你也可以用自定义的数据训练自己的模型。

这里,我们要先下载一个与训练模型,收集噪音:

RRDB_PSNR_x4.pth  下载地址:https://download.csdn.net/download/LU__JH/19277804?spm=1001.2014.3001.5501

下载放在pretrained_model文件夹内:

隧道一:df2k

预训练前,要先用原始数据,预处理,得到HR与LR

配置文件在preprocess/path.yml

得到HR与LR后,就要收集噪音了,配置内容也在preprocess/path.yml

这样我们就得到了噪音特征数据集

之后我们就可以进行训练了

目录codes\options\df2k有两个配置文件:train_bicubic_noise.yml 用于设置训练时参数,

test_df2k.yml用于修改测试时参数。

15行 noise_data:  收集到的噪音特征数据PATH

46行 pretrain_model_G: 预训练模型PATH

训练次数是70次,时长约48小时(看个人GPU问题),如训练出现GPU内存报错,修改一下

   train_bicubic_noise.yml 文件内,20行batch_size参数即可,我设置的是4,batch_size其实是指定每次将总数据集划分成多少个等分。约大训练速度越快,但所有显存就约大。

训练结束后,在experiments\Corrupted_noise\models目录会保留最后训练的模型和训练状态。

之后就可以用自己的图片测试模型效果了。

配置文件在:options/df2k/test_df2k.yml

因为篇幅问题,测试效果就不上图了。希望这篇文章能帮到大家.....

 

 

 

你可能感兴趣的:(神经网络,深度学习,pytorch,机器学习)