SwinIR

SwinIR est un réseau Swin Transformer pour la restauration d'images. LibreYOLO fournit l'inférence et la validation de ses checkpoints de super-résolution 4x : le générateur léger officiel, ainsi que les générateurs medium et large pour images réelles.

Tâches
restore
Tailles
s, m, l at 64 px
Installer
pip install libreyolo
Niveau de support
Inférence uniquement, depuis v. Prédiction, validation et export uniquement. Les fonctionnalités d'entraînement ne s'appliquent pas.
Origine
SwinIR par Computer Vision Lab, ETH Zurich, Apache-2.0. Article, source
Licences
Code Apache-2.0, poids Apache-2.0. Usage commercial

Installer

SwinIR ne nécessite aucun extra facultatif. Tous ses imports sont inclus dans l'installation de base.

bash
pip install libreyolo

Prédire

Les poids sont téléchargés depuis Hugging Face à la première utilisation et mis en cache localement.

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
Par tuiles, pour les grandes images
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwinIRl-restore.pt") # tile divise la passe forward en tuiles superposées et fusionne leurs# raccords ; tile_pad est le halo ajouté autour de chaque tuile avant# de la recadrer. Ce sont deux arguments nommés propres à Python,# et non des options CLI.result = model("large-photo.jpg", tile=512, tile_pad=16, save=True)

Un résultat de restauration ne contient aucune bounding box\u00a0; result.restored est une image RGB uint8 dense de forme (H, W, 3), sur un canevas 4x plus grand que l'entrée dans chaque dimension. save=True écrit directement cette image plutôt qu'une visualisation annotée. L'entrée est complétée jusqu'à un multiple de 8 et non redimensionnée, la prédiction s'exécute donc à la résolution propre de la photo. Une source dépassant la mémoire disponible peut être divisée avec tile et tile_pad, qui refusionnent les raccords des tuiles dans la sortie. Consultez la prédiction pour les sources, le streaming et la gestion des résultats.

Variantes

Trois tailles, toutes limitées à un agrandissement 4x. s est le générateur léger officiel, avec quatre étapes residual Swin Transformer block (RSTB) et un upsampling direct par pixel shuffle. m et l sont les générateurs medium et large pour images réelles. Ils comportent six et neuf étapes RSTB ainsi qu'un upsampler par plus proche voisin suivi d'une convolution, conçu pour les dégradations réelles plutôt que pour le seul sous-échantillonnage bicubique.

Valider

val() mesure le PSNR et le SSIM entre la sortie restaurée et une image cible propre. Tous deux sont calculés en RGB sur le canevas d'origine, sans recadrage des bords ni redimensionnement. Le SSIM utilise une fenêtre gaussienne 11x11 avec un sigma de 1.5, dont la moyenne est calculée sur les trois canaux de couleur.

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

L'argument dataset est un fichier YAML qui associe un répertoire d'images d'entrée dégradées à un répertoire d'images cibles propres de résolution correspondante. Consultez les formats de datasets pour connaître les clés exactes.

Exporter

TâcheONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
restorerestore to ONNX : pris en chargerestore to TorchScript : pris en chargerestore to ExecuTorch : non pris en chargerestore to TensorRT : pris en chargerestore to OpenVINO : pris en chargerestore to Paddle : non pris en chargerestore to MNN : non pris en chargerestore to RKNN : non pris en chargerestore to ncnn : non pris en chargerestore to TFLite : pris en chargerestore to CoreML : non pris en chargerestore to Core AI : non pris en charge

Un artefact exporté se recharge dans LibreYOLO() grâce au suffixe de son fichier. Un fichier .onnx ou .engine se comporte donc comme un checkpoint et renvoie les mêmes Results. ExecuTorch et tous les formats indiqués comme bloqués dans la matrice ne sont pas disponibles pour cette famille\u00a0; ONNX, TorchScript, TensorRT, OpenVINO et TFLite le sont. La page Export énumère les arguments acceptés par chaque format ainsi que les extras ajoutés par certains.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwinIRm-restore.pt") # Lorsque imgsz est omis, sa valeur par défaut est la taille d'un petit patch interne,# pas votre résolution de travail. Transmettez donc la taille réellement# envoyée au modèle par votre déploiement.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
Utiliser le fichier exporté
from libreyolo import LibreYOLO, SAMPLE_IMAGE # La fabrique détermine le chemin selon le suffixe du fichier ; un artefact exporté se charge# donc comme tout checkpoint et renvoie le même objet Results.model = LibreYOLO("LibreSwinIRm-restore.onnx")result = model(SAMPLE_IMAGE) print(result.restored.array.shape)

Checkpoints

Tous les fichiers de poids publiés pour cette famille.

FichierEntrée (px)Licence des poids
restore
LibreSwinIRs-restore.ptapache-2.0
LibreSwinIRm-restore.ptapache-2.0
LibreSwinIRl-restore.ptapache-2.0

Tous les fichiers ci-dessus sont actuellement disponibles dans l<link>organisation LibreYOLO</link> et sont téléchargés à la première utilisation.

Licence

Vérifiez la licence dans le dépôt Hugging Face des poids précis que vous téléchargez. Chaque checkpoint de l<link>organisation LibreYOLO</link> en possède une, et elles ne sont pas toujours identiques au sein dune même famille. Ce dépôt fait autorité ; le résumé ci-dessous décrit les conditions applicables lors de la dernière vérification de cette page.

Ceci décrit les licences concernées et ne constitue pas un conseil juridique. Si la réponse a une importance commerciale, lisez vous-même les licences et consultez votre propre avocat.

Travail d'origine
SwinIR, Computer Vision Lab, ETH Zurich
Licence du projet d'origine
Apache-2.0
Source du projet d'origine
github.com/JingyunLiang/SwinIR
Code de LibreYOLO
MIT
Poids
Apache-2.0, republiés sur huggingface.co/LibreYOLO
Interprétation
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.

Citation

@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}
}

Copié depuis le bloc de citation des auteurs sur github.com/JingyunLiang/SwinIR#citation.

Vérifié avec LibreYOLO v1.5.0. Les tableaux de support, les checkpoints et les chiffres de benchmark de cette page sont générés à partir de la bibliothèque publiée et des poids publiés, et non rédigés à la main.