All Projects → aiff22 → Dped

aiff22 / Dped

Software and pre-trained models for automatic photo quality enhancement using Deep Convolutional Networks

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Dped

Deblurgan
Image Deblurring using Generative Adversarial Networks
Stars: ✭ 2,033 (+54.6%)
Mutual labels:  convolutional-neural-networks, gan, image-processing
Deep learning projects
Stars: ✭ 28 (-97.87%)
Mutual labels:  convolutional-neural-networks, gan, image-processing
St Cgan
Dataset and Code for our CVPR'18 paper ST-CGAN: "Stacked Conditional Generative Adversarial Networks for Jointly Learning Shadow Detection and Shadow Removal"
Stars: ✭ 13 (-99.01%)
Mutual labels:  gan, image-processing
Tensorflow Srgan
Tensorflow implementation of "Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network" (Ledig et al. 2017)
Stars: ✭ 33 (-97.49%)
Mutual labels:  convolutional-neural-networks, gan
Computervision Recipes
Best Practices, code samples, and documentation for Computer Vision.
Stars: ✭ 8,214 (+524.64%)
Mutual labels:  convolutional-neural-networks, image-processing
Dmsmsgrcg
A photo OCR project aims to output DMS messages contained in sign structure images.
Stars: ✭ 18 (-98.63%)
Mutual labels:  convolutional-neural-networks, image-processing
Csmri Refinement
Code for "Adversarial and Perceptual Refinement Compressed Sensing MRI Reconstruction"
Stars: ✭ 21 (-98.4%)
Mutual labels:  gan, generative-adversarial-networks
Pro gan pytorch Examples
Examples trained using the python pytorch package pro-gan-pth
Stars: ✭ 39 (-97.03%)
Mutual labels:  convolutional-neural-networks, gan
Hidt
Official repository for the paper "High-Resolution Daytime Translation Without Domain Labels" (CVPR2020, Oral)
Stars: ✭ 513 (-60.99%)
Mutual labels:  gan, image-processing
Geneva
Code to train and evaluate the GeNeVA-GAN model for the GeNeVA task proposed in our ICCV 2019 paper "Tell, Draw, and Repeat: Generating and modifying images based on continual linguistic instruction"
Stars: ✭ 71 (-94.6%)
Mutual labels:  gan, generative-adversarial-networks
Cyclegan Qp
Official PyTorch implementation of "Artist Style Transfer Via Quadratic Potential"
Stars: ✭ 59 (-95.51%)
Mutual labels:  convolutional-neural-networks, gan
Pytorch Pix2pix
Pytorch implementation of pix2pix for various datasets.
Stars: ✭ 74 (-94.37%)
Mutual labels:  gan, generative-adversarial-networks
Lightning Bolts
Toolbox of models, callbacks, and datasets for AI/ML researchers.
Stars: ✭ 829 (-36.96%)
Mutual labels:  gan, image-processing
Segan
Speech Enhancement Generative Adversarial Network in TensorFlow
Stars: ✭ 661 (-49.73%)
Mutual labels:  gan, generative-adversarial-networks
Exposure
Learning infinite-resolution image processing with GAN and RL from unpaired image datasets, using a differentiable photo editing model.
Stars: ✭ 605 (-53.99%)
Mutual labels:  gan, image-processing
Cyclegan
PyTorch implementation of CycleGAN
Stars: ✭ 38 (-97.11%)
Mutual labels:  gan, generative-adversarial-networks
Fashion Mnist
A MNIST-like fashion product database. Benchmark 👇
Stars: ✭ 9,675 (+635.74%)
Mutual labels:  convolutional-neural-networks, gan
Deblur Gan
Keras implementation of "DeblurGAN: Blind Motion Deblurring Using Conditional Adversarial Networks"
Stars: ✭ 483 (-63.27%)
Mutual labels:  gan, generative-adversarial-networks
Tracking With Darkflow
Real-time people Multitracker using YOLO v2 and deep_sort with tensorflow
Stars: ✭ 515 (-60.84%)
Mutual labels:  convolutional-neural-networks, image-processing
Keras Gan
Keras implementations of Generative Adversarial Networks.
Stars: ✭ 8,494 (+545.93%)
Mutual labels:  gan, generative-adversarial-networks

DSLR-Quality Photos on Mobile Devices with Deep Convolutional Networks



1. Overview [Paper] [Project webpage] [Enhancing RAW photos] [Rendering Bokeh Effect]

The provided code implements the paper that presents an end-to-end deep learning approach for translating ordinary photos from smartphones into DSLR-quality images. The learned model can be applied to photos of arbitrary resolution, while the methodology itself is generalized to any type of digital camera. More visual results can be found here.

2. Prerequisites

3. First steps

  • Download the pre-trained VGG-19 model Mirror and put it into vgg_pretrained/ folder
  • Download DPED dataset (patches for CNN training) and extract it into dped/ folder.
    This folder should contain three subolders: sony/, iphone/ and blackberry/

4. Train the model

python train_model.py model=<model>

Obligatory parameters:

model: iphone, blackberry or sony

Optional parameters and their default values:

batch_size: 50   -   batch size [smaller values can lead to unstable training]
train_size: 30000   -   the number of training patches randomly loaded each eval_step iterations
eval_step: 1000   -   each eval_step iterations the model is saved and the training data is reloaded
num_train_iters: 20000   -   the number of training iterations
learning_rate: 5e-4   -   learning rate
w_content: 10   -   the weight of the content loss
w_color: 0.5   -   the weight of the color loss
w_texture: 1   -   the weight of the texture [adversarial] loss
w_tv: 2000   -   the weight of the total variation loss
dped_dir: dped/   -   path to the folder with DPED dataset
vgg_dir: vgg_pretrained/imagenet-vgg-verydeep-19.mat   -   path to the pre-trained VGG-19 network

Example:

python train_model.py model=iphone batch_size=50 dped_dir=dped/ w_color=0.7

5. Test the provided pre-trained models

python test_model.py model=<model>

Obligatory parameters:

model: iphone_orig, blackberry_orig or sony_orig

Optional parameters:

test_subset: full,small   -   all 29 or only 5 test images will be processed
resolution: orig,high,medium,small,tiny   -   the resolution of the test images [orig means original resolution]
use_gpu: true,false   -   run models on GPU or CPU
dped_dir: dped/   -   path to the folder with DPED dataset

Example:

python test_model.py model=iphone_orig test_subset=full resolution=orig use_gpu=true

6. Test the obtained models

python test_model.py model=<model>

Obligatory parameters:

model: iphone, blackberry or sony

Optional parameters:

test_subset: full,small   -   all 29 or only 5 test images will be processed
iteration: all or <number>   -   get visual results for all iterations or for the specific iteration,
               <number> must be a multiple of eval_step
resolution: orig,high,medium,small,tiny   -   the resolution of the test images [orig means original resolution]
use_gpu: true,false   -   run models on GPU or CPU
dped_dir: dped/   -   path to the folder with DPED dataset

Example:

python test_model.py model=iphone iteration=13000 test_subset=full resolution=orig use_gpu=true

7. Folder structure

dped/   -   the folder with the DPED dataset
models/   -   logs and models that are saved during the training process
models_orig/   -   the provided pre-trained models for iphone, sony and blackberry
results/   -   visual results for small image patches that are saved while training
vgg-pretrained/   -   the folder with the pre-trained VGG-19 network
visual_results/   -   processed [enhanced] test images

load_dataset.py   -   python script that loads training data
models.py   -   architecture of the image enhancement [resnet] and adversarial networks
ssim.py   -   implementation of the ssim score
train_model.py   -   implementation of the training procedure
test_model.py   -   applying the pre-trained models to test images
utils.py   -   auxiliary functions
vgg.py   -   loading the pre-trained vgg-19 network


8. Problems and errors

What if I get an error: "OOM when allocating tensor with shape [...]"?

   Your GPU does not have enough memory. If this happens during the training process:

  • Decrease the size of the training batch [batch_size]. Note however that smaller values can lead to unstable training.

   If this happens while testing the models:

  • Run the model on CPU (set the parameter use_gpu to false). Note that this can take up to 5 minutes per image.
  • Use cropped images, set the parameter resolution to:

high   -   center crop of size 1680x1260 pixels
medium   -   center crop of size 1366x1024 pixels
small   -   center crop of size 1024x768 pixels
tiny   -   center crop of size 800x600 pixels

   The less resolution is - the smaller part of the image will be processed


9. Citation

@inproceedings{ignatov2017dslr,
  title={DSLR-Quality Photos on Mobile Devices with Deep Convolutional Networks},
  author={Ignatov, Andrey and Kobyshev, Nikolay and Timofte, Radu and Vanhoey, Kenneth and Van Gool, Luc},
  booktitle={Proceedings of the IEEE International Conference on Computer Vision},
  pages={3277--3285},
  year={2017}
}

10. Any further questions?

Please contact Andrey Ignatov ([email protected]) for more information
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].