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.
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("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 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.
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.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: 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: supportato | restore to TFLite: supportato | restore to CoreML: non supportato | restore 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.
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)libreyolo export model=LibreRealESRGANx4-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("LibreRealESRGANx4-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 | ||
| LibreRealESRGANx4t-restore.pt | bsd-3-clause | |
| LibreRealESRGANx4-restore.pt | bsd-3-clause | |
| LibreRealESRGANx2-restore.pt | bsd-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
- Sorgente upstream
- github.com/xinntao/Real-ESRGAN
- 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.