Real-ESRGAN

Практичний засіб сліпого надрозрізнення, навчений на синтетичних деградаціях, а не лише на бікубічному зменшенні. LibreYOLO постачає інференс і валідацію його контрольних точок 4x, 2x і швидкої 4x.

Задачі
restore
Розміри
x4, x2, x4t at 64 px
Встановлення
pip install libreyolo
Рівень підтримки
Лише інференс, починаючи з v. Лише передбачення, валідація та експорт. Функції навчання не застосовуються.
Першоджерело
Real-ESRGAN, автори: Tencent ARC Lab and Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, ліцензія BSD-3-Clause. Стаття, джерело
Ліцензії
Код: Apache-2.0 and BSD-3-Clause, ваги: BSD-3-Clause. Комерційне використання

Встановлення

Real-ESRGAN не потребує додаткових залежностей. Усе, що вона імпортує, входить до базового встановлення.

bash
pip install libreyolo

Передбачення

Під час першого використання ваги завантажуються з Hugging Face і кешуються локально.

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
Тайли для великих зображень
from libreyolo import LibreYOLO model = LibreYOLO("LibreRealESRGANx4-restore.pt") # tile ділить прямий прохід на тайли з перекриттям і змішує стики;# tile_pad є ореолом навколо кожного тайла, який потім обрізається.# Обидва є аргументами лише Python, а не прапорцями CLI.result = model("large-photo.jpg", tile=512, tile_pad=10, save=True)

Результат відновлення не містить рамок; result.restored є щільним RGB-зображенням uint8 (H, W, 3) на полотні, яке у Results.restore_scale разів більше за вхід у кожному вимірі. save=True записує безпосередньо це зображення, а не анотований графік. Вхід перетворюється на RGB, а альфа-канал видаляється. Джерело, більше за доступну пам'ять, можна поділити за допомогою tile і tile_pad, які змішують стики тайлів у виході. Типи джерел, потокове передбачення та обробку результатів описано в розділі передбачення.

Варіанти

Доступні три контрольні точки, названі за коефіцієнтом збільшення. x4 є RRDBNet (RealESRGAN_x4plus) із 23 щільними блоками residual-in-residual і типовою якістю 4x. x2 має ту саму архітектуру RRDBNet у 2x. x4t є SRVGGNetCompact (realesr-general-x4v3), меншим і швидшим генератором для відео та роботи з меншою затримкою в 4x. Початкова модель загального призначення також постачає парну мережу сили шумозаглушення, яка змішується під час інференсу. Це налаштування сили не входить до цього порту, який запускає базовий генератор x4t.

Валідація

val() вимірює PSNR і SSIM між відновленим виходом і чистим цільовим зображенням. Обидві метрики обчислюються в RGB на початковому полотні без обрізання меж і зміни розміру. SSIM використовує гаусове вікно 11x11 із сигмою 1.5, усереднене за трьома колірними каналами.

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

Аргумент датасету є YAML, який поєднує каталог деградованих вхідних зображень із каталогом чистих цільових зображень відповідної роздільної здатності. Точні ключі описано у форматах датасетів.

Експорт

ЗадачаONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
restorerestore to ONNX: підтримуєтьсяrestore to TorchScript: підтримуєтьсяrestore to ExecuTorch: підтримуєтьсяrestore to TensorRT: підтримуєтьсяrestore to OpenVINO: підтримуєтьсяrestore to Paddle: не підтримуєтьсяrestore to MNN: не підтримуєтьсяrestore to RKNN: не підтримуєтьсяrestore to ncnn: підтримуєтьсяrestore to TFLite: підтримуєтьсяrestore to CoreML: не підтримуєтьсяrestore to Core AI: підтримується

Експортований артефакт знову завантажується через LibreYOLO() відповідно до суфікса файлу, тому файл .onnx або .engine поводиться як контрольна точка й повертає той самий об'єкт Results. У розділі експорту наведено аргументи, які приймає кожен формат, і додаткові параметри деяких форматів.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreRealESRGANx4-restore.pt") # Якщо imgsz пропущено, типовим є малий внутрішній розмір патча, а не# робоча роздільна здатність, тому передайте розмір фактичного входу розгортання.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
Використання експортованого файлу
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Фабрика маршрутизує за суфіксом файлу, тому експортований артефакт# завантажується як будь-яка контрольна точка й повертає той самий об'єкт Results.model = LibreYOLO("LibreRealESRGANx4-restore.onnx")result = model(SAMPLE_IMAGE) print(result.restored.array.shape)

Контрольні точки

Усі опубліковані файли ваг цього сімейства.

ФайлВхід (пікс.)Ліцензія ваг
restore
LibreRealESRGANx4t-restore.ptbsd-3-clause
LibreRealESRGANx4-restore.ptbsd-3-clause
LibreRealESRGANx2-restore.ptbsd-3-clause

Кожен наведений вище файл уже доступний у організації LibreYOLO і завантажується під час першого використання.

Ліцензування

Перевіряйте ліцензію в репозиторії Hugging Face конкретних ваг, які завантажуєте. Кожна контрольна точка в організації LibreYOLO має ліцензію, і вона не завжди однакова для всього сімейства. Цей репозиторій є авторитетним джерелом, а наведене нижче резюме описує умови на момент останньої перевірки сторінки.

Це опис відповідних ліцензій, а не юридична консультація. Якщо відповідь має комерційне значення, самостійно прочитайте ліцензії та зверніться по юридичну консультацію.

Оригінальна робота
Real-ESRGAN, Tencent ARC Lab and Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences
Ліцензія першоджерела
BSD-3-Clause
Джерело першоджерела
github.com/xinntao/Real-ESRGAN
Код LibreYOLO
MIT
Ваги
BSD-3-Clause, повторно опубліковано на huggingface.co/LibreYOLO
Тлумачення
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.

Цитування

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

Скопійовано з блоку цитування авторів на сторінці github.com/xinntao/Real-ESRGAN#bibtex.

Перевірено з LibreYOLO v1.5.0. Таблиці підтримки, контрольні точки й результати бенчмарків на цій сторінці згенеровано з випущеної бібліотеки та опублікованих ваг, а не написано вручну.