Real-ESRGAN
Un escalador de superresolución ciega pensado para uso real, entrenado con degradaciones sintéticas en lugar de solo con reducción bicúbica. LibreYOLO incluye inferencia y validación para sus checkpoints 4x, 2x y 4x rápido.
- Tareas
- restore
- Tamaños
- x4, x2, x4t at 64 px
- Instalación
pip install libreyolo- Nivel de compatibilidad
- Solo inferencia, desde v. Solo permite predecir, validar y exportar. Las funciones de entrenamiento no se aplican.
- Proyecto original
- Real-ESRGAN de Tencent ARC Lab and Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, BSD-3-Clause. Artículo, fuente
- Licencias
- Código Apache-2.0 and BSD-3-Clause, pesos BSD-3-Clause. Uso comercial
Instalación
Real-ESRGAN no necesita ningún extra opcional. Todo lo que importa está en la instalación base.
pip install libreyoloPredicción
Los pesos se descargan de Hugging Face en el primer uso y se guardan en la caché local.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreRealESRGANx4-restore.pt")result = model(SAMPLE_IMAGE, save=True) restored = result.restoredprint(restored.array.shape, restored.array.dtype)libreyolo predict model=LibreRealESRGANx4-restore.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom libreyolo import LibreYOLO model = LibreYOLO("LibreRealESRGANx4-restore.pt") # tile divide el forward pass en tiles solapados y funde de nuevo# las costuras; tile_pad es el halo que se añade alrededor de cada# tile antes de recortarlo de vuelta. Ambos son argumentos con# nombre solo de Python, no flags de la CLI.result = model("large-photo.jpg", tile=512, tile_pad=10, save=True)Un resultado de restauración no lleva cajas; result.restored es una imagen
RGB densa (H, W, 3) uint8, sobre un lienzo Results.restore_scale veces el
de entrada en cada dimensión. save=True escribe esa imagen directamente en
lugar de un gráfico anotado. La entrada se convierte a RGB y se descarta
cualquier canal alfa. Una fuente más grande de lo que permite la memoria se
puede dividir con tile y tile_pad, que funden de nuevo las costuras de los
tiles en la salida. Consulta predicción para fuentes,
streaming y manejo de resultados.
Variantes
Tres checkpoints, nombrados por su factor de escalado. x4 es RRDBNet
(RealESRGAN_x4plus), 23 bloques densos residual-in-residual, la opción por
defecto de calidad a 4x. x2 es la misma arquitectura RRDBNet a 2x. x4t es
SRVGGNetCompact (realesr-general-x4v3), un generador más pequeño y rápido
construido para vídeo y usos de menor latencia a 4x. El modelo general del
proyecto original incluye además una red emparejada de fuerza de denoise que se
mezcla en el momento de la inferencia; ese control de fuerza no forma parte de
este port, que ejecuta el generador x4t base.
Validación
val() mide PSNR y SSIM entre la salida restaurada y una imagen objetivo
limpia, ambas calculadas en RGB sobre el lienzo original, sin recorte de bordes
y sin redimensionar. SSIM usa una ventana gaussiana de 11x11 con sigma 1.5,
promediada sobre los tres canales de color.
from libreyolo import LibreYOLO model = LibreYOLO("LibreRealESRGANx4-restore.pt")metrics = model.val(data="my-restore-dataset.yaml") print(metrics["metrics/PSNR"])print(metrics["metrics/SSIM"])libreyolo val model=LibreRealESRGANx4-restore.pt data=my-restore-dataset.yamlEl argumento de dataset es un YAML que empareja un directorio de imágenes de entrada degradadas con un directorio de imágenes objetivo limpias de la misma resolución; consulta formatos de dataset para las claves exactas.
Exportación
| Tarea | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| restore | restore to ONNX: compatible | restore to TorchScript: compatible | restore to ExecuTorch: compatible | restore to TensorRT: compatible | restore to OpenVINO: compatible | restore to Paddle: no compatible | restore to MNN: no compatible | restore to RKNN: no compatible | restore to ncnn: compatible | restore to TFLite: compatible | restore to CoreML: no compatible | restore to Core AI: compatible |
Un artefacto exportado se vuelve a cargar con LibreYOLO() según su extensión
de archivo, así que un archivo .onnx o .engine se comporta como un
checkpoint y devuelve el mismo Results. Exportación enumera
los argumentos que acepta cada formato y los extras que añaden unos pocos.
from libreyolo import LibreYOLO model = LibreYOLO("LibreRealESRGANx4-restore.pt") # si se omite, imgsz toma por defecto un tamaño de patch interno# pequeño, no tu resolución de trabajo, así que pasa el tamaño que# tu despliegue le da realmente al modelo.model.export(format="onnx", imgsz=512)model.export(format="tensorrt", imgsz=512, half=True)libreyolo export model=LibreRealESRGANx4-restore.pt format=onnx imgsz=512from libreyolo import LibreYOLO, SAMPLE_IMAGE # La factoría enruta según la extensión del archivo, así que un# artefacto exportado se carga como cualquier checkpoint y devuelve# el mismo objeto Results.model = LibreYOLO("LibreRealESRGANx4-restore.onnx")result = model(SAMPLE_IMAGE) print(result.restored.array.shape)Checkpoints
Todos los archivos de pesos publicados de esta familia.
| Archivo | Entrada (px) | Licencia de los pesos |
|---|---|---|
| restore | ||
| LibreRealESRGANx4t-restore.pt | bsd-3-clause | |
| LibreRealESRGANx4-restore.pt | bsd-3-clause | |
| LibreRealESRGANx2-restore.pt | bsd-3-clause | |
Todos los archivos anteriores existen hoy en la organización de LibreYOLO y se descargan la primera vez que se usan.
Licencia
Comprueba la licencia en el repositorio de Hugging Face de los pesos concretos que descargues. Cada checkpoint de la organización de LibreYOLO incluye una, y no siempre es la misma en toda una familia. Ese repositorio es la fuente autorizada; el resumen siguiente describe qué se aplicaba cuando se verificó esta página por última vez.
Esta es una descripción de las licencias implicadas, no asesoramiento legal. Si la respuesta es importante a nivel comercial, lee las licencias y busca tu propio asesoramiento.
- Trabajo original
- Real-ESRGAN, Tencent ARC Lab and Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences
- Licencia del proyecto original
- BSD-3-Clause
- Fuente del proyecto original
- github.com/xinntao/Real-ESRGAN
- Código de LibreYOLO
- MIT
- Pesos
- BSD-3-Clause, republicados en huggingface.co/LibreYOLO
- Interpretación
- BSD-3-Clause is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep the copyright notice, the condition list and the disclaimer with any copy you redistribute, in source or compiled form, and its third clause forbids using the names of Xintao Wang or the project's contributors to endorse or promote a derived product without separate written permission. It carries no patent grant, unlike Apache-2.0. LibreYOLO's checkpoints are format conversions of the official pretrained generators, with the learned parameters unchanged; Real-ESRGAN's training is a GAN over a synthetic degradation pipeline that is not wired into this library, so there is no LibreYOLO-trained variant to license separately.
Cita
@InProceedings{wang2021realesrgan,
author = {Xintao Wang and Liangbin Xie and Chao Dong and Ying Shan},
title = {Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data},
booktitle = {International Conference on Computer Vision Workshops (ICCVW)},
date = {2021}
}Copiado del bloque de cita de los autores en github.com/xinntao/Real-ESRGAN#bibtex.