一文教你使用图像超分辨率模型(针对小白,不训练)

一文教你使用图像超分辨率模型

前言

笔者最近负责了一下图像超分辨率的技术调研。个人觉得图像超分辨率这个技术挺有用的,便做一个简单的分享。针对小白,且仅分享如何使用。
也就是把这张图超分辨了。

图像超分辨率是什么?

图像的超分辨率算法指的是将给定的低分辨率图像通过特定的算法恢复成相应的高分辨率图像。效果大概是这样和这样的。

一文教你使用图像超分辨率模型(针对小白,不训练)

; 超分辨率有什么用?

用处就太多了。你的一张照片有点糊,但又想把这个照片做为屏保或者想看清楚照片的某些地方。

开始使用

下载代码

从github上下载大佬的代码及训练好的模型
打开cmd,cd到你想保存的目录。

一文教你使用图像超分辨率模型(针对小白,不训练)
接着输入
git clone https://github.com.cnpmjs.org/krasserm/super-resolution.git

原下载地址是
https://github.com/krasserm/super-resolution.git
后面加了.cnpmjs.org,速度会变快

下载模型

点这个网址自动进入下载https://martin-krasser.de/sisr/weights-edsr-16-x4.tar.gz
解压后得到一个weights文件夹。将这个文件夹里的”edsr-16-x4″文件夹放入项目的weights文件夹内

一文教你使用图像超分辨率模型(针对小白,不训练)

; 直接使用

方法一,打开”example-edsr.ipynb”
运行EDSR内的代码,以及最后的Demo代码。
方法二,
看下面代码

import os
import matplotlib.pyplot as plt
from data import DIV2K
from model.edsr import edsr
from train import EdsrTrainer
from model import resolve_single
from utils import load_image, plot_sample

depth = 16

scale = 4

downgrade = 'bicubic'

weights_dir = f'weights/edsr-{depth}-x{scale}'
weights_file = os.path.join(weights_dir, 'weights.h5')
os.makedirs(weights_dir, exist_ok=True)
model = edsr(scale=scale, num_res_blocks=depth)
model.load_weights(weights_file)

lr = load_image('demo/0829x4-crop.png')
sr = resolve_single(model, lr)

plot_sample(lr, sr)

import cv2
sr_cv=sr.numpy()[...,::-1]
cv2.imwrite("demo/08691-crop.png",sr_cv)

效果展示

选择一张图片。
那么超分辨后,图像是这样。
整体看没什么差别,但是我们用别的软件放大了看的话,就会有区别了。如图,左边是没超分辨的,右边是超分辨的了。

一文教你使用图像超分辨率模型(针对小白,不训练)

; 结束语

对了,电脑不好的话,有可能会卡死,建议换个小尺寸的图片测试
喜欢就点个赞和关注咯。感谢各位。

一文教你使用图像超分辨率模型(针对小白,不训练)

Original: https://blog.csdn.net/qq_37924224/article/details/118256391
Author: 西瓜6
Title: 一文教你使用图像超分辨率模型(针对小白,不训练)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/521007/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球