DR : Blur2Blur converte imagens de desfoque desconhecido em desfoque conhecido. Esta versão mantém o conteúdo original enquanto aplica um kernel de desfoque diferente que foi efetivamente treinado e capturado por modelos de supervisão de desfoque.
Resumo : Este artigo apresenta um framework inovador projetado para treinar um algoritmo de desfoque de imagem adaptado para um dispositivo de câmera específico. Este algoritmo funciona transformando uma imagem de entrada borrada, que é difícil de desfocar, em outra imagem borrada que é mais passível de desfoque. O processo de transformação, de um estado desfocado para outro, aproveita dados não pareados que consistem em imagens nítidas e desfocadas capturadas pelo dispositivo de câmera alvo. Aprender essa transformação de desfoque em desfoque é inerentemente mais simples do que a conversão direta de desfoque em nitidez, pois envolve principalmente a modificação de padrões de desfoque, em vez da complexa tarefa de reconstruir detalhes finos da imagem. A eficácia da abordagem proposta foi demonstrada através de experiências abrangentes em vários benchmarks, onde supera significativamente os métodos de última geração, tanto quantitativa como qualitativamente.
Detalhes da arquitetura do modelo e resultados experimentais podem ser encontrados em nosso artigo:
@inproceedings { pham2024blur2blur ,
author = { Pham, Bang-Dang and Tran, Phong and Tran, Anh and Pham, Cuong and Nguyen, Rang and Hoai, Minh } ,
booktitle = { Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) } ,
title = { Blur2Blur: Blur Conversion for Unsupervised Image Deblurring on Unknown Domains } ,
year = { 2024 }
}
Cite nosso artigo sempre que este repositório for usado para ajudar a produzir resultados publicados ou incorporados em outro software.
Instale dependências:
git clone https://github.com/VinAIResearch/Blur2Blur
cd Blur2Blur
conda create -n blur2blur python=3.9
conda activate blur2blur
pip install -r requirements.txt
Você pode baixar nosso conjunto de dados RB2V proposto seguindo este script:
chmod +x ./dataset/download_RB2V.sh
bash ./dataset/download_RB2V.sh
Baixe os conjuntos de dados REDS, GoPro e RSBlur, descompacte na pasta ./dataset
e organize seguindo este formato:
conjunto de dados ├── Nome do conjunto de dados desconhecido, por exemplo, RB2V-GoPro ├── tremA ├──── (Trem) Conjunto desfocado de Desfoque Desconhecido ├──── ... ├── tremB ├──── (Trem) Conjunto nítido de desfoque desconhecido ├──── ... ├── tremC ├──── (Trem) Conjunto desfocado de desfoque conhecido ├──── ... ├── tremD ├──── (Trem) Conjunto nítido de desfoque conhecido ├──── ... ├── testeA ├──── (Teste) Conjunto desfocado de Desfoque Desconhecido ├──── ...
onde:
test-set
do conjunto de dados Unknown Blur. Para treinar o modelo:
python train.py --dataroot path/to/dataset
--name exp_name
--model blur2blur --netG mimounet
--batch_size 1
--dataset_mode unaligned
--norm instance --pool_size 0
--display_id -1
ou
bash ./scripts/train.sh
Para avaliar o modelo:
python test.py --dataroot datasets/GoPro/b2b_exp/RB2V_GOPRO_filter
--name exp_name
--eval
--model blur2blur --netG mimounet
--checkpoints_dir ckpts/
--dataset_mode unaligned
--norm instance
ou
bash ./scripts/test.sh
Para resultados mais interativos, você pode dar uma olhada na página do meu projeto: https://zero1778.github.io/blur2blur/
Gostaríamos de estender nossa gratidão às seguintes implementações por suas contribuições para o desenvolvimento do Blur2Blur:
Se você tiver alguma dúvida ou sugestão sobre este repositório, não hesite em entrar em contato comigo ([email protected]).