SwinIR
Sieć Swin Transformer do odtwarzania obrazów. LibreYOLO udostępnia inferencję i walidację dla jej checkpointów superrozdzielczości 4x: oficjalnego lekkiego generatora oraz generatorów medium i large do rzeczywistych obrazów.
- Zadania
- restore
- Rozmiary
- s, m, l 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
- SwinIR, autorzy: Computer Vision Lab, ETH Zurich, licencja: Apache-2.0. Publikacja, kod źródłowy
- Licencje
- Kod: Apache-2.0, wagi: Apache-2.0. Użycie komercyjne
Instalacja
SwinIR nie wymaga żadnego opcjonalnego dodatku. Wszystkie importowane elementy znajdują się w instalacji podstawowej.
pip install libreyoloPredykcja
Przy pierwszym użyciu wagi są pobierane z Hugging Face i zapisywane w lokalnej pamięci podręcznej.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreSwinIRm-restore.pt")result = model(SAMPLE_IMAGE, save=True) restored = result.restoredprint(restored.array.shape, restored.array.dtype)libreyolo predict model=LibreSwinIRm-restore.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom libreyolo import LibreYOLO model = LibreYOLO("LibreSwinIRl-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=16, save=True)Wynik odtwarzania nie zawiera ramek. result.restored jest gęstym obrazem RGB
uint8 (H, W, 3) na obszarze 4 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 dopełniane do wielokrotności 8 zamiast skalowane,
dlatego predykcja działa w oryginalnej rozdzielczości zdjęcia. Ź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 rozmiary, wszystkie ze stałym skalowaniem 4x. s jest
oficjalnym lekkim generatorem z czterema etapami residual Swin Transformer block
(RSTB) i skalowaniem pixel-shuffle-direct. m i l są generatorami medium i
large do rzeczywistych obrazów, z sześcioma i dziewięcioma etapami RSTB oraz
skalowaniem najbliższy sąsiad plus splot, zbudowanym dla rzeczywistych degradacji
zamiast wyłącznie zmniejszania dwusześciennego.
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.
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwinIRm-restore.pt")metrics = model.val(data="my-restore-dataset.yaml") print(metrics["metrics/PSNR"])print(metrics["metrics/SSIM"])libreyolo val model=LibreSwinIRm-restore.pt data=my-restore-dataset.yamlArgument 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
| Zadanie | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| restore | restore to ONNX: obsługiwane | restore to TorchScript: obsługiwane | restore to ExecuTorch: brak obsługi | restore to TensorRT: obsługiwane | restore to OpenVINO: obsługiwane | restore to Paddle: brak obsługi | restore to MNN: brak obsługi | restore to RKNN: brak obsługi | restore to ncnn: brak obsługi | restore to TFLite: obsługiwane | restore to CoreML: brak obsługi | restore to Core AI: brak obsługi |
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. ExecuTorch i każdy format oznaczony w macierzy
jako zablokowany nie są dostępne dla tej rodziny. Obsługiwane są ONNX,
TorchScript, TensorRT, OpenVINO i TFLite. Strona eksportu
wymienia argumenty obsługiwane przez każdy format oraz dodatki wymagane przez
niektóre z nich.
from libreyolo import LibreYOLO model = LibreYOLO("LibreSwinIRm-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)libreyolo export model=LibreSwinIRm-restore.pt format=onnx imgsz=512from 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("LibreSwinIRm-restore.onnx")result = model(SAMPLE_IMAGE) print(result.restored.array.shape)Checkpointy
Wszystkie opublikowane pliki wag dla tej rodziny.
| Plik | Wejście (px) | Licencja wag |
|---|---|---|
| restore | ||
| LibreSwinIRs-restore.pt | apache-2.0 | |
| LibreSwinIRm-restore.pt | apache-2.0 | |
| LibreSwinIRl-restore.pt | apache-2.0 | |
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
- SwinIR, Computer Vision Lab, ETH Zurich
- Licencja projektu źródłowego
- Apache-2.0
- Kod źródłowy projektu
- github.com/JingyunLiang/SwinIR
- Kod LibreYOLO
- MIT
- Wagi
- Apache-2.0, ponownie opublikowane w huggingface.co/LibreYOLO
- Interpretacja
- Apache-2.0 is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep its license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. It places no obligation on your own application code. LibreYOLO's checkpoints are format conversions of the official pretrained generators, with the learned parameters unchanged; SwinIR's real-world variants need a degradation and GAN training pipeline that is not wired into this library, so there is no LibreYOLO-trained variant to license separately.
Cytowanie
@article{liang2021swinir,
title={SwinIR: Image Restoration Using Swin Transformer},
author={Liang, Jingyun and Cao, Jiezhang and Sun, Guolei and Zhang, Kai and Van Gool, Luc and Timofte, Radu},
journal={arXiv preprint arXiv:2108.10257},
year={2021}
}Skopiowano z bloku cytowania autorów w github.com/JingyunLiang/SwinIR#citation.