SwinIR

Una red Swin Transformer para restauración de imágenes. LibreYOLO incluye inferencia y validación para sus checkpoints de superresolución a 4x: el generador oficial lightweight y los generadores real-world medium y large.

Tareas
restore
Tamaños
s, m, l 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
SwinIR de Computer Vision Lab, ETH Zurich, Apache-2.0. Artículo, fuente
Licencias
Código Apache-2.0, pesos Apache-2.0. Uso comercial

Instalación

SwinIR no necesita ningún extra opcional. Todo lo que importa está en la instalación base.

bash
pip install libreyolo

Predicción

Los pesos se descargan de Hugging Face en el primer uso y se guardan en la caché local.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreSwinIRm-restore.pt")result = model(SAMPLE_IMAGE, save=True) restored = result.restoredprint(restored.array.shape, restored.array.dtype)
CLI
libreyolo predict model=LibreSwinIRm-restore.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True
Por tiles, para imágenes grandes
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwinIRl-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=16, save=True)

Un resultado de restauración no lleva cajas; result.restored es una imagen RGB densa (H, W, 3) uint8, sobre un lienzo 4x el de entrada en cada dimensión. save=True escribe esa imagen directamente en lugar de un gráfico anotado. La entrada se rellena hasta un múltiplo de 8 en vez de redimensionarse, así que la predicción se ejecuta a la resolución propia de la foto; 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 tamaños, todos fijos en un escalado 4x. s es el generador oficial lightweight, con cuatro etapas de bloque residual Swin Transformer (RSTB) y upsampling pixel-shuffle directo. m y l son los generadores real-world medium y large, con seis y nueve etapas RSTB y un upsampler de vecino más cercano más convolución construido para degradaciones del mundo real y no solo para la reducción bicúbica.

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.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwinIRm-restore.pt")metrics = model.val(data="my-restore-dataset.yaml") print(metrics["metrics/PSNR"])print(metrics["metrics/SSIM"])
CLI
libreyolo val model=LibreSwinIRm-restore.pt data=my-restore-dataset.yaml

El 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

TareaONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
restorerestore to ONNX: compatiblerestore to TorchScript: compatiblerestore to ExecuTorch: no compatiblerestore to TensorRT: compatiblerestore to OpenVINO: compatiblerestore to Paddle: no compatiblerestore to MNN: no compatiblerestore to RKNN: no compatiblerestore to ncnn: no compatiblerestore to TFLite: compatiblerestore to CoreML: no compatiblerestore to Core AI: no 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. ExecuTorch y todos los formatos que la matriz marca como bloqueados no están disponibles para esta familia; ONNX, TorchScript, TensorRT, OpenVINO y TFLite sí lo están. Exportación enumera los argumentos que acepta cada formato y los extras que añaden unos pocos.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwinIRm-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)
CLI
libreyolo export model=LibreSwinIRm-restore.pt format=onnx imgsz=512
Usar el archivo exportado
from 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("LibreSwinIRm-restore.onnx")result = model(SAMPLE_IMAGE) print(result.restored.array.shape)

Checkpoints

Todos los archivos de pesos publicados de esta familia.

ArchivoEntrada (px)Licencia de los pesos
restore
LibreSwinIRs-restore.ptapache-2.0
LibreSwinIRm-restore.ptapache-2.0
LibreSwinIRl-restore.ptapache-2.0

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
SwinIR, Computer Vision Lab, ETH Zurich
Licencia del proyecto original
Apache-2.0
Fuente del proyecto original
github.com/JingyunLiang/SwinIR
Código de LibreYOLO
MIT
Pesos
Apache-2.0, republicados en huggingface.co/LibreYOLO
Interpretación
Apache-2.0 is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep its license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. It places no obligation on your own application code. LibreYOLO's checkpoints are format conversions of the official pretrained generators, with the learned parameters unchanged; SwinIR's real-world variants need a degradation and GAN training pipeline that is not wired into this library, so there is no LibreYOLO-trained variant to license separately.

Cita

@article{liang2021swinir,
  title={SwinIR: Image Restoration Using Swin Transformer},
  author={Liang, Jingyun and Cao, Jiezhang and Sun, Guolei and Zhang, Kai and Van Gool, Luc and Timofte, Radu},
  journal={arXiv preprint arXiv:2108.10257},
  year={2021}
}

Copiado del bloque de cita de los autores en github.com/JingyunLiang/SwinIR#citation.

Verificado con LibreYOLO v1.5.0. Las tablas de compatibilidad, los checkpoints y las cifras de rendimiento de esta página se generan a partir de la biblioteca publicada y los pesos publicados; no se escriben a mano.