SwinIR

Ein Swin-Transformer-Netzwerk zur Bildrestauration. LibreYOLO bietet Inferenz und Validierung für seine Checkpoints mit 4-facher Super-Resolution: den offiziellen Lightweight-Generator sowie die Real-World-Generatoren in Medium und Large.

Aufgaben
restore
Größen
s, m, l at 64 px
Installation
pip install libreyolo
Supportstufe
Nur Inferenz, seit v. Nur Vorhersage, Validierung und Export. Trainingsfunktionen sind nicht verfügbar.
Upstream
SwinIR von Computer Vision Lab, ETH Zurich, Apache-2.0. Publikation, Quelle
Lizenzen
Code Apache-2.0, Gewichte Apache-2.0. Kommerzielle Nutzung

Installation

SwinIR benötigt kein optionales Extra. Alle Importe sind in der Basisinstallation enthalten.

bash
pip install libreyolo

Vorhersage

Die Gewichte werden bei der ersten Verwendung von Hugging Face heruntergeladen und lokal zwischengespeichert.

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
Kachelverarbeitung für große Bilder
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwinIRl-restore.pt") # tile teilt den Vorwärtsdurchlauf in überlappende Kacheln und fügt# die Übergänge wieder zusammen; tile_pad ist der Rand um jede Kachel,# der vor dem Zurückschneiden hinzugefügt wird. Beides sind nur in Python# verfügbare Schlüsselwortargumente, keine CLI-Flags.result = model("large-photo.jpg", tile=512, tile_pad=16, save=True)

Ein Restaurationsergebnis enthält keine Boxen. result.restored ist ein dichtes RGB-Bild vom Typ uint8 mit der Form (H, W, 3), dessen Canvas in jeder Dimension viermal so groß wie die Eingabe ist. save=True schreibt dieses Bild direkt statt einer annotierten Darstellung. Die Eingabe wird auf ein Vielfaches von 8 aufgefüllt und nicht skaliert, sodass die Vorhersage in der ursprünglichen Auflösung des Fotos ausgeführt wird. Eine Quelle, die größer als der verfügbare Speicher ist, lässt sich mit tile und tile_pad aufteilen. Dabei werden die Übergänge zwischen den Kacheln in der Ausgabe zusammengefügt. Unter Vorhersage findest du Informationen zu Quellen, Streaming und Ergebnisverarbeitung.

Varianten

Es gibt drei Größen, alle mit fester 4-facher Hochskalierung. s ist der offizielle Lightweight-Generator mit vier Stufen aus Residual Swin Transformer Blocks (RSTB) und Pixel-Shuffle-Direct-Upsampling. m und l sind die Real-World-Generatoren in Medium und Large. Sie besitzen sechs beziehungsweise neun RSTB-Stufen und einen Upsampler aus Nächster-Nachbar-Skalierung und Faltung, der für reale Bildverschlechterungen statt nur für bikubische Verkleinerung ausgelegt ist.

Validierung

val() misst PSNR und SSIM zwischen der restaurierten Ausgabe und einem unverfälschten Zielbild. Beide Metriken werden in RGB auf dem ursprünglichen Canvas ohne Randbeschnitt oder Skalierung berechnet. SSIM verwendet ein gaußsches Fenster von 11x11 mit Sigma 1,5 und bildet den Mittelwert über die drei Farbkanäle.

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

Das Datensatzargument ist eine YAML-Datei, die ein Verzeichnis mit beeinträchtigten Eingabebildern einem Verzeichnis mit unverfälschten Zielbildern gleicher Auflösung zuordnet. Die genauen Schlüssel findest du unter Datensatzformate.

Export

AufgabeONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
restorerestore to ONNX: unterstütztrestore to TorchScript: unterstütztrestore to ExecuTorch: nicht unterstütztrestore to TensorRT: unterstütztrestore to OpenVINO: unterstütztrestore to Paddle: nicht unterstütztrestore to MNN: nicht unterstütztrestore to RKNN: nicht unterstütztrestore to ncnn: nicht unterstütztrestore to TFLite: unterstütztrestore to CoreML: nicht unterstütztrestore to Core AI: nicht unterstützt

Ein exportiertes Artefakt wird über seine Dateiendung wieder durch LibreYOLO() geladen. Eine .onnx- oder .engine-Datei verhält sich daher wie ein Checkpoint und gibt dasselbe Results-Objekt zurück. ExecuTorch und alle in der Matrix als gesperrt markierten Formate sind für diese Familie nicht verfügbar. ONNX, TorchScript, TensorRT, OpenVINO und TFLite werden unterstützt. Unter Export findest du die Argumente, die jedes Format akzeptiert, sowie zusätzliche Argumente einzelner Formate.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwinIRm-restore.pt") # Wenn imgsz fehlt, wird standardmäßig eine kleine interne Patch-Größe# und nicht deine Arbeitsauflösung verwendet. Übergib deshalb die Größe,# die dein Deployment tatsächlich an das Modell übergibt.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
Exportierte Datei verwenden
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Die Factory leitet anhand der Dateiendung weiter, daher wird ein exportiertes Artefakt# wie jeder Checkpoint geladen und gibt dasselbe Results-Objekt zurück.model = LibreYOLO("LibreSwinIRm-restore.onnx")result = model(SAMPLE_IMAGE) print(result.restored.array.shape)

Checkpoints

Alle für diese Familie veröffentlichten Gewichtsdateien.

DateiEingabe (px)Lizenz der Gewichte
restore
LibreSwinIRs-restore.ptapache-2.0
LibreSwinIRm-restore.ptapache-2.0
LibreSwinIRl-restore.ptapache-2.0

Jede oben aufgeführte Datei ist heute in der LibreYOLO-Organisation verfügbar und wird bei der ersten Verwendung heruntergeladen.

Lizenzierung

Prüfe die Lizenz im Hugging-Face-Repository der konkreten Gewichte, die du herunterlädst. Jeder Checkpoint in der LibreYOLO-Organisation hat eine Lizenz, und sie ist innerhalb einer Familie nicht immer gleich. Dieses Repository ist die maßgebliche Quelle. Die Zusammenfassung unten beschreibt den Stand bei der letzten Verifizierung dieser Seite.

Dies ist eine Beschreibung der beteiligten Lizenzen und keine Rechtsberatung. Wenn die Antwort kommerziell relevant ist, lies die Lizenzen selbst und hole eigenen Rechtsrat ein.

Originalarbeit
SwinIR, Computer Vision Lab, ETH Zurich
Upstream-Lizenz
Apache-2.0
LibreYOLO-Code
MIT
Gewichte
Apache-2.0, erneut unter huggingface.co/LibreYOLO veröffentlicht
Einordnung
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.

Zitieren

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

Aus dem Zitierblock der Autoren unter github.com/JingyunLiang/SwinIR#citation kopiert.

Mit LibreYOLO v1.5.0 verifiziert. Supporttabellen, Checkpoints und Benchmarkwerte auf dieser Seite werden aus der veröffentlichten Bibliothek und den publizierten Gewichten generiert und nicht von Hand geschrieben.