Este repositório contém a implementação oficial para Liif introduzida no artigo a seguir:
Aprendendo representação contínua de imagem com função de imagem implícita local
Yinbo Chen, Sidei Liu, Xiaolong Wang
CVPR 2021 (oral)
A página do projeto com vídeo está em https://yinboc.github.io/liif/.

Se você achar nosso trabalho útil em sua pesquisa, cite:
@inproceedings{chen2021learning,
title={Learning continuous image representation with local implicit image function},
author={Chen, Yinbo and Liu, Sifei and Wang, Xiaolong},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={8628--8638},
year={2021}
}
| Modelo | Tamanho do arquivo | Download |
|---|---|---|
| Edsr-Baseline-Liif | 18m | Dropbox | Google Drive |
| Rdn-liif | 256m | Dropbox | Google Drive |
[MODEL_PATH] indica o arquivo .pth ) python demo.py --input xxx.png --model [MODEL_PATH] --resolution [HEIGHT],[WIDTH] --output output.png --gpu 0
mkdir load para colocar as pastas do conjunto de dados.
Div2k : mkdir e cd em load/div2k . Faça o download das imagens de HR e imagens LR de validação de Bicubic no site Div2K (IE Train_HR, Valid_HR, Valid_LR_X2, Valid_LR_X3, Valid_LR_X4). unzip esses arquivos para obter as pastas de imagem.
DataSets de referência : cd em load/ . Download e tar -xf Os conjuntos de dados de benchmark (fornecidos por este repositório), obtenha uma pasta de load/benchmark com sub -folds Set5/, Set14/, B100/, Urban100/ .
CELEBAHQ : mkdir load/celebAHQ e cp scripts/resize.py load/celebAHQ/ , então cd load/celebAHQ/ . Download e unzip DATA1024X1024.ZIP do link do Google Drive (fornecido por este repositório). Execute python resize.py e obtenha pastas de imagem 256/, 128/, 64/, 32/ . Faça o download do split.json.
0. Preliminares
Para train_liif.py ou test.py , use --gpu [GPU] para especificar as GPUs (por exemplo --gpu 0 ou --gpu 0,1 ).
Para train_liif.py , por padrão, a pasta Salvar está em save/_[CONFIG_NAME] . Podemos usar --name para especificar um nome, se necessário.
Para o conjunto de dados args nas configurações, cache: in_memory denota pré-carregamento na memória (pode exigir grande memória, por exemplo, ~ 40 GB para div2k), cache: bin indica que cria arquivos binários (em uma pasta de irmãos) pela primeira vez, cache: none denota carga direta. Podemos modificá -lo de acordo com os recursos de hardware antes de executar os scripts de treinamento.
1. Experimentos div2k
Trem : python train_liif.py --config configs/train-div2k/train_edsr-baseline-liif.yaml (com o backbone EDSR-Baseline, para RDN Substitua edsr-baseline pelo rdn ). Utilizamos 1 GPU para treinar EDSR-Baseline-Liif e 4 GPUs para RDN-LIIF.
Teste : bash scripts/test-div2k.sh [MODEL_PATH] [GPU] para o conjunto de validação Div2K, bash scripts/test-benchmark.sh [MODEL_PATH] [GPU] para conjuntos de dados de referência. [MODEL_PATH] é o caminho para um arquivo .pth , usamos epoch-last.pth na pasta salva correspondente.
2. Experiências de Celebahq
Trem : python train_liif.py --config configs/train-celebAHQ/[CONFIG_NAME].yaml .
Teste : python test.py --config configs/test/test-celebAHQ-32-256.yaml --model [MODEL_PATH] (ou test-celebAHQ-64-128.yaml para outra tarefa). Usamos epoch-best.pth na pasta salvadora correspondente.