SwinIR
Una rete Swin Transformer per il restauro delle immagini. LibreYOLO include inferenza e validazione per i suoi checkpoint di super-risoluzione 4x: il generatore lightweight ufficiale e i generatori real-world medium e large.
- Task
- restore
- Dimensioni
- s, m, l at 64 px
- Installa
pip install libreyolo- Livello di supporto
- Solo inferenza, dalla v. Solo predizione, validazione ed esportazione. Le funzionalità di addestramento non si applicano.
- Licenze
- Codice Apache-2.0, pesi Apache-2.0. Uso commerciale
Installazione
SwinIR non richiede nessun extra opzionale. Tutto quello che importa è nell'installazione base.
pip install libreyoloPredizione
I pesi vengono scaricati da Hugging Face al primo utilizzo e restano nella cache locale.
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 divide il forward pass in tasselli sovrapposti e ricompone le# giunture; tile_pad è l'alone aggiunto attorno a ogni tassello# prima che venga ritagliato via. Sono entrambi argomenti keyword# solo Python, non flag della CLI.result = model("large-photo.jpg", tile=512, tile_pad=16, save=True)Un risultato di restauro non porta box; result.restored è un'immagine RGB
uint8 densa (H, W, 3), su un canvas grande 4 volte l'input in ciascuna
dimensione. save=True scrive direttamente quell'immagine invece di un plot
annotato. L'input viene riempito con padding fino a un multiplo di 8 invece di
essere ridimensionato, quindi la predizione gira alla risoluzione originale
della foto; una sorgente più grande di quanto la memoria consenta si può
dividere con tile e tile_pad, che ricompongono le giunture dei tasselli
nell'output. Vedi predizione per sorgenti, streaming e
gestione dei risultati.
Varianti
Tre dimensioni, tutte fisse a un upscaling 4x. s è il generatore lightweight
ufficiale, con quattro stage di residual Swin Transformer block (RSTB) e
upsampling pixel-shuffle diretto. m e l sono i generatori real-world medium
e large, con sei e nove stage RSTB e un upsampler nearest-neighbor più
convoluzione, costruito per le degradazioni del mondo reale e non solo per la
riduzione bicubica.
Validazione
val() misura PSNR e SSIM tra l'output restaurato e un'immagine target pulita,
entrambi calcolati in RGB sul canvas originale, senza ritaglio dei bordi e
senza ridimensionamento. SSIM usa una finestra gaussiana 11x11 con sigma 1.5,
mediata sui tre canali di colore.
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'argomento dataset è un YAML che accoppia una cartella di immagini di input degradate con una cartella di immagini target pulite alla stessa risoluzione; vedi formati dei dataset per le chiavi esatte.
Esportazione
| Task | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| restore | restore to ONNX: supportato | restore to TorchScript: supportato | restore to ExecuTorch: non supportato | restore to TensorRT: supportato | restore to OpenVINO: supportato | restore to Paddle: non supportato | restore to MNN: non supportato | restore to RKNN: non supportato | restore to ncnn: non supportato | restore to TFLite: supportato | restore to CoreML: non supportato | restore to Core AI: non supportato |
Un artefatto esportato si ricarica con LibreYOLO() in base all'estensione del
file, quindi un file .onnx o .engine si comporta come un checkpoint e
restituisce lo stesso Results. ExecuTorch e tutti i formati che la matrice
segna come bloccati non sono disponibili per questa famiglia; ONNX, TorchScript,
TensorRT, OpenVINO e TFLite invece sì. Esportazione elenca gli
argomenti che ogni formato accetta e gli extra che qualcuno di essi aggiunge.
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwinIRm-restore.pt") # se omesso, imgsz assume una piccola dimensione di patch interna,# non la tua risoluzione di lavoro, quindi passa la dimensione che# il tuo deployment dà davvero in pasto al modello.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 factory smista in base all'estensione del file, quindi un# artefatto esportato si carica come qualsiasi checkpoint e# restituisce lo stesso oggetto Results.model = LibreYOLO("LibreSwinIRm-restore.onnx")result = model(SAMPLE_IMAGE) print(result.restored.array.shape)Checkpoint
Tutti i file di pesi pubblicati per questa famiglia.
| File | Ingresso (px) | Licenza dei pesi |
|---|---|---|
| restore | ||
| LibreSwinIRs-restore.pt | apache-2.0 | |
| LibreSwinIRm-restore.pt | apache-2.0 | |
| LibreSwinIRl-restore.pt | apache-2.0 | |
Oggi tutti i file elencati sopra sono presenti nell<link>organizzazione LibreYOLO</link> e vengono scaricati al primo utilizzo.
Licenza
Controlla la licenza nel repository Hugging Face degli specifici pesi che scarichi. Ogni checkpoint nell<link>organizzazione LibreYOLO</link> ne include una e non è sempre la stessa per tutta la famiglia. Quel repository è la fonte autorevole; il riepilogo seguente descrive le condizioni applicabili al momento dellultima verifica di questa pagina.
Questa è una descrizione delle licenze coinvolte, non una consulenza legale. Se la risposta è importante a fini commerciali, leggi personalmente le licenze e chiedi una consulenza indipendente.
- Lavoro originale
- SwinIR, Computer Vision Lab, ETH Zurich
- Licenza upstream
- Apache-2.0
- Sorgente upstream
- github.com/JingyunLiang/SwinIR
- Codice LibreYOLO
- MIT
- Pesi
- Apache-2.0, ripubblicati su huggingface.co/LibreYOLO
- Interpretazione
- 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.
Citazione
@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}
}Copiato dal blocco di citazione degli autori disponibile su github.com/JingyunLiang/SwinIR#citation.