Syed Waqas Zamir, Aditya Arora, Salman Khan, Munawar Hayat, Fahad Shahbaz Khan e Ming-Hsuan Yang
Resumo: Como as redes neurais convolucionais (CNNs) têm um bom desempenho no aprendizado de anteriores generalizáveis de imagens a partir de dados em larga escala, esses modelos foram amplamente aplicados à restauração de imagens e tarefas relacionadas. Recentemente, outra classe de arquiteturas neurais, Transformers, mostrou ganhos significativos de desempenho em linguagem natural e tarefas de visão de alto nível. Enquanto o modelo do transformador mitiga as deficiências dos CNNs (ou seja, campo receptivo limitado e inadaptabilidade ao conteúdo de entrada), sua complexidade computacional cresce quadraticamente com a resolução espacial, tornando-o inviável para aplicar na maioria das tarefas de restauração de imagens envolvendo imagens de alta resolução. Neste trabalho, propomos um modelo de transformador eficiente, criando vários designs-chave nos blocos de construção (atenção de várias cabeças e rede de alimentação), de modo que ele possa capturar interações de pixel de longo alcance, permanecendo aplicáveis a imagens grandes. Nosso modelo, nomeado transformador de restauração (Restormer), atinge os resultados de última geração em várias tarefas de restauração de imagens, incluindo destacamento de imagens, deslocação de movimento de imagem única, desbruzamento de desfalação (dados de imagem única e pixel dupla) e denoing de denoing gaussiano (denoising de imagem e imagem e imagem real).
Consulte Install.md para a instalação de dependências necessárias para executar o Restormer.
Para testar os modelos restauradores pré-treinados de desbroteamento, deslocação de movimento, desfocus e denoinamento em suas próprias imagens, você pode usar o Google Colab ou a linha de comando como seguinte
python demo.py --task Task_Name --input_dir path_to_images --result_dir save_images_here
Exemplo de uso para executar o Defocus Deblurring em um diretório de imagens:
python demo.py --task Single_Image_Defocus_Deblurring --input_dir './demo/degraded/' --result_dir './demo/restored/'
Exemplo de uso para executar o Defocus Deblurring em uma imagem diretamente:
python demo.py --task Single_Image_Defocus_Deblurring --input_dir './demo/degraded/portrait.jpg' --result_dir './demo/restored/'
As instruções de treinamento e teste para desbrote, deslocação, desfocagem e denoishing de movimento são fornecidas em seus respectivos diretórios. Aqui está uma tabela de resumo que contém hiperlinks para facilitar a navegação:
| Tarefa | Instruções de treinamento | Instruções de teste | Resultados visuais de Restormer |
|---|---|---|---|
| Destinando | Link | Link | Download |
| Movimento de mago | Link | Link | Download |
| Desfocagem de explosão | Link | Link | Download |
| Denoising gaussiano | Link | Link | Download |
| Denoising real | Link | Link | Download |
As experiências são realizadas para diferentes tarefas de processamento de imagens, incluindo desbaste de imagem, movimento de movimento de imagem única, desfiguração do Defocus (tanto em dados de imagem única quanto de pixels duplos) e denoising de imagem (em dados gaussianos e reais).
S: Desebluring de desfocagem de imagem única. D: Deseblusing de desfocagem de pixel duplo.
Super-fila superior: aprendendo um modelo único para lidar com vários níveis de ruído. Super-fila inferior: treinando um modelo separado para cada nível de ruído.
Escala de cinza | Cor |
Se você usa Restormer, considere citar:
@inproceedings{Zamir2021Restormer,
title={Restormer: Efficient Transformer for High-Resolution Image Restoration},
author={Syed Waqas Zamir and Aditya Arora and Salman Khan and Munawar Hayat
and Fahad Shahbaz Khan and Ming-Hsuan Yang},
booktitle={CVPR},
year={2022}
}
Se você tiver alguma dúvida, entre em contato com [email protected]
Reconhecimento: este código é baseado na caixa de ferramentas Basicsr e Hinet.