• Stars
    star
    111
  • Rank 314,510 (Top 7 %)
  • Language
    Python
  • License
    MIT License
  • Created over 7 years ago
  • Updated about 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

This project is an implementation of the Generative Adversarial Network proposed in our CVPR 2017 paper - DeLiGAN : Generative Adversarial Networks for Diverse and Limited Data. DeLiGAN is a simple but effective modification of the GAN framework and aims to improve performance on datasets which are diverse yet small in size.

DeLiGAN

alt text

This project is an implementation of the Generative Adversarial Network proposed in our CVPR 2017 paper - DeLiGAN : Generative Adversarial Networks for Diverse and Limited Data. Via this project, we make two contributions:

  1. We propose a simple but effective modification of the GAN framework for settings where training data is diverse yet small in size.
  2. We propose a modification of inception-score proposed by Salimans et al. Our modified inception-score provides a single, unified measure of inter-class and intra-class variety in samples generated by a GAN.

Dependencies

The code for DeLiGAN is provided in Tensorflow 0.10 for the MNIST and Toy dataset, and in Theano 0.8.2 + Lasagne 0.2 for the CIFAR-10 and Sketches dataset. This code was tested on a Ubuntu 14.04 workstation hosting a NVIDIA Titan X GPU.

Datasets

This repository includes implementations for 4 different datasets.

  1. Toy (self generated unimodal and bimodal gaussians)
  2. MNIST (http://www.cs.toronto.edu/~gdahl/mnist.npz.gz)
  3. CIFAR-10 (https://www.cs.toronto.edu/~kriz/cifar.html)
  4. Sketches (http://cybertron.cg.tu-berlin.de/eitz/projects/classifysketch/)

The models for evaluating DeLiGAN on these datasets can be found in our repo. The details for how to download and lay out the datasets can be found in src/datasets/README.md

Usage

Training DeLiGAN models

To run any of the models

  • First download the datasets and store them in the respective sub-folder of the datasets folder (src/datasets/)
  • To run the model on any of the datasets, go to the respective src folders and run the dg_'dataset'.py file in the respective dataset folders with two arguments namely, --data_dir and --results_dir. For example, starting from the top-level folder,
cd src/sketches 
python dg_sketches.py --data_dir ../datasets/sketches/ --results_dir ../results/sketches
  • Note that the results_dir needs to have 'train' as a sub-folder.

Modified inception score

For example, to obtain the modified inception scores on CIFAR

  • Download the inception-v3 model (http://download.tensorflow.org/models/image/imagenet/inception-2015-12-05.tgz.) and store it in src/modified_inception_scores/cifar10/
  • Generate samples using the model trained in the dg_cifar.py and copy it to src/modified_inception_scores/cifar10/
  • Run transfer_cifar10_softmax_b1.py to transfer learn the last layer.
  • Perform the modifications detailed in the comments in transfer_cifar10_softmax_b1.py and re-run it to evaluate the inception scores.
  • The provided code can be modified slightly to work for sketches as well by following the comments provided in transfer_cifar10_softmax_b1.py

Parts of the code in this implementation have been borrowed from the Improved-GAN implementation by OpenAI (T. Salimans, I. Goodfellow, W. Zaremba, V. Cheung, A. Radford, and X. Chen. Improved techniques for training gans. In Advances in Neural Information Processing Systems, pages 2226–2234, 2016.)

Cite

@inproceedings{DeLiGAN17,
  author = {Gurumurthy, Swaminathan and Sarvadevabhatla, Ravi Kiran and R. Venkatesh Babu},
  title = {DeLiGAN : Generative Adversarial Networks for Diverse and Limited Data},
  booktitle = {Proceedings of the 2017 Conference on Computer Vision and Pattern Recognition},
  location = {Honolulu, Hawaii, USA}
 }

Q&A

Please send message to [email protected] if you have any query regarding the code.

More Repositories

1

lsc-cnn

Python
210
star
2

crowd-counting-scnn

This project is an implementation of the crowd counting model proposed in our CVPR 2017 paper - Switching Convolutional Neural Network(SCNN) for Crowd Counting. SCNN is an adaptation of the fully-convolutional neural network and uses an expert CNN that chooses the best crowd density CNN regressor for parts of the scene from a bag of regressors. This helps it tackle intra-scene crowd density variation and obtain SOTA results
Python
146
star
3

3d-lmnet

Repository for 3D-LMNet: Latent Embedding Matching for Accurate and Diverse 3D Point Cloud Reconstruction from a Single Image [BMVC 2018]
Python
113
star
4

cnn-fixations

Visualising predictions of deep neural networks
98
star
5

sketch-parse

Code, demos and data for SketchParse (a neural network for sketch segmentation). Paper:
Jupyter Notebook
80
star
6

GD-UAP

Generalized Data-free Universal Adversarial Perturbations
Python
69
star
7

SDAT

[ICML 2022]Source code for "A Closer Look at Smoothness in Domain Adversarial Training",
Python
68
star
8

fast-feature-fool

Data independent universal adversarial perturbations
Python
61
star
9

densepcr

Repository for 'Dense 3D Point Cloud Reconstruction Using a Deep Pyramid Network' [WACV 2019]
Python
52
star
10

expresso

expresso
Python
44
star
11

NoisyTwins

[CVPR 2023] Source code for NoisyTwins: Class-consistent and Diverse Image Generation Through StyleGANs
Python
34
star
12

DeiT-LT

[CVPR 2024] Code for our Paper "DeiT-LT: Distillation Strikes Back for Vision Transformer training on Long-Tailed Datasets"
Python
33
star
13

pose_estimation

Code for our work on pose-estimation using template 3D models.
Jupyter Notebook
32
star
14

nag

[CVPR 2018] Tensorflow implementation of NAG : Network for Adversary Generation
Python
32
star
15

ss_human_mesh

Code repository for the paper: Appearance Consensus Driven Self-Supervised Human Mesh Recovery
Python
31
star
16

css-ccnn

Implementation for "Completely Self-Supervised Crowd Counting via Distribution Matching" (http://arxiv.org/abs/2009.06420)
Python
29
star
17

Hard-Label-Model-Stealing

Python
26
star
18

3d-psrnet

Repository for 3D-PSRNet: Part Segmented 3D Point Cloud Reconstruction [ECCVW 2018]
Python
24
star
19

GAMA-GAT

Guided Adversarial Attack for Evaluating and Enhancing Adversarial Defenses, NeurIPS Spotlight 2020
Python
24
star
20

Saddle-LongTail

[NeurIPS 2022] Source code for our paper "Escaping Saddle Points for Effective Generalization on Class-Imbalanced Data"
Python
22
star
21

BPFC

Towards Achieving Adversarial Robustness by Enforcing Feature Consistency Across Bit Planes
Python
22
star
22

capnet

Code release for "CAPNet: Continuous Approximation Projection For 3D Point Cloud Reconstruction Using 2D Supervision", (AAAI-19)
Python
21
star
23

StickerDA

[ECCV22] Concurrent Subsidiary Supervision for Unsupervised Source-Free Domain Adaptation
Python
18
star
24

VL2V-ADiP

[CVPR 2024] Leveraging Vision-Language Models for Improving Domain Generalization in Image Classification
Python
18
star
25

USFDA

Universal Source-Free Domain Adaptation (CVPR 2020)
17
star
26

NuAT

Towards Efficient and Effective Adversarial Training, NeurIPS 2021
Python
16
star
27

gSRGAN

[ECCV2022] Source Code for "Improving GANs for Long-Tailed Data through Group Spectral Regularization"
Python
16
star
28

DAJAT

Official Code for Efficient and Effective Augmentation Strategy for Adversarial Training (NeurIPS-2022)
Python
15
star
29

s3vaada

Submodular Subset Selection for Active Domain Adaptation (ICCV 2021)
Python
15
star
30

sketch-object-recognition

C++
15
star
31

RMLVQA

Python
12
star
32

class-balancing-gan

Class Balancing GAN with a Classifier In The Loop (UAI 2021)
Python
12
star
33

InheriTune

Code Release for the CVPR 2020 (oral) paper, "Towards Inheritable Models for Open-set Domain Adaptation".
11
star
34

DART

[CVPR-2023] Official Code for DART: Diversify-Aggregate-Repeat Training Improves Generalization of Neural Networks
Python
10
star
35

SFDA-Seg

Generalize then Adapt: Source-free Domain Adaptation for Semantic Segmentation (ICCV 2021)
9
star
36

MixupDA

[ICML22] Balancing Discriminability and Transferability for Source-Free Domain Adaptation
Python
9
star
37

OAAT

Official Code for Scaling Adversarial Training to Large Perturbation Bounds (ECCV-2022)
Python
9
star
38

sketchguess

Repository for code, models and datasets for the paper Game of Sketches: Deep Recurrent Models of Pictionary-style Word Guessing accepted at 36th AAAI Conference on Artificial Intelligence (AAAI-18), New Orleans, USA
Python
9
star
39

FLSS

Official code for the paper - Boosting Adversarial Robustness using Feature Level Stochastic Smoothing
Python
7
star
40

CostSensitiveSelfTraining

[NeurIPS 2022] This repository contains the code for our work CSST: Cost Sensitive Self Training for Optimizing Non-Decomposable Objectives
Python
7
star
41

AAA

Python
6
star
42

SelMix

[ICLR 2024] [Spotlight]Code for our paper SelMix: Selective Mixup FineTuning
Python
4
star
43

EffSSL

Towards Efficient and Effective Self-Supervised Learning of Visual Representations
Python
4
star
44

sketch-object-part-analysis

Code and data related to analysis of object sketches at a semantic part-level
3
star
45

HSR

Code for Hierarchical Semantic Regularization of Latent Spaces in StyleGANs (ECCV 2022)
Python
3
star
46

DLCV

Webpage for DS265: Deep Learning in Computer Vision Course
CSS
2
star
47

gat

Repository for the Gray-box Adversarial Training project presented at ECCV 2018.
Python
2
star
48

swiden

Jupyter Notebook
2
star
49

DSiT-SFDA

[ICCV23] Domain-Specificity Inducing Transformers for Source-Free Domain Adaptation
1
star
50

SAT-Rx

Regularizers for Single-step Adversarial training
Python
1
star