首先,先了解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

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

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

  1. deepfake 图片_DeepFake克星来了!简单2步算法,造假图像无处可逃

      新智元报道   来源:IEEE Spectrum 编辑:金磊 [新智元导读]DeepFake最近成了热点,也带来不少担忧.近期,针对DeepFake可能带来的负面影响,研究人员开发了一个基于神经网 ...

  2. NIPS 2018 | 中科院自动化所两篇入选论文:高清真实图像生成领域及GAN研究在人脸识别领域的进展...

    [论文一]自动化所在高清真实图像生成领域获得新突破 IntroVAE: Introspective Variational Autoencoders for Photographic Image Sy ...

  3. SIFT算法详解——图像特征提取与匹配

    文章目录 前言 一.建立高斯差分金字塔 1.建立高斯金字塔 2.建立高斯差分金字塔 3.建塔过程中参数的设定及相关细节问题 二.关键点(key points)位置确定 1.阈值化 2.在高斯差分金字塔 ...

  4. opencv之分水岭算法分割及图像修补

    1)分水岭算法 原理: 任何一幅灰度图像都可以被看成是拓扑平面,灰度值高的区域可以被看成是山峰,灰度值低的区域可以被看成是山谷,我们向每一个山谷中灌不同颜色的水,随着水位的升高,不同山谷的水就会相遇汇 ...

  5. 卷积神经网络:VGG16 是基于大量真实图像的 ImageNet 图像库预训练的网络

    卷积神经网络:VGG16 是基于大量真实图像的 ImageNet 图像库预训练的网络 图片输入->卷积->填充(Padding)->池化(pooling)->平坦(Flatte ...

  6. 迭代阈值分割算法(处理图像)

    **1.算法原理简述**        迭代法求取阈值进行图像分割:它的主要思想是:图像分割后的两部分A和B的均值和基本保持稳定.也就是说,随着迭代的进行,取 [mean(A)+mean(B)]/2 ...

  7. java实现红包要多少钱_JAVA实现简单抢红包算法(模拟真实抢红包)

    闲来无事,最近项目需求要写出用户登录首页来发现金红包,没有限额.我就自己稍微计算了一下如果有限额该怎么写.觉得这样与微信红包差不多.等项目需求完成以后.正好来博客贴一下我自己写的拆红包算法.个人觉得这 ...

  8. OpenCV4.5.5学习笔记(十七):分水岭算法watershed(),图像修补inpaint()

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.分水岭算法watershed() 二.图像修补inpaint() 总结 前言 笔者本科时候有幸接触了OpenCV3 ...

  9. ITK系列20_ 区域增长(OTSU算法)对PNG图像进行多阈值二维分割

    实例20 OTSU算法对PNG图像进行多阈值二维分割 #include "itkOtsuMultipleThresholdsCalculator.h"//包含头文件#include ...

最新文章

  1. 新手学习单片机最常见的六大误区,你进坑了吗?
  2. 11大领域148个热点和新兴前沿发布!有你的化学与材料研究方向吗?
  3. 基于SLP协议的BCH黑客马拉松即将开展
  4. 虚拟机7.1.4序列号
  5. django-模型类操作-初期阶段-小结
  6. 计算机网络转本文科,江苏专转本计算机经验总结
  7. NodsJs第六天笔记
  8. selenium自动化之元素高亮显示
  9. MyEclipse或Eclipse中工程的导入和导出
  10. SpringMVC中请求的转发和重定向
  11. PHP面向对象笔记(兄弟连)
  12. wav怎么转换成mp3?
  13. 什么是等保三级?基本流程是什么样的?
  14. 计算机英语六级时间,计算机一级考试_6月英语六级报名时间
  15. Phaser用法详解
  16. 松下MINAS-A6伺服电机调试记录
  17. 《LDAP》LDAP自定义objectclass和属性
  18. 金融工程学(三):远期和期货的定价
  19. Spring Boot 无侵入式 实现API接口统一JSON格式返回
  20. autoHotkey — 连击/双击/重复 按键触发

热门文章

  1. mac虚拟摄像头插件_Mobiola WebCamera(网络虚拟摄像头) V2.4 Mac版
  2. 为什么c语言没有输出
  3. 正定矩阵的定义与性质
  4. 【leetcode刷题】70.最少操作使数组递增——Java版
  5. 省钱技巧有那些?省钱小分队
  6. 开启人工智能教育结合的未来模式
  7. this.$emit is not a function
  8. unity实现神笔马良效果
  9. Installing Db2 on-prem on CentOS 7
  10. 销售订单行项的成本估算及其发布