前言
使用PaddleHub进行超分辨率生成。(Super Resolution)顾名思义就是对图像的分辨率进行放大。
一、安装PaddleHub
在百度AI Studio上输入:
!pip install paddlehub==1.8.2
二、图像超分辨率模型
目前PaddleHub中提供了如下4个图像超分辨率模型的预训练模型,目前所有模型均只支持将图像进行两倍超分辨的操作。
DCSCN(Fast and Accurate Image Super Resolution by Deep CNN with Skip Connection and Network in Network):
FALSR(Fast, Accurate and Lightweight Super-Resolution models)
三、代码
%env CUDA_VISIBLE_DEVICES=0
import paddlehub as hub
import cv2
import os
# 加载模型
# 可根据需要更换上述模型中的任何一个
module_name = 'falsr_c'
sr_model = hub.Module(module_name)
# 设置图像路径
# 可同时预测多张图片
def Born(mypaths):
# 调用预测接口
res = sr_model.reconstruct(
images=None,
paths=mypaths,
use_gpu=True,
visualization=True,
output_dir='%s_output' % module_name
)
def read_path(file_pathname):
#遍历该目录下的所有图片文件
for filename in os.listdir(file_pathname):
# print(filename)
print(file_pathname+'/'+filename)
Born([file_pathname+'/'+filename])
read_path("/home/aistudio/JPEGImages")
预测函数reconstruct参数如下:
images (list[numpy.ndarray]): 图片数据,ndarray.shape 为 [H, W, C],BGR格式
paths (list[str]): 图片的路径
use_gpu (bool): 是否使用 GPU预测,如果使用GPU预测,则在预测之前,请设置CUDA_VISIBLE_DEVICES环境变量,否则不用设置
visualization (bool): 是否将识别结果保存为图片文件
output_dir (str): 图片的保存路径
总结
能够实现文件夹内所有图片超分辨率生成新图片。
output文件夹即生成的图片文件。