Real-ESRGAN

Un upscaler pratique de super-résolution aveugle, entraîné sur des dégradations synthétiques plutôt que seulement sur un sous-échantillonnage bicubique. LibreYOLO fournit l'inférence et la validation pour ses checkpoints 4x, 2x et 4x rapide.

Tâches
restore
Tailles
x4, x2, x4t at 64 px
Installer
pip install libreyolo
Niveau de support
Inférence uniquement, depuis v. Prédiction, validation et export uniquement. Les fonctionnalités d'entraînement ne s'appliquent pas.
Origine
Real-ESRGAN par Tencent ARC Lab and Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, BSD-3-Clause. Article, source
Licences
Code Apache-2.0 and BSD-3-Clause, poids BSD-3-Clause. Usage commercial

Installer

Real-ESRGAN ne nécessite aucun extra facultatif. Tous ses imports figurent dans l'installation de base.

bash
pip install libreyolo

Prédire

Les poids sont téléchargés depuis Hugging Face à la première utilisation et mis en cache localement.

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
Par tuiles, pour les grandes images
from libreyolo import LibreYOLO model = LibreYOLO("LibreRealESRGANx4-restore.pt") # tile divise la passe en tuiles qui se chevauchent et fusionne les# raccords ; tile_pad est la marge ajoutée autour de chaque tuile avant# son recadrage. Ce sont des arguments Python, pas des options de CLI.result = model("large-photo.jpg", tile=512, tile_pad=10, save=True)

Un résultat de restauration ne contient aucune boîte ; result.restored est une image RGB dense uint8 de forme (H, W, 3), sur un canevas égal à Results.restore_scale fois l'entrée dans chaque dimension. save=True écrit directement cette image au lieu d'un tracé annoté. L'entrée est convertie en RGB et tout canal alpha est supprimé. Une source trop grande pour la mémoire disponible peut être divisée avec tile et tile_pad, qui fusionnent les raccords des tuiles dans la sortie. Consultez la prédiction pour les sources, le streaming et le traitement des résultats.

Variantes

Trois checkpoints sont nommés selon leur facteur d'agrandissement. x4 est RRDBNet (RealESRGAN_x4plus), avec 23 blocs denses residual-in-residual, et constitue le choix de qualité par défaut en 4x. x2 emploie la même architecture RRDBNet en 2x. x4t est SRVGGNetCompact (realesr-general-x4v3), un générateur plus petit et plus rapide, conçu pour la vidéo et une utilisation à plus faible latence en 4x. Le modèle polyvalent amont fournit aussi un réseau apparié de niveau de débruitage, fusionné lors de l'inférence. Ce réglage d'intensité ne fait pas partie de ce portage, qui exécute le générateur x4t de base.

Valider

val() mesure le PSNR et le SSIM entre la sortie restaurée et une image cible nette. Les deux sont calculés en RGB sur le canevas d'origine, sans recadrage de bord ni redimensionnement. SSIM utilise une fenêtre gaussienne 11x11 avec un sigma de 1.5, puis établit la moyenne sur les trois canaux de couleur.

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'argument de dataset est un YAML qui associe un dossier d'images d'entrée dégradées à un dossier d'images cibles nettes de résolution correspondante ; consultez les formats de datasets pour les clés exactes.

Exporter

TâcheONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
restorerestore to ONNX : pris en chargerestore to TorchScript : pris en chargerestore to ExecuTorch : pris en chargerestore to TensorRT : pris en chargerestore to OpenVINO : pris en chargerestore to Paddle : non pris en chargerestore to MNN : non pris en chargerestore to RKNN : non pris en chargerestore to ncnn : pris en chargerestore to TFLite : pris en chargerestore to CoreML : non pris en chargerestore to Core AI : pris en charge

Un artefact exporté se recharge par LibreYOLO() à partir de son suffixe de fichier. Un fichier .onnx ou .engine se comporte donc comme un checkpoint et renvoie le même objet Results. La page Export répertorie les arguments acceptés par chaque format et les options supplémentaires de certains d'entre eux.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreRealESRGANx4-restore.pt") # Sans valeur, imgsz utilise une petite taille de patch interne, pas votre# résolution de travail. Indiquez la taille réellement fournie au modèle# par votre déploiement.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
Utiliser le fichier exporté
from libreyolo import LibreYOLO, SAMPLE_IMAGE # La factory utilise le suffixe du fichier : un artefact exporté se charge# comme tout checkpoint et renvoie le même objet Results.model = LibreYOLO("LibreRealESRGANx4-restore.onnx")result = model(SAMPLE_IMAGE) print(result.restored.array.shape)

Checkpoints

Tous les fichiers de poids publiés pour cette famille.

FichierEntrée (px)Licence des poids
restore
LibreRealESRGANx4t-restore.ptbsd-3-clause
LibreRealESRGANx4-restore.ptbsd-3-clause
LibreRealESRGANx2-restore.ptbsd-3-clause

Tous les fichiers ci-dessus sont actuellement disponibles dans l<link>organisation LibreYOLO</link> et sont téléchargés à la première utilisation.

Licence

Vérifiez la licence dans le dépôt Hugging Face des poids précis que vous téléchargez. Chaque checkpoint de l<link>organisation LibreYOLO</link> en possède une, et elles ne sont pas toujours identiques au sein dune même famille. Ce dépôt fait autorité ; le résumé ci-dessous décrit les conditions applicables lors de la dernière vérification de cette page.

Ceci décrit les licences concernées et ne constitue pas un conseil juridique. Si la réponse a une importance commerciale, lisez vous-même les licences et consultez votre propre avocat.

Travail d'origine
Real-ESRGAN, Tencent ARC Lab and Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences
Licence du projet d'origine
BSD-3-Clause
Source du projet d'origine
github.com/xinntao/Real-ESRGAN
Code de LibreYOLO
MIT
Poids
BSD-3-Clause, republiés sur huggingface.co/LibreYOLO
Interprétation
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.

Citation

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

Copié depuis le bloc de citation des auteurs sur github.com/xinntao/Real-ESRGAN#bibtex.

Vérifié avec LibreYOLO v1.5.0. Les tableaux de support, les checkpoints et les chiffres de benchmark de cette page sont générés à partir de la bibliothèque publiée et des poids publiés, et non rédigés à la main.