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.
- 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.
pip install libreyoloPrédire
Les poids sont téléchargés depuis Hugging Face à la première utilisation et mis en cache localement.
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)libreyolo predict model=LibreSwinIRm-restore.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom 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.
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"])libreyolo val model=LibreSwinIRm-restore.pt data=my-restore-dataset.yamlL'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âche | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| restore | restore to ONNX : pris en charge | restore to TorchScript : pris en charge | restore to ExecuTorch : non pris en charge | restore to TensorRT : pris en charge | restore to OpenVINO : pris en charge | restore to Paddle : non pris en charge | restore to MNN : non pris en charge | restore to RKNN : non pris en charge | restore to ncnn : non pris en charge | restore to TFLite : pris en charge | restore to CoreML : non pris en charge | restore 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.
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)libreyolo export model=LibreSwinIRm-restore.pt format=onnx imgsz=512from 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.
| Fichier | Entrée (px) | Licence des poids |
|---|---|---|
| restore | ||
| LibreSwinIRs-restore.pt | apache-2.0 | |
| LibreSwinIRm-restore.pt | apache-2.0 | |
| LibreSwinIRl-restore.pt | apache-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.