Real-ESRGAN

Praktyczny upscaler ślepej superrozdzielczości wytrenowany na syntetycznych degradacjach zamiast wyłącznie zmniejszaniu dwusześciennym. LibreYOLO udostępnia inferencję i walidację dla checkpointów 4x, 2x i szybkiego 4x.

Zadania
restore
Rozmiary
x4, x2, x4t at 64 px
Instalacja
pip install libreyolo
Poziom obsługi
Tylko inferencja, od wersji v. Tylko predykcja, walidacja i eksport. Funkcje trenowania nie mają zastosowania.
Projekt źródłowy
Real-ESRGAN, autorzy: Tencent ARC Lab and Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, licencja: BSD-3-Clause. Publikacja, kod źródłowy
Licencje
Kod: Apache-2.0 and BSD-3-Clause, wagi: BSD-3-Clause. Użycie komercyjne

Instalacja

Real-ESRGAN nie wymaga żadnego opcjonalnego dodatku. Wszystkie importowane elementy znajdują się w instalacji podstawowej.

bash
pip install libreyolo

Predykcja

Przy pierwszym użyciu wagi są pobierane z Hugging Face i zapisywane w lokalnej pamięci podręcznej.

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
Kafelki dla dużych obrazów
from libreyolo import LibreYOLO model = LibreYOLO("LibreRealESRGANx4-restore.pt") # tile dzieli przebieg w przód na nakładające się kafelki i scala ich szwy.# tile_pad to obwódka dodawana wokół każdego kafelka przed ponownym przycięciem.# Oba są argumentami nazwanymi tylko dla Pythona, a nie flagami CLI.result = model("large-photo.jpg", tile=512, tile_pad=10, save=True)

Wynik odtwarzania nie zawiera ramek. result.restored jest gęstym obrazem RGB uint8 (H, W, 3) na obszarze Results.restore_scale razy większym od wejścia w każdym wymiarze. Ustawienie save=True zapisuje bezpośrednio ten obraz zamiast wykresu z adnotacjami. Wejście jest konwertowane do RGB, a kanał alfa jest usuwany. Źródło większe niż dostępna pamięć można podzielić argumentami tile i tile_pad, które scalają szwy kafelków w wyniku. Więcej informacji o źródłach, streamingu i obsłudze wyników zawiera strona predykcji.

Warianty

Dostępne są trzy checkpointy nazwane według współczynnika skalowania. x4 to RRDBNet (RealESRGAN_x4plus) z 23 gęstymi blokami residual-in-residual, domyślny wariant jakościowy 4x. x2 to ta sama architektura RRDBNet przy 2x. x4t to SRVGGNetCompact (realesr-general-x4v3), mniejszy i szybszy generator zbudowany do wideo i zastosowań o mniejszym opóźnieniu przy 4x. Uniwersalny model źródłowy udostępnia również sparowaną sieć siły odszumiania mieszaną podczas inferencji. To ustawienie siły nie jest częścią tego portu, który uruchamia podstawowy generator x4t.

Walidacja

val() mierzy PSNR i SSIM między odtworzonym wynikiem a czystym obrazem docelowym. Obie metryki są obliczane w RGB na oryginalnym obszarze, bez przycinania granic i bez zmiany rozmiaru. SSIM używa okna Gaussa 11x11 z sigma 1.5, uśrednionego w trzech kanałach koloru.

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

Argument zbioru danych to plik YAML łączący katalog zdegradowanych obrazów wejściowych z katalogiem czystych obrazów docelowych o zgodnej rozdzielczości. Dokładne klucze opisują formaty zbiorów danych.

Eksport

ZadanieONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
restorerestore to ONNX: obsługiwanerestore to TorchScript: obsługiwanerestore to ExecuTorch: obsługiwanerestore to TensorRT: obsługiwanerestore to OpenVINO: obsługiwanerestore to Paddle: brak obsługirestore to MNN: brak obsługirestore to RKNN: brak obsługirestore to ncnn: obsługiwanerestore to TFLite: obsługiwanerestore to CoreML: brak obsługirestore to Core AI: obsługiwane

Wyeksportowany artefakt jest ponownie ładowany przez LibreYOLO() na podstawie rozszerzenia pliku, więc plik .onnx lub .engine zachowuje się jak checkpoint i zwraca ten sam obiekt Results. Strona eksportu wymienia argumenty obsługiwane przez każdy format oraz dodatki wymagane przez niektóre z nich.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreRealESRGANx4-restore.pt") # Gdy imgsz pominięto, domyślnie przyjmuje mały wewnętrzny rozmiar patcha,# a nie rozdzielczość roboczą. Podaj rozmiar faktycznie przekazywany modelowi# przez wdrożenie.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
Użycie wyeksportowanego pliku
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Fabryka wybiera ścieżkę na podstawie rozszerzenia pliku, więc wyeksportowany artefakt# ładuje się jak każdy checkpoint i zwraca ten sam obiekt Results.model = LibreYOLO("LibreRealESRGANx4-restore.onnx")result = model(SAMPLE_IMAGE) print(result.restored.array.shape)

Checkpointy

Wszystkie opublikowane pliki wag dla tej rodziny.

PlikWejście (px)Licencja wag
restore
LibreRealESRGANx4t-restore.ptbsd-3-clause
LibreRealESRGANx4-restore.ptbsd-3-clause
LibreRealESRGANx2-restore.ptbsd-3-clause

Każdy z powyższych plików jest obecnie dostępny w organizacji LibreYOLO i pobierany przy pierwszym użyciu.

Licencja

Sprawdź licencję w repozytorium konkretnych pobieranych wag na Hugging Face. Każdy checkpoint w organizacji LibreYOLO ma licencję, która nie zawsze jest taka sama w całej rodzinie. To repozytorium jest źródłem rozstrzygającym, a poniższe podsumowanie opisuje stan z chwili ostatniej weryfikacji tej strony.

To opis obowiązujących licencji, a nie porada prawna. Jeśli odpowiedź ma znaczenie komercyjne, przeczytaj licencje i zasięgnij własnej porady prawnej.

Oryginalna praca
Real-ESRGAN, Tencent ARC Lab and Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences
Licencja projektu źródłowego
BSD-3-Clause
Kod źródłowy projektu
github.com/xinntao/Real-ESRGAN
Kod LibreYOLO
MIT
Wagi
BSD-3-Clause, ponownie opublikowane w huggingface.co/LibreYOLO
Interpretacja
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.

Cytowanie

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

Skopiowano z bloku cytowania autorów w github.com/xinntao/Real-ESRGAN#bibtex.

Zweryfikowano z LibreYOLO v1.5.0. Tabele obsługi, checkpointy i wyniki benchmarków na tej stronie są generowane na podstawie wydanej biblioteki i opublikowanych wag, a nie wpisywane ręcznie.