Syed Waqas Zamir, Aditya Arora, Salman Khan, Munawar Hayat, Fahad Shahbaz Khan, Ming-Hsuan Yang e Ling Shao
Estamos felizes em ver que nosso trabalho inspirou as soluções vencedoras nos desafios da NTIRE 2021 :
Resumo: As tarefas de restauração de imagens exigem um equilíbrio complexo entre detalhes espaciais e informações contextualizadas de alto nível durante a recuperação de imagens. Neste artigo, propomos um novo design sinérgico que pode equilibrar o ideal desses objetivos concorrentes. Nossa principal proposta é uma arquitetura de vários estágios, que aprende progressivamente as funções de restauração para as entradas degradadas, dividindo assim o processo geral de recuperação em etapas mais gerenciáveis. Especificamente, nosso modelo primeiro aprende os recursos contextualizados usando arquiteturas de codificadores-decodificadores e os combina posteriormente com uma filial de alta resolução que mantém informações locais. Em cada estágio, introduzimos um novo design adaptativo por pixel que aproveita a atenção supervisionada no local para recuperar os recursos locais. Um ingrediente-chave em uma arquitetura de vários estágios é a troca de informações entre diferentes estágios. Para esse fim, propomos uma abordagem em dois facetados, onde as informações não são apenas trocadas sequencialmente desde os estágios iniciais e tardios, mas também existem conexões laterais entre os blocos de processamento de recursos para evitar qualquer perda de informação. A arquitetura de vários estágios resultantes, nomeada como MPRNET, oferece fortes ganhos de desempenho em dez conjuntos de dados em uma variedade de tarefas, incluindo destinação de imagens, desverregando e denoishing. Por exemplo, nos conjuntos de dados Rain100L, GoPro e DND, obtemos ganhos de PSNR de 4 dB, 0,81 dB e 0,21 dB, respectivamente, em comparação com o estado da arte.
Estrutura geral da MPRNET | Módulo de atenção supervisionada (SAM) |
O modelo é construído em Pytorch 1.1.0 e testado no ambiente Ubuntu 16.04 (Python3.7, CUDA9.0, CUDNN7.5).
Para instalar, siga estas intruções
conda create -n pytorch1 python=3.7
conda activate pytorch1
conda install pytorch=1.1 torchvision=0.3 cudatoolkit=9.0 -c pytorch
pip install matplotlib scikit-image opencv-python yacs joblib natsort h5py tqdm
Instale o agendador de aquecimento
cd pytorch-gradual-warmup-lr; python setup.py install; cd ..
Para testar os modelos pré-treinados de desverregar, destacar e denoiring em suas próprias imagens, execute
python demo.py --task Task_Name --input_dir path_to_images --result_dir save_images_here
Aqui está um exemplo para executar o desblurração:
python demo.py --task Deblurring --input_dir ./samples/input/ --result_dir ./samples/output/
Códigos de treinamento e teste para desverbrina, desbaste e denoising são fornecidos em seus respectivos diretórios.
As experiências são realizadas para diferentes tarefas de processamento de imagens, incluindo destacar a imagem, desbaste de imagem e denoising de imagem. As imagens produzidas pela MPRNET podem ser baixadas do Google Drive Links: Deblancring, Derreining and Denoising.
Deblandendo em conjuntos de dados sintéticos. | Deblandendo no conjunto de dados real. |
Se você usa o MPRNET, considere citar:
@inproceedings{Zamir2021MPRNet,
title={Multi-Stage Progressive Image Restoration},
author={Syed Waqas Zamir and Aditya Arora and Salman Khan and Munawar Hayat
and Fahad Shahbaz Khan and Ming-Hsuan Yang and Ling Shao},
booktitle={CVPR},
year={2021}
}
Se você tiver alguma dúvida, entre em contato com [email protected]