VITA-Group / DeblurGANv2

[ICCV 2019] "DeblurGAN-v2: Deblurring (Orders-of-Magnitude) Faster and Better" by Orest Kupyn, Tetiana Martyniuk, Junru Wu, Zhangyang Wang
Other
1.01k stars 264 forks source link
deblurgan deep-learning generative-adversarial-network iccv iccv2019 low-level-vision pytorch ukraine

DeblurGAN-v2: Deblurring (Orders-of-Magnitude) Faster and Better

Code for this paper DeblurGAN-v2: Deblurring (Orders-of-Magnitude) Faster and Better

Orest Kupyn, Tetiana Martyniuk, Junru Wu, Zhangyang Wang

In ICCV 2019

Overview

We present a new end-to-end generative adversarial network (GAN) for single image motion deblurring, named DeblurGAN-v2, which considerably boosts state-of-the-art deblurring efficiency, quality, and flexibility. DeblurGAN-v2 is based on a relativistic conditional GAN with a double-scale discriminator. For the first time, we introduce the Feature Pyramid Network into deblurring, as a core building block in the generator of DeblurGAN-v2. It can flexibly work with a wide range of backbones, to navigate the balance between performance and efficiency. The plug-in of sophisticated backbones (e.g., Inception-ResNet-v2) can lead to solid state-of-the-art deblurring. Meanwhile, with light-weight backbones (e.g., MobileNet and its variants), DeblurGAN-v2 reaches 10-100 times faster than the nearest competitors, while maintaining close to state-of-the-art results, implying the option of real-time video deblurring. We demonstrate that DeblurGAN-v2 obtains very competitive performance on several popular benchmarks, in terms of deblurring quality (both objective and subjective), as well as efficiency. Besides, we show the architecture to be effective for general image restoration tasks too.

DeblurGAN-v2 Architecture

## Datasets The datasets for training can be downloaded via the links below: - [DVD](https://drive.google.com/file/d/1bpj9pCcZR_6-AHb5aNnev5lILQbH8GMZ/view) - [GoPro](https://drive.google.com/file/d/1KStHiZn5TNm2mo3OLZLjnRvd0vVFCI0W/view) - [NFS](https://drive.google.com/file/d/1Ut7qbQOrsTZCUJA_mJLptRMipD8sJzjy/view) ## Training #### Command ```python train.py``` training script will load config under config/config.yaml #### Tensorboard visualization ![](./doc_images/tensorboard2.png) ## Testing To test on a single image, ```python predict.py IMAGE_NAME.jpg``` By default, the name of the pretrained model used by Predictor is 'best_fpn.h5'. One can change it in the code ('weights_path' argument). It assumes that the fpn_inception backbone is used. If you want to try it with different backbone pretrain, please specify it also under ['model']['g_name'] in config/config.yaml. ## Pre-trained models
Dataset G Model D Model Loss Type PSNR/ SSIM Link
GoPro Test Dataset InceptionResNet-v2 double_gan ragan-ls 29.55/ 0.934 fpn_inception.h5
MobileNet double_gan ragan-ls 28.17/ 0.925 fpn_mobilenet.h5
MobileNet-DSC double_gan ragan-ls 28.03/ 0.922
## Parent Repository The code was taken from https://github.com/KupynOrest/RestoreGAN . This repository contains flexible pipelines for different Image Restoration tasks. ## Citation If you use this code for your research, please cite our paper. ``` ​``` @InProceedings{Kupyn_2019_ICCV, author = {Orest Kupyn and Tetiana Martyniuk and Junru Wu and Zhangyang Wang}, title = {DeblurGAN-v2: Deblurring (Orders-of-Magnitude) Faster and Better}, booktitle = {The IEEE International Conference on Computer Vision (ICCV)}, month = {Oct}, year = {2019} } ​``` ```