All Projects → henzler → neuraltexture

henzler / neuraltexture

Licence: MIT license
Learning a Neural 3D Texture Space from 2D Exemplars [CVPR 2020]

Programming Languages

python
139335 projects - #7 most used programming language
Cuda
1817 projects
C++
36643 projects - #6 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to neuraltexture

Texturize
A unified framework for example-based texture synthesis, developed alongside my master's thesis.
Stars: ✭ 15 (-82.95%)
Mutual labels:  computer-graphics, texture-synthesis
snarf
Official code release for ICCV 2021 paper SNARF: Differentiable Forward Skinning for Animating Non-rigid Neural Implicit Shapes.
Stars: ✭ 184 (+109.09%)
Mutual labels:  computer-graphics
colidr
Coherent Line Drawing implementation in Go.
Stars: ✭ 52 (-40.91%)
Mutual labels:  computer-graphics
computer-graphics-from-scratch-Notes
my notes of reading the book <computer-graphics-from-scratch>
Stars: ✭ 31 (-64.77%)
Mutual labels:  computer-graphics
WebGL-Billiards
ThreeJS based 8-ball pool
Stars: ✭ 28 (-68.18%)
Mutual labels:  computer-graphics
ICON
ICON: Implicit Clothed humans Obtained from Normals (CVPR 2022)
Stars: ✭ 641 (+628.41%)
Mutual labels:  computer-graphics
referit3d
Code accompanying our ECCV-2020 paper on 3D Neural Listeners.
Stars: ✭ 59 (-32.95%)
Mutual labels:  computer-graphics
opengl-demos
A list of small OpenGL applications to demonstrate concepts of Computer Graphics
Stars: ✭ 33 (-62.5%)
Mutual labels:  computer-graphics
ComputerGraphics-OpenGL
No description or website provided.
Stars: ✭ 25 (-71.59%)
Mutual labels:  computer-graphics
PARE
Code for ICCV2021 paper PARE: Part Attention Regressor for 3D Human Body Estimation
Stars: ✭ 222 (+152.27%)
Mutual labels:  computer-graphics
rasterator
Real-time software rasterizer written in C++ with windowing and model loading support.
Stars: ✭ 15 (-82.95%)
Mutual labels:  computer-graphics
papers
Summarizing the papers I have read (Japanese)
Stars: ✭ 38 (-56.82%)
Mutual labels:  computer-graphics
MineCube
A Cool Voxel Editor Based on OpenGL 3.3+ !
Stars: ✭ 23 (-73.86%)
Mutual labels:  computer-graphics
CubbyFlow
Voxel-based fluid simulation engine for computer games
Stars: ✭ 215 (+144.32%)
Mutual labels:  computer-graphics
ProceduralTerrain
Polygon is a procedural mesh generator in Unity.
Stars: ✭ 18 (-79.55%)
Mutual labels:  computer-graphics
shading-lab
🔮 Shader Authoring Lab
Stars: ✭ 24 (-72.73%)
Mutual labels:  computer-graphics
GX-EncinoWaves
Graphics Experiment - FFT Ocean Water Simulation
Stars: ✭ 34 (-61.36%)
Mutual labels:  computer-graphics
FontRNN
Implementation of FontRNN [Computer Graphics Forum, 2019].
Stars: ✭ 27 (-69.32%)
Mutual labels:  computer-graphics
Super-Sunshine
A ray-tracer with a simple scene description language for easily generating beautiful images.
Stars: ✭ 115 (+30.68%)
Mutual labels:  computer-graphics
tiny-path
An instructive one-file Ruby path tracer
Stars: ✭ 53 (-39.77%)
Mutual labels:  computer-graphics

Neural Texture

Official code repository for the paper:

Learning a Neural 3D Texture Space from 2D Exemplars [CVPR, 2020]

Henzler, J. Mitra, Ritschel

[Paper] [Project page]

Data

We downloaded all our textures from https://www.textures.com/. Due to licensing reasons we cannot provide the data for training, however, we provide pre-trained models under trained_models for the classes wood, grass, marble, rust_paint.

Inference

In order to evaluate textures, add the desired texture to the corresponding folder under datasets/<class_name>/test and use one of the pre-trained models under trained_models/ and run the evaluation (see instructions below). We already provide some exemplars.

Training

For training you will need to provide data sets under datasets/<your_folder> and provide two subdirectories: train and test. We provide test exemplars for wood, grass, marble and rust_paint. If you would like to train using these classes please add a train folder containing training data.

Prerequisites

  • Ubuntu 18.04
  • cuDNN 7
  • CUDA 10.1
  • python3+
  • pyTorch 1.4
  • Download pretrained models (optional)

Install dependencies

cd code/
pip install -r requirements.txt

cd custom_ops/noise
# build cuda code for noise sampler
TORCH_CUDA_ARCH_LIST=<desired version> python setup.py install

Download pre-trained models

sh download_pretrained_models.sh

Logs

To visualise pre-trained training logs run the following:

tensorboard --logdir=./trained_models

Usage

Config file

The config files are located in code/configs/neural_texture. In the following we give an explanation for the most important variables:

dim: 2 # choose between 2 and 3 for 2D and 3D.
dataset:
  path: '../datasets/wood' # set path 
  use_single: -1 # -1 = train entire data set | 0,1,2,... = for single training

Training

cd code/
python train_neural_texture.py --config_path=<path/to/config> --job_id=<your_id>

The default config_path is set to configs/neural_texture/config_default.yaml. The default job_id is set to 1.

Inference

cd code/
python test_neural_texture.py --trained_model_path=path/to/models

The default trained_model_path is set to ../trained_models. The results are saved under trained_model_path/{model}/results

Bibtex

If you use the code, please cite our paper:

@inproceedings{henzler2020neuraltexture,
    title={Learning a Neural 3D Texture Space from 2D Exemplars},
    author={Henzler, Philipp and Mitra, Niloy J and Ritschel, Tobias},
    booktitle={The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}
    month={June},
    year={2020}
}
Side Note

Unlike reported in the paper the encoder network in this implementation uses a ResNet architecture as it stabilises training.

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