All Projects → junyanz → Von

junyanz / Von

Licence: other
[NeurIPS 2018] Visual Object Networks: Image Generation with Disentangled 3D Representation.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Von

Cyclegan
Software that can generate photos from paintings, turn horses into zebras, perform style transfer, and more.
Stars: ✭ 10,933 (+2099.8%)
Mutual labels:  generative-adversarial-network, gans, pix2pix, cyclegan
Pytorch Cyclegan And Pix2pix
Image-to-Image Translation in PyTorch
Stars: ✭ 16,477 (+3215.29%)
Mutual labels:  generative-adversarial-network, gans, pix2pix, cyclegan
pytorch-gans
PyTorch implementation of GANs (Generative Adversarial Networks). DCGAN, Pix2Pix, CycleGAN, SRGAN
Stars: ✭ 21 (-95.77%)
Mutual labels:  generative-adversarial-network, gans, pix2pix, cyclegan
Gan Compression
[CVPR 2020] GAN Compression: Efficient Architectures for Interactive Conditional GANs
Stars: ✭ 800 (+60.97%)
Mutual labels:  gans, pix2pix, cyclegan
Pix2depth
DEPRECATED: Depth Map Estimation from Monocular Images
Stars: ✭ 293 (-41.05%)
Mutual labels:  gans, pix2pix, cyclegan
Bicyclegan
Toward Multimodal Image-to-Image Translation
Stars: ✭ 1,215 (+144.47%)
Mutual labels:  generative-adversarial-network, gans, pix2pix
Generative models tutorial with demo
Generative Models Tutorial with Demo: Bayesian Classifier Sampling, Variational Auto Encoder (VAE), Generative Adversial Networks (GANs), Popular GANs Architectures, Auto-Regressive Models, Important Generative Model Papers, Courses, etc..
Stars: ✭ 276 (-44.47%)
Mutual labels:  generative-adversarial-network, gans, cyclegan
Contrastive Unpaired Translation
Contrastive unpaired image-to-image translation, faster and lighter training than cyclegan (ECCV 2020, in PyTorch)
Stars: ✭ 822 (+65.39%)
Mutual labels:  generative-adversarial-network, gans, cyclegan
Matlab Gan
MATLAB implementations of Generative Adversarial Networks -- from GAN to Pixel2Pixel, CycleGAN
Stars: ✭ 63 (-87.32%)
Mutual labels:  gans, pix2pix, cyclegan
coursera-gan-specialization
Programming assignments and quizzes from all courses within the GANs specialization offered by deeplearning.ai
Stars: ✭ 277 (-44.27%)
Mutual labels:  generative-adversarial-network, gans, pix2pix
skip-thought-gan
Generating Text through Adversarial Training(GAN) using Skip-Thought Vectors
Stars: ✭ 44 (-91.15%)
Mutual labels:  generative-adversarial-network, gans
gans-collection.torch
Torch implementation of various types of GAN (e.g. DCGAN, ALI, Context-encoder, DiscoGAN, CycleGAN, EBGAN, LSGAN)
Stars: ✭ 53 (-89.34%)
Mutual labels:  generative-adversarial-network, gans
AvatarGAN
Generate Cartoon Images using Generative Adversarial Network
Stars: ✭ 24 (-95.17%)
Mutual labels:  generative-adversarial-network, gans
Image-Colorization-CycleGAN
Colorization of grayscale images using CycleGAN in TensorFlow.
Stars: ✭ 16 (-96.78%)
Mutual labels:  generative-adversarial-network, cyclegan
DLSS
Deep Learning Super Sampling with Deep Convolutional Generative Adversarial Networks.
Stars: ✭ 88 (-82.29%)
Mutual labels:  generative-adversarial-network, gans
Deep-Learning
It contains the coursework and the practice I have done while learning Deep Learning.🚀 👨‍💻💥 🚩🌈
Stars: ✭ 21 (-95.77%)
Mutual labels:  generative-adversarial-network, gans
traiNNer
traiNNer: Deep learning framework for image and video super-resolution, restoration and image-to-image translation, for training and testing.
Stars: ✭ 130 (-73.84%)
Mutual labels:  pix2pix, cyclegan
BicycleGAN-pytorch
Pytorch implementation of BicycleGAN with implementation details
Stars: ✭ 99 (-80.08%)
Mutual labels:  generative-adversarial-network, cyclegan
Hands On Deep Learning Algorithms With Python
Master Deep Learning Algorithms with Extensive Math by Implementing them using TensorFlow
Stars: ✭ 272 (-45.27%)
Mutual labels:  gans, cyclegan
Faceswap Gan
A denoising autoencoder + adversarial losses and attention mechanisms for face swapping.
Stars: ✭ 3,099 (+523.54%)
Mutual labels:  generative-adversarial-network, gans

Visual Object Networks

Project Page | Paper

We present Visual Object Networks (VON), an end-to-end adversarial learning framework that jointly models 3D shapes and 2D images. Our model can synthesize a 3D shape, its intermediate 2.5D depth representation, and a 2D image all at once. The VON not only generates realistic images but also enables several 3D operations.

Visual Object Networks: Image Generation with Disentangled 3D Representation.
Jun-Yan Zhu, Zhoutong Zhang, Chengkai Zhang, Jiajun Wu, Antonio Torralba, Joshua B. Tenenbaum, William T. Freeman.
MIT CSAIL and Google Research.
In NeurIPS 2018.

Example results

(a) Typical examples produced by a recent GAN model [Gulrajani et al., 2017].
(b) Our model produces three outputs: a 3D shape, its 2.5D projection given a viewpoint, and a final image with realistic texture.
(c) Our model allows several 3D applications including editing viewpoint, shape, or texture independently.

More samples

Below we show more samples from DCGAN [Radford et al., 2016], LSGAN [Mao et al., 2017], WGAN-GP [Gulrajani et al., 2017], and our VON. For our method, we show both 3D shapes and 2D images. The learned 3D prior helps produce better samples.

3D object manipulations

Our VON allows several 3D applications such as (left) changing the viewpoint, texture, or shape independently, and (right) interpolating between two objects in shape space, texture space, or both.

Transfer texture across objects and viewpoints

VON can transfer the texture of a real image to different shapes and viewpoints

Prerequisites

  • Linux (only tested on Ubuntu 16.04)
  • Python3 (only tested with python 3.6)
  • Anaconda3
  • NVCC & GCC (only tested with gcc 6.3.0)
  • PyTorch 0.4.1 (does not support 0.4.0)
  • Currently not tested with Nvidia RTX GPU series
  • Docker Engine and Nvidia-Docker2 if using Docker container.

Getting Started

Installation

  • Clone this repo:
git clone -b master --single-branch https://github.com/junyanz/VON.git
cd VON
  • Install PyTorch 0.4.1+ and torchvision from http://pytorch.org and other dependencies (e.g., visdom and dominate). You can install all the dependencies by the following:
conda create --name von --file pkg_specs.txt
source activate von
  • Compile our rendering kernel by running the following:
bash install.sh

We only test this step with gcc 6.3.0. If you need to recompile the kernel, please run bash clean.sh first before you recompile it.

  • If you can not compile the custom kernels, we provide a Dockerfile for building a working container. To use the Dockerfile, you need to install Docker Engine and Nvidia-Docker2 for using Nvidia GPUs inside the docker container. To build the docker image, run:
sudo docker build ./../von -t von

To access the container, run:

sudo docker run -it --runtime=nvidia --ipc=host von /bin/bash

Then, to compile the kernels, simply:

cd /app/von
source activate von
./install.sh
  • (Optional) Install blender for visualizing generated 3D shapes. After installation, please add blender to the PATH environment variable.

Generate 3D shapes, 2.5D sketches, and images

  • Download our pretrained models:
bash ./scripts/download_model.sh
  • Generate results with the model
bash ./scripts/figures.sh 0 car df

The test results will be saved to an HTML file here: ./results/*/*/index.html.

Model Training

  • To train a model, download the training dataset (distance functions and images). For example, if we would like to train a car model with distance function representation on GPU 0.
bash ./scripts/download_dataset.sh
  • To train a 3D generator:
bash ./scripts/train_shape.sh 0 car df
  • To train a 2D texture network using ShapeNet real shapes:
bash ./scripts/train_texture_real.sh 0 car df 0
  • To train a 2D texture network using pre-trained 3D generator:
bash ./scripts/train_texture.sh 0 car df 0
  • Jointly finetune 3D and 2D generative models:
bash ./scripts/train_full.sh 0 car df 0
  • To view training results and loss plots, go to http://localhost:8097 in a web browser. To see more intermediate results, check out ./checkpoints/*/web/index.html

Citation

If you find this useful for your research, please cite the following paper.

@inproceedings{VON,
  title={Visual Object Networks: Image Generation with Disentangled 3{D} Representations},
  author={Jun-Yan Zhu and Zhoutong Zhang and Chengkai Zhang and Jiajun Wu and Antonio Torralba and Joshua B. Tenenbaum and William T. Freeman},
  booktitle={Advances in Neural Information Processing Systems (NeurIPS)},
  year={2018}
}

Acknowledgements

This work is supported by NSF #1231216, NSF #1524817, ONR MURI N00014-16-1-2007, Toyota Research Institute, Shell, and Facebook. We thank Xiuming Zhang, Richard Zhang, David Bau, and Zhuang Liu for valuable discussions. This code borrows from the CycleGAN & pix2pix repo.

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].