Real-ESRGAN

Un upscaler pratico di super-risoluzione blind, addestrato su degradazioni sintetiche invece che solo sulla riduzione bicubica. LibreYOLO include inferenza e validazione per i suoi checkpoint 4x, 2x e 4x veloce.

Task
restore
Dimensioni
x4, x2, x4t 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.
Origine
Real-ESRGAN di Tencent ARC Lab and Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, BSD-3-Clause. Articolo, sorgente
Licenze
Codice Apache-2.0 and BSD-3-Clause, pesi BSD-3-Clause. Uso commerciale

Installazione

Real-ESRGAN non richiede nessun extra opzionale. Tutto quello che importa è nell'installazione base.

bash
pip install libreyolo

Predizione

I pesi vengono scaricati da Hugging Face al primo utilizzo e restano nella cache locale.

Python
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)
CLI
libreyolo predict model=LibreRealESRGANx4-restore.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True
A tasselli, per immagini grandi
from libreyolo import LibreYOLO model = LibreYOLO("LibreRealESRGANx4-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=10, save=True)

Un risultato di restauro non porta box; result.restored è un'immagine RGB uint8 densa (H, W, 3), su un canvas grande Results.restore_scale volte l'input in ciascuna dimensione. save=True scrive direttamente quell'immagine invece di un plot annotato. L'input viene convertito in RGB e l'eventuale canale alfa viene scartato. 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 checkpoint, che prendono il nome dal loro fattore di upscaling. x4 è RRDBNet (RealESRGAN_x4plus), 23 blocchi densi residual-in-residual, la scelta predefinita per la qualità a 4x. x2 è la stessa architettura RRDBNet a 2x. x4t è SRVGGNetCompact (realesr-general-x4v3), un generatore più piccolo e più veloce, costruito per il video e per usi a bassa latenza a 4x. Il modello general-purpose del progetto upstream include anche una rete accoppiata di denoise strength, miscelata al momento dell'inferenza; quella manopola di intensità non fa parte di questo port, che esegue il generatore x4t di base.

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.

Python
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"])
CLI
libreyolo val model=LibreRealESRGANx4-restore.pt data=my-restore-dataset.yaml

L'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

TaskONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
restorerestore to ONNX: supportatorestore to TorchScript: supportatorestore to ExecuTorch: supportatorestore to TensorRT: supportatorestore to OpenVINO: supportatorestore to Paddle: non supportatorestore to MNN: non supportatorestore to RKNN: non supportatorestore to ncnn: supportatorestore to TFLite: supportatorestore to CoreML: non supportatorestore to Core AI: 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. Esportazione elenca gli argomenti che ogni formato accetta e gli extra che qualcuno di essi aggiunge.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreRealESRGANx4-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)
CLI
libreyolo export model=LibreRealESRGANx4-restore.pt format=onnx imgsz=512
Usare il file esportato
from 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("LibreRealESRGANx4-restore.onnx")result = model(SAMPLE_IMAGE) print(result.restored.array.shape)

Checkpoint

Tutti i file di pesi pubblicati per questa famiglia.

FileIngresso (px)Licenza dei pesi
restore
LibreRealESRGANx4t-restore.ptbsd-3-clause
LibreRealESRGANx4-restore.ptbsd-3-clause
LibreRealESRGANx2-restore.ptbsd-3-clause

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
Real-ESRGAN, Tencent ARC Lab and Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences
Licenza upstream
BSD-3-Clause
Codice LibreYOLO
MIT
Pesi
BSD-3-Clause, ripubblicati su huggingface.co/LibreYOLO
Interpretazione
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.

Citazione

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

Copiato dal blocco di citazione degli autori disponibile su github.com/xinntao/Real-ESRGAN#bibtex.

Verificato con LibreYOLO v1.5.0. Le tabelle di supporto, i checkpoint e i dati dei benchmark in questa pagina vengono generati dalla libreria rilasciata e dai pesi pubblicati, non scritti a mano.