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 не потребує додаткових залежностей. Усе, що вона імпортує, входить до базового встановлення.
pip install libreyoloПередбачення
Під час першого використання ваги завантажуються з Hugging Face і кешуються локально.
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 ділить прямий прохід на тайли з перекриттям і змішує стики;# 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, усереднене за трьома колірними каналами.
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.yamlАргумент датасету є YAML, який поєднує каталог деградованих вхідних зображень із каталогом чистих цільових зображень відповідної роздільної здатності. Точні ключі описано у форматах датасетів.
Експорт
| Задача | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| restore | restore 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. У розділі
експорту наведено аргументи, які приймає кожен формат, і
додаткові параметри деяких форматів.
from libreyolo import LibreYOLO model = LibreYOLO("LibreRealESRGANx4-restore.pt") # Якщо imgsz пропущено, типовим є малий внутрішній розмір патча, а не# робоча роздільна здатність, тому передайте розмір фактичного входу розгортання.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 # Фабрика маршрутизує за суфіксом файлу, тому експортований артефакт# завантажується як будь-яка контрольна точка й повертає той самий об'єкт Results.model = LibreYOLO("LibreRealESRGANx4-restore.onnx")result = model(SAMPLE_IMAGE) print(result.restored.array.shape)Контрольні точки
Усі опубліковані файли ваг цього сімейства.
| Файл | Вхід (пікс.) | Ліцензія ваг |
|---|---|---|
| restore | ||
| LibreRealESRGANx4t-restore.pt | bsd-3-clause | |
| LibreRealESRGANx4-restore.pt | bsd-3-clause | |
| LibreRealESRGANx2-restore.pt | bsd-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.