TL;DR : Blur2Blur преобразует изображения с неизвестным размытием в известное размытие. Эта версия сохраняет исходное содержимое, применяя другое ядро размытия, которое было эффективно обучено и захвачено моделями контроля размытия.
Аннотация : В этой статье представлена инновационная структура, предназначенная для обучения алгоритму устранения размытия изображения, адаптированному к конкретному устройству камеры. Этот алгоритм работает путем преобразования размытого входного изображения, которое сложно устранить, в другое размытое изображение, которое более поддается устранению размытия. Процесс преобразования из одного размытого состояния в другое использует непарные данные, состоящие из резких и размытых изображений, снятых целевой камерой. Изучение этого преобразования «размытие в размытие» по своей сути проще, чем прямое преобразование «размытие в резкость», поскольку оно в первую очередь включает в себя изменение шаблонов размытия, а не сложную задачу восстановления мелких деталей изображения. Эффективность предложенного подхода была продемонстрирована посредством комплексных экспериментов по различным критериям, где он значительно превосходит современные методы как количественно, так и качественно.
Подробности об архитектуре модели и результатах экспериментов можно найти в нашей статье:
@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 }
}
Пожалуйста, цитируйте нашу статью всякий раз, когда этот репозиторий используется для получения опубликованных результатов или включается в другое программное обеспечение.
Установите зависимости:
git clone https://github.com/VinAIResearch/Blur2Blur
cd Blur2Blur
conda create -n blur2blur python=3.9
conda activate blur2blur
pip install -r requirements.txt
Вы можете скачать предлагаемый нами набор данных RB2V, выполнив этот скрипт:
chmod +x ./dataset/download_RB2V.sh
bash ./dataset/download_RB2V.sh
Загрузите наборы данных REDS, GoPro и RSBLur, затем разархивируйте их в папку ./dataset
и упорядочите в следующем формате:
набор данных ├── Название неизвестно-известного набора данных, например RB2V-GoPro. ├── поездА ├──── (Поезд) Размытый набор неизвестного размытия ├──── ... ├── поездB ├──── (Поезд) Резкий набор неизвестного размытия ├──── ... ├── поездC ├──── (Поезд) Размытый набор Известного Размытия ├──── ... ├── поездD ├──── (Поезд) Резкий набор известного размытия ├──── ... ├── тестА ├──── (Тест) Размытый набор неизвестного размытия ├──── ...
где:
test-set
данных Unknown Blur. Чтобы обучить модель:
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
или
bash ./scripts/train.sh
Чтобы оценить модель:
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
или
bash ./scripts/test.sh
Для получения более интерактивных результатов вы можете взглянуть на страницу моего проекта: https://zero1778.github.io/blur2blur/
Мы хотели бы выразить благодарность следующим реализациям за их вклад в разработку Blur2Blur:
Если у вас есть какие-либо вопросы или предложения по поводу этого репозитория, свяжитесь со мной ([email protected]).