超分辨率重建测试(DASR)
测试链接:GitHub - LongguangWang/DASR: [CVPR 2021] Unsupervised Degradation Representation Learning for Blind Super-Resolutionhttps://github.com/LongguangWang/DASR
0.环境
windows10系统,python3.7.0,我这个是pytorch的虚拟环境,我这边基环境是CUDA11.1,python3.7.3,为了不破坏原有环境,建议你们也装虚拟环境
这个环境有点老了,但请务必保持一致,新版本跑不了,尤其pytorch的版本不能大于1.1.0,至少我测试的是这个版本,在问答里原作者也说了版本号,在虚拟环境安装好以后,最好通过:
conda install pytorch==1.1.0 torchvision==0.3.0 -c pytorch -c conda-forge 的方式安装训练环境,这样会自动为你配置CUDA10.0。
1.数据准备
我的数据是人脸,我框出来的部分是代码识别的标识,最好一致,不然要去改代码,反正图片放自己的就行了。数据准备好基本就可以训练了。
2.训练
python .\main.py --dir_data=./datasets/ --model=blindsr --scale=4 --blur_type=aniso_gaussian --noise=25.0 --lambda_min=0.2 --lambda_max=4.0
参数的意义在option.py文件里面已经有说明了,这里就不多说了,这里再次强调下,如果不想改代码,数据的路径./datasets(这是我的存放位置)里面文件必须是DF2K/HR
scale 这里4的意思就是最后模型预测的时候你给256的图像,输出的是1024大小的图像
blur_type的意思是你给的数据集会处理成对应的低质量图像,并且和你的数据集一起放进模型训练,这也是这篇文章无监督的体现,只需要给训练图,标签自动生成,生成方式给了几种在option.py中也有说明的
另外训练结果如模型、参数配置等文件都会自动创建,在./experiment中
训练过程的样子:
3.预测
python quick_test.py ----img_dir=./datasets/test_lr/0.png --scale=4 --resume=197 --blur_type=aniso_gaussian
这里采用quick_test.py快速测试单张图片的效果,输出位置自动存到训练时创建的文件中,resume给的是epoch值,也就是用哪一个epoch的模型做预测,其它参数和训练时保持一致
原图(1024*1024)
测试图(256*256)
测试图resize(1024*1024)
预测输出图(1024*1024)
256低质量的测试图(左)与输出结果resize成256后(右)的对比
说明:测试图用的是欧美人脸,训练图用的是亚洲人脸,测试图是加了高斯噪声变模糊的,测试图生成的代码为
import os
import cv2
import numpy as nppath = './DASR-main/datasets/test/'
save = './DASR-main/datasets/test_lr/'
imgs = os.listdir(path)for im in imgs:name = im.split('.')[0]im_full = os.path.join(path, im)img = cv2.imread(im_full)im_resize = cv2.resize(img, (256,256), interpolation=cv2.INTER_NEAREST)re_path = os.path.join(save,im)# cv2.imwrite(re_path,im_resize)save_full = os.path.join(save,im)im_ga = cv2.GaussianBlur(im_resize, (5, 5), 0)cv2.imwrite(save_full, im_ga)
结束:其实对比resize以后的图和预测输出图就很明显的看到,小图放大了肯定变模糊,而重建却基本能保证足够的清晰,多少还是有点效果的。和上一篇博客一样,这里用的也只是标准的高清正面照,而作者无监督的方式也是通过用高清训练数据人为降低了图像质量产生了对应的标签来训练模型,和自然状态下比如摄像头拍摄出的模糊图像还是有区别,后面再探索。
补充:如果训练遇到以下错误,直接找到data文件夹下的multiscalesrdata.py第153行,改为hr = np.load(_f, allow_pickle=True)[0]['image'], 也就是增加了allow_pickle=True
File "D:\BaiduNetdiskDownload\DASR-main\data\multiscalesrdata.py", line 153, in _load_filehr = np.load(_f)[0]['image']File "C:\Users\Administrator\AppData\Roaming\Python\Python37\site-packages\numpy\lib\npyio.py", line 444, in loadraise ValueError("Cannot load file containing pickled data "
ValueError: Cannot load file containing pickled data when allow_pickle=False
超分辨率重建测试(DASR)相关推荐
- 视频超分辨率重建测试集下载(VID4数据集、UDM10数据集)
目录 背景 下载地址 背景 视频超分辨率任务中这两个是非常常见的测试集,为了测试模型结果.复现等需要,我花了几分钟找了下并下载下来,上传到百度云,并记录下载地址分享. 下载地址 vid4数据集地址: ...
- 超分辨率重建测试(ESRGAN)
测试链接:GitHub - xinntao/BasicSR: Open Source Image and Video Restoration Toolbox for Super-resolution, ...
- 经典论文复现 | 基于深度学习的图像超分辨率重建
过去几年发表于各大 AI 顶会论文提出的 400 多种算法中,公开算法代码的仅占 6%,其中三分之一的论文作者分享了测试数据,约 54% 的分享包含"伪代码".这是今年 AAAI ...
- 单图像超分辨率重建示例代码解析
昨天发了单图像超分辨率重建示例,今天来对里面主要的Python代码进行讲解,如果有补充或指正,欢迎大家在评论区留言.PS:这里的代码不要直接复制粘贴使用,由于注释的关系可能会报错,建议到示例给出的gi ...
- 超分辨率重建生成低分辨率图像,生成降质图像公认方法代码
目录 1背景 2.BI 3.BD 4.DN 5总结 1背景 超分辨率重建中经典的生成降质图像通常使用MATLAB实现的,通常有四种方法: 类型 说明 BI bicubic-down BD blur-d ...
- 图像超分辨率重建之SRCNN
新版本请访问简书链接:https://www.jianshu.com/p/dfe85a3c2096 图像超分辨率重建:指通过低分辨率图像或图像序列恢复出高分辨率图像.高分辨率图像意味着图像具有更多的细 ...
- 基于SRGAN实现图像超分辨率重建或复原
基于SRGAN实现图像超分辨率重建或复原 2018年04月20日 11:50:26 山水之间2018 阅读数 14064 文章标签: SRGAN图像超分辨率重建 更多 分类专栏: 深度学习 图像处理 ...
- OpenVINO 2021r1 超分辨率重建 INT8量化 - Waifu2x
接下来试试超分的INT8量化, 还是拿waifu2x模型来试验 首先毫无意外的掉进坑里了... ... 本来系统里已经装好了OpenVINO 2021r2, 想直接从这个版本开始,先安装accurac ...
- 图像超分辨率重建算法,让模糊图像变清晰(附数据和代码)
一. 图像超分辨率重建概述 1. 概念 图像分辨率是一组用于评估图像中蕴含细节信息丰富程度的性能参数,包括时间分辨率.空间分辨率及色阶分辨率等,体现了成像系统实际所能反映物体细节信息的能力.相较于低 ...
- 基于深度学习的图像超分辨率重建技术的研究
1 超分辨率重建技术的研究背景与意义 图像分辨率是一组用于评估图像中蕴含细节信息丰富程度的性能参数,包括时间分辨率.空间分辨率及色阶分辨率等,体现了成像系统实际所能反映物体细节信息的能力.相较于低分辨 ...
最新文章
- 嵌入式 hi3518a平台多编码通道同时绑定OSD实现以及反色实现
- 简单自学机器学习理论——正则化和偏置方差的权衡 (Part III )
- 学python推荐书籍-零基础学python推荐几本python学习的书籍
- http中的请求头各部分都是什么意思_30张图讲解HTTP,不信你还不会
- 利用Android NDK编译lapack
- 机器学习——线性回归数学推导
- stderr和stdout(printf、fprintf、sprintf)(转)
- VTK:可视化算法之SpikeFran
- mysql 存储过程 记录是否存在_如何检查MySQL中是否存在存储过程?
- win10 中 如何 按日期 对文件 进行检索(找到目录下,指定日期修改的文件)
- CAD关于线型操作添加线型(com接口c#语言)
- BaseTestCase system 1.0 体验版
- 基于视觉的动态手势轨迹跟踪
- JS使用技巧-如何解决谷歌浏览器下载图片、PDF文档时只打开不下载的问题?
- 在种子轮中,如何区分风险投资、种子投资和天使投资?
- 解忧杂货店 --- 东野圭吾
- 悟空CRM java版(基于jfinal+vue+ElementUI的前后端分离CRM系统)
- 【大屏项目】SpringBoot + Vue 实现的可视化拖拽编辑的
- 如何通过“路缘精细化管理” 缓解城市停车难题
- 《C和指针》阅读笔记
热门文章
- UE4源码下载与配置sin文件
- 如何学习微信小程序? 学习微信小程序所需基础
- 我为什么放弃使用MyBatis3的Mapper注解
- linux下QQ配置文件路径,Linux下QQ的使用并手动设置QQ文件保存路径
- DirectX 9.0c游戏开发手记之RPG编程自学日志之17: Drawing with DirectX Graphics (用DirectX图形绘图)(第13节)
- Codejock.Xtreme.Toolkit.Pro.v15.3.1 for MFC 15种皮肤切换
- iPhone越狱后,常见路径大全
- LR11安装报错:此计算机上缺少vc2005_sp1_with_atl_fix_redist,请安装所有缺少的必要组件,然后重新运行此安装。
- 为什么土豆网王微会放弃自己原有的立场,跟优酷合并 合并后有何影响
- c语言编译器pellc,单片机C语言程序的设计实训100例_基于8051+PROTEUS仿真1