TL;DR : Blur2Blur convertit les images d'un flou inconnu en un flou connu. Cette version conserve le contenu original tout en appliquant un noyau de flou différent qui a été efficacement entraîné et capturé par des modèles de suppression de flou de supervision.
Résumé : Cet article présente un cadre innovant conçu pour entraîner un algorithme de suppression du flou d'image adapté à un appareil photo spécifique. Cet algorithme fonctionne en transformant une image d'entrée floue, difficile à éliminer, en une autre image floue qui se prête mieux à l'élimination du flou. Le processus de transformation, d'un état flou à un autre, exploite des données non appariées constituées d'images nettes et floues capturées par la caméra cible. L'apprentissage de cette transformation de flou en flou est intrinsèquement plus simple que la conversion directe de flou en netteté, car elle implique principalement la modification des motifs de flou plutôt que la tâche complexe de reconstruction des détails fins de l'image. L'efficacité de l'approche proposée a été démontrée par des expériences approfondies sur divers benchmarks, où elle surpasse considérablement les méthodes de pointe, tant quantitativement que qualitativement.
Les détails de l’architecture du modèle et des résultats expérimentaux peuvent être trouvés dans notre article :
@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 }
}
Veuillez CITER notre article chaque fois que ce référentiel est utilisé pour aider à produire des résultats publiés ou incorporé dans d'autres logiciels.
Installer les dépendances :
git clone https://github.com/VinAIResearch/Blur2Blur
cd Blur2Blur
conda create -n blur2blur python=3.9
conda activate blur2blur
pip install -r requirements.txt
Vous pouvez télécharger notre ensemble de données RB2V proposé en suivant ce script :
chmod +x ./dataset/download_RB2V.sh
bash ./dataset/download_RB2V.sh
Téléchargez les ensembles de données REDS, GoPro et RSBlur puis décompressez-les dans le dossier ./dataset
et organisez-les selon ce format :
ensemble de données ├── Nom de l'ensemble de données inconnu, par exemple RB2V-GoPro ├── trainA ├──── (Train) Ensemble flou de flou inconnu ├──── ... ├── trainB ├──── (Train) Ensemble net de flou inconnu ├──── ... ├── trainC ├──── (Train) Ensemble flou de flou connu ├──── ... ├── trainD ├──── (Train) Ensemble net de flou connu ├──── ... ├── testA ├──── (Test) Ensemble flou de flou inconnu ├──── ...
où:
test-set
de l'ensemble de données Unknown Blur. Pour entraîner le modèle :
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
Pour évaluer le modèle :
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
Pour des résultats plus interactifs, vous pouvez consulter la page de mon projet : https://zero1778.github.io/blur2blur/
Nous souhaitons exprimer notre gratitude aux implémentations suivantes pour leurs contributions au développement de Blur2Blur :
Si vous avez des questions ou des suggestions sur ce dépôt, n'hésitez pas à me contacter ([email protected]).