首先,先了解Real-SR算法:
Real-SR是腾讯优图实验室提出一种新的图像超分辨率算法。该算法在CVPR-NTIRE-2020真实图像超分比赛中以明显优势获得双赛道冠军。
与已有的超分辨率方法相比,RealSR的创新主要体现在三个方面:
1. RealSR采用了自主设计的新型图片退化方法,通过分析真实图片中的模糊和噪声,模拟真实图片的退化过程
2. 不需要成对的训练数据,利用无标记的数据即可进行训练。
3. 可以处理低分辨率图像中的模糊噪声问题,得到更加清晰干净的高分辨结果。
算法的主要步骤可以分为两个模块:退化模型的估计,超分模型的训练。方法框架如下图所示
那么应该实现这个算法,用于根据我们的需求训练我们的模型进行研究呢...
先说说我的硬件配置:
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
这个文件里有所有需要的配置说明以及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
因为篇幅问题,测试效果就不上图了。希望这篇文章能帮到大家.....