Real-ESRGAN
Ein praktischer blinder Super-Resolution-Upscaler, der mit synthetischen Beeinträchtigungen statt ausschließlich bikubischem Downscaling trainiert wurde. LibreYOLO bietet Inferenz und Validierung für seine 4x-, 2x- und schnellen 4x-Checkpoints.
- Aufgaben
- restore
- Größen
- x4, x2, x4t at 64 px
- Installation
pip install libreyolo- Supportstufe
- Nur Inferenz, seit v. Nur Vorhersage, Validierung und Export. Trainingsfunktionen sind nicht verfügbar.
- Upstream
- Real-ESRGAN von Tencent ARC Lab and Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, BSD-3-Clause. Publikation, Quelle
- Lizenzen
- Code Apache-2.0 and BSD-3-Clause, Gewichte BSD-3-Clause. Kommerzielle Nutzung
Installation
Real-ESRGAN benötigt kein optionales Zusatzpaket. Alle Importe sind in der Basisinstallation enthalten.
pip install libreyoloVorhersage
Die Gewichte werden bei der ersten Verwendung von Hugging Face heruntergeladen und lokal zwischengespeichert.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreRealESRGANx4-restore.pt")result = model(SAMPLE_IMAGE, save=True) restored = result.restoredprint(restored.array.shape, restored.array.dtype)libreyolo predict model=LibreRealESRGANx4-restore.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom libreyolo import LibreYOLO model = LibreYOLO("LibreRealESRGANx4-restore.pt") # tile teilt den Vorwärtslauf in überlappende Kacheln und verblendet die# Nähte wieder. tile_pad ist der Rand um jede Kachel vor dem Zuschneiden.# Beide sind reine Python-Schlüsselwortargumente und keine CLI-Flags.result = model("large-photo.jpg", tile=512, tile_pad=10, save=True)Ein Wiederherstellungsergebnis enthält keine Boxen. result.restored ist ein
dichtes uint8-RGB-Bild der Form (H, W, 3) auf einer Arbeitsfläche, die in
jeder Dimension Results.restore_scale mal größer als die Eingabe ist.
save=True schreibt dieses Bild direkt statt einer annotierten Darstellung.
Die Eingabe wird in RGB umgewandelt, und ein Alphakanal wird entfernt. Wenn
eine Quelle größer als der verfügbare Speicher ist, kannst du sie mit tile
und tile_pad aufteilen. Die Nähte der Kacheln werden in der Ausgabe
verblendet. Unter Vorhersage findest du Quellen, Streaming und
die Verarbeitung von Ergebnissen.
Varianten
Es gibt drei Checkpoints, benannt nach ihrem Skalierungsfaktor. x4 ist
RRDBNet (RealESRGAN_x4plus) mit 23 Residual-in-Residual-Dense-Blöcken und der
Qualitätsstandard für 4x. x2 verwendet dieselbe RRDBNet-Architektur für 2x.
x4t ist SRVGGNetCompact (realesr-general-x4v3), ein kleinerer und
schnellerer Generator für Video und geringere Latenz bei 4x. Das allgemeine
Upstream-Modell liefert außerdem ein verbundenes Netzwerk für die
Entrauschungsstärke, das bei der Inferenz eingemischt wird. Diese Stärke ist
nicht Bestandteil der Portierung, die den Basisgenerator x4t ausführt.
Validierung
val() misst PSNR und SSIM zwischen der wiederhergestellten Ausgabe und einem
sauberen Zielbild. Beide werden in RGB auf der ursprünglichen Arbeitsfläche
ohne Randbeschnitt oder Größenänderung berechnet. SSIM verwendet ein
11x11-Gauß-Fenster mit Sigma 1.5 und mittelt über die drei Farbkanäle.
from libreyolo import LibreYOLO model = LibreYOLO("LibreRealESRGANx4-restore.pt")metrics = model.val(data="my-restore-dataset.yaml") print(metrics["metrics/PSNR"])print(metrics["metrics/SSIM"])libreyolo val model=LibreRealESRGANx4-restore.pt data=my-restore-dataset.yamlDas Datensatzargument ist eine YAML, die ein Verzeichnis beeinträchtigter Eingabebilder mit einem Verzeichnis sauberer Zielbilder gleicher Auflösung paart. Unter Datensatzformate findest du die genauen Schlüssel.
Export
| Aufgabe | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| restore | restore to ONNX: unterstützt | restore to TorchScript: unterstützt | restore to ExecuTorch: unterstützt | restore to TensorRT: unterstützt | restore to OpenVINO: unterstützt | restore to Paddle: nicht unterstützt | restore to MNN: nicht unterstützt | restore to RKNN: nicht unterstützt | restore to ncnn: unterstützt | restore to TFLite: unterstützt | restore to CoreML: nicht unterstützt | restore to Core AI: unterstützt |
Ein exportiertes Artefakt wird anhand seiner Dateiendung wieder über LibreYOLO()
geladen. Eine .onnx- oder .engine-Datei verhält sich daher wie ein Checkpoint
und gibt dasselbe Results-Objekt zurück. Export führt die
Argumente auf, die jedes Format akzeptiert, sowie die Zusatzpakete, die einige
davon benötigen.
from libreyolo import LibreYOLO model = LibreYOLO("LibreRealESRGANx4-restore.pt") # Ohne Angabe nutzt imgsz eine kleine interne Patch-Größe statt deiner# Arbeitsauflösung. Übergib die tatsächliche Eingabegröße des Deployments.model.export(format="onnx", imgsz=512)model.export(format="tensorrt", imgsz=512, half=True)libreyolo export model=LibreRealESRGANx4-restore.pt format=onnx imgsz=512from libreyolo import LibreYOLO, SAMPLE_IMAGE # Die Factory entscheidet anhand der Dateiendung, daher wird ein Exportartefakt# wie jeder Checkpoint geladen und gibt dasselbe Results-Objekt zurück.model = LibreYOLO("LibreRealESRGANx4-restore.onnx")result = model(SAMPLE_IMAGE) print(result.restored.array.shape)Checkpoints
Alle veröffentlichten Gewichtsdateien dieser Familie.
| Datei | Eingabe (px) | Lizenz der Gewichte |
|---|---|---|
| restore | ||
| LibreRealESRGANx4t-restore.pt | bsd-3-clause | |
| LibreRealESRGANx4-restore.pt | bsd-3-clause | |
| LibreRealESRGANx2-restore.pt | bsd-3-clause | |
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
- Real-ESRGAN, Tencent ARC Lab and Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences
- Upstream-Lizenz
- BSD-3-Clause
- Upstream-Quelle
- github.com/xinntao/Real-ESRGAN
- LibreYOLO-Code
- MIT
- Gewichte
- BSD-3-Clause, erneut unter huggingface.co/LibreYOLO veröffentlicht
- Einordnung
- BSD-3-Clause is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep the copyright notice, the condition list and the disclaimer with any copy you redistribute, in source or compiled form, and its third clause forbids using the names of Xintao Wang or the project's contributors to endorse or promote a derived product without separate written permission. It carries no patent grant, unlike Apache-2.0. LibreYOLO's checkpoints are format conversions of the official pretrained generators, with the learned parameters unchanged; Real-ESRGAN's training is a GAN over a synthetic degradation pipeline that is not wired into this library, so there is no LibreYOLO-trained variant to license separately.
Zitieren
@InProceedings{wang2021realesrgan,
author = {Xintao Wang and Liangbin Xie and Chao Dong and Ying Shan},
title = {Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data},
booktitle = {International Conference on Computer Vision Workshops (ICCVW)},
date = {2021}
}Aus dem Zitierblock der Autoren unter github.com/xinntao/Real-ESRGAN#bibtex kopiert.