Real-ESRGAN

Um upscaler de super-resolução cega voltado para uso prático, treinado com degradações sintéticas em vez de apenas redução bicúbica. O LibreYOLO inclui inferência e validação para seus checkpoints 4x, 2x e 4x rápido.

Tarefas
restore
Tamanhos
x4, x2, x4t at 64 px
Instalação
pip install libreyolo
Nível de suporte
Somente inferência, desde a v. Somente predição, validação e exportação. Os recursos de treinamento não se aplicam.
Origem
Real-ESRGAN por Tencent ARC Lab and Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, BSD-3-Clause. Artigo, código-fonte
Licenças
Código Apache-2.0 and BSD-3-Clause, pesos BSD-3-Clause. Uso comercial

Instalação

O Real-ESRGAN não precisa de nenhum extra opcional. Tudo o que ele importa está na instalação base.

bash
pip install libreyolo

Predição

Os pesos são baixados do Hugging Face no primeiro uso e ficam em cache local.

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
Por blocos (tiles), para imagens grandes
from libreyolo import LibreYOLO model = LibreYOLO("LibreRealESRGANx4-restore.pt") # tile divide o forward pass em tiles sobrepostos e funde as# emendas de volta; tile_pad é o halo adicionado ao redor de cada# tile antes de ele ser recortado de volta. Ambos são argumentos# nomeados só do Python, não flags da CLI.result = model("large-photo.jpg", tile=512, tile_pad=10, save=True)

Um resultado de restauração não carrega boxes; result.restored é uma imagem RGB densa (H, W, 3) uint8, em um canvas Results.restore_scale vezes o da entrada em cada dimensão. save=True grava essa imagem direto, em vez de um plot anotado. A entrada é convertida para RGB e qualquer canal alfa é descartado. Uma fonte maior do que a memória permite pode ser dividida com tile e tile_pad, que fundem as emendas dos tiles de volta na saída. Veja predição para fontes, streaming e tratamento de resultados.

Variantes

Três checkpoints, nomeados pelo seu fator de aumento de escala. x4 é RRDBNet (RealESRGAN_x4plus), 23 blocos densos residual-in-residual, o padrão de qualidade em 4x. x2 é a mesma arquitetura RRDBNet em 2x. x4t é SRVGGNetCompact (realesr-general-x4v3), um gerador menor e mais rápido, feito para vídeo e usos de menor latência em 4x. O modelo de propósito geral do projeto original também inclui uma rede pareada de força de remoção de ruído, misturada no momento da inferência; esse controle de força não faz parte deste port, que roda o gerador x4t base.

Validação

val() mede PSNR e SSIM entre a saída restaurada e uma imagem alvo limpa, ambas calculadas em RGB no canvas original, sem recorte de borda e sem redimensionamento. O SSIM usa uma janela gaussiana de 11x11 com sigma 1.5, com média sobre os três canais de cor.

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

O argumento de dataset é um YAML que pareia um diretório de imagens de entrada degradadas com um diretório de imagens alvo limpas de resolução equivalente; veja formatos de dataset para as chaves exatas.

Exportação

TarefaONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
restorerestore to ONNX: compatívelrestore to TorchScript: compatívelrestore to ExecuTorch: compatívelrestore to TensorRT: compatívelrestore to OpenVINO: compatívelrestore to Paddle: incompatívelrestore to MNN: incompatívelrestore to RKNN: incompatívelrestore to ncnn: compatívelrestore to TFLite: compatívelrestore to CoreML: incompatívelrestore to Core AI: compatível

Um artefato exportado é carregado de volta por LibreYOLO() pelo sufixo do arquivo, então um arquivo .onnx ou .engine se comporta como um checkpoint e devolve o mesmo Results. Exportação lista os argumentos que todo formato aceita e os extras que alguns poucos adicionam.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreRealESRGANx4-restore.pt") # quando omitido, imgsz assume um tamanho de patch interno pequeno,# não a sua resolução de trabalho, então passe o tamanho que o seu# deploy realmente entrega ao modelo.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
Usar o arquivo exportado
from libreyolo import LibreYOLO, SAMPLE_IMAGE # A factory roteia pelo sufixo do arquivo, então um artefato exportado# carrega como qualquer checkpoint e devolve o mesmo objeto Results.model = LibreYOLO("LibreRealESRGANx4-restore.onnx")result = model(SAMPLE_IMAGE) print(result.restored.array.shape)

Checkpoints

Todos os arquivos de pesos publicados desta família.

ArquivoEntrada (px)Licença dos pesos
restore
LibreRealESRGANx4t-restore.ptbsd-3-clause
LibreRealESRGANx4-restore.ptbsd-3-clause
LibreRealESRGANx2-restore.ptbsd-3-clause

Todos os arquivos acima existem hoje na organização LibreYOLO e são baixados no primeiro uso.

Licenciamento

Confira a licença no repositório do Hugging Face correspondente aos pesos que você baixar. Cada checkpoint na organização LibreYOLO tem uma licença, e ela nem sempre é a mesma em toda a família. Esse repositório é a fonte oficial. O resumo abaixo descreve o que se aplicava na última verificação desta página.

Esta é uma descrição das licenças envolvidas, não uma orientação jurídica. Se a resposta tiver importância comercial, leia as licenças e procure sua própria assessoria.

Trabalho original
Real-ESRGAN, Tencent ARC Lab and Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences
Licença original
BSD-3-Clause
Código-fonte original
github.com/xinntao/Real-ESRGAN
Código do LibreYOLO
MIT
Pesos
BSD-3-Clause, republicado em huggingface.co/LibreYOLO
Interpretação
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.

Citação

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

Copiado do bloco de citação dos autores em github.com/xinntao/Real-ESRGAN#bibtex.

Verificado com o LibreYOLO v1.5.0. As tabelas de suporte, os checkpoints e os números de benchmark desta página são gerados a partir da biblioteca lançada e dos pesos publicados, não escritos à mão.