TL;DR : Blur2Blur convierte imágenes de un desenfoque desconocido en un desenfoque conocido. Esta versión conserva el contenido original al tiempo que aplica un núcleo de desenfoque diferente que ha sido entrenado y capturado de manera efectiva mediante modelos de desenfoque de supervisión.
Resumen : Este artículo presenta un marco innovador diseñado para entrenar un algoritmo de eliminación de imágenes borrosas adaptado a un dispositivo de cámara específico. Este algoritmo funciona transformando una imagen de entrada borrosa, que es difícil de desenfocar, en otra imagen borrosa que es más fácil de desenfocar. El proceso de transformación, de un estado borroso a otro, aprovecha datos no emparejados que consisten en imágenes nítidas y borrosas capturadas por el dispositivo de cámara objetivo. Aprender esta transformación de desenfoque a borroso es inherentemente más simple que la conversión directa de desenfoque a nítido, ya que implica principalmente modificar patrones de desenfoque en lugar de la intrincada tarea de reconstruir detalles finos de la imagen. La eficacia del enfoque propuesto ha quedado demostrada a través de experimentos exhaustivos en varios puntos de referencia, donde supera significativamente a los métodos más modernos tanto cuantitativa como cualitativamente.
Los detalles de la arquitectura del modelo y los resultados experimentales se pueden encontrar en nuestro artículo:
@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 nuestro artículo siempre que este repositorio se utilice para ayudar a producir resultados publicados o se incorpore a otro software.
Instalar dependencias:
git clone https://github.com/VinAIResearch/Blur2Blur
cd Blur2Blur
conda create -n blur2blur python=3.9
conda activate blur2blur
pip install -r requirements.txt
Puede descargar nuestro conjunto de datos RB2V propuesto siguiendo este script:
chmod +x ./dataset/download_RB2V.sh
bash ./dataset/download_RB2V.sh
Descargue los conjuntos de datos REDS, GoPro y RSBlur, luego descomprímalos en la carpeta ./dataset
y organícelos siguiendo este formato:
conjunto de datos ├── Nombre del conjunto de datos desconocido-conocido, por ejemplo, RB2V-GoPro ├── trenA ├──── (Tren) Conjunto borroso de Desenfoque Desconocido ├────... ├── trenB ├──── (Tren) Conjunto nítido de desenfoque desconocido ├────... ├── trenC ├──── (Tren) Conjunto borroso de Desenfoque conocido ├────... ├── trenD ├──── (Tren) Conjunto nítido de desenfoque conocido ├────... ├── pruebaA ├──── (Prueba) Conjunto borroso de Desenfoque desconocido ├────...
dónde:
test-set
del conjunto de datos Unknown Blur. Para entrenar el 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
o
bash ./scripts/train.sh
Para evaluar el 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
o
bash ./scripts/test.sh
Para obtener resultados más interactivos, puede echar un vistazo a la página de mi proyecto: https://zero1778.github.io/blur2blur/
Nos gustaría extender nuestro agradecimiento a las siguientes implementaciones por sus contribuciones al desarrollo de Blur2Blur:
Si tiene alguna pregunta o sugerencia sobre este repositorio, no dude en ponerse en contacto conmigo ([email protected]).