All Projects → ranahanocka → Meshcnn

ranahanocka / Meshcnn

Licence: mit
Convolutional Neural Network for 3D meshes in PyTorch

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Meshcnn

Open3d
Open3D: A Modern Library for 3D Data Processing
Stars: ✭ 5,860 (+467.83%)
Mutual labels:  3d, computer-graphics
3d Convolutional Speaker Recognition
🔈 Deep Learning & 3D Convolutional Neural Networks for Speaker Verification
Stars: ✭ 697 (-32.46%)
Mutual labels:  3d, convolutional-neural-networks
Colorization Pytorch
PyTorch reimplementation of Interactive Deep Colorization
Stars: ✭ 449 (-56.49%)
Mutual labels:  computer-graphics, convolutional-neural-networks
Tinyraytracer
A brief computer graphics / rendering course
Stars: ✭ 3,971 (+284.79%)
Mutual labels:  3d, computer-graphics
3d Machine Learning
A resource repository for 3D machine learning
Stars: ✭ 7,405 (+617.54%)
Mutual labels:  3d, mesh
Easy3d
A lightweight, easy-to-use, and efficient C++ library for processing and rendering 3D data
Stars: ✭ 383 (-62.89%)
Mutual labels:  computer-graphics, mesh
Sdf
Simple SDF mesh generation in Python
Stars: ✭ 683 (-33.82%)
Mutual labels:  3d, mesh
Apc Vision Toolbox
MIT-Princeton Vision Toolbox for the Amazon Picking Challenge 2016 - RGB-D ConvNet-based object segmentation and 6D object pose estimation.
Stars: ✭ 277 (-73.16%)
Mutual labels:  3d, segmentation
Vedo
A python module for scientific analysis of 3D objects based on VTK and numpy
Stars: ✭ 741 (-28.2%)
Mutual labels:  3d, mesh
Pyvista
3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK)
Stars: ✭ 734 (-28.88%)
Mutual labels:  3d, mesh
Bcdu Net
BCDU-Net : Medical Image Segmentation
Stars: ✭ 314 (-69.57%)
Mutual labels:  convolutional-neural-networks, segmentation
R1b
A thermal-printer-oriented, 1-bit graphics rasterizer for 2D and 3D
Stars: ✭ 29 (-97.19%)
Mutual labels:  3d, computer-graphics
Cvpods
All-in-one Toolbox for Computer Vision Research.
Stars: ✭ 277 (-73.16%)
Mutual labels:  3d, segmentation
Hmm
Heightmap meshing utility.
Stars: ✭ 403 (-60.95%)
Mutual labels:  3d, mesh
Mvcnn
Multi-view CNN (MVCNN) for shape recognition
Stars: ✭ 285 (-72.38%)
Mutual labels:  computer-graphics, convolutional-neural-networks
Cilantro
A lean C++ library for working with point cloud data
Stars: ✭ 577 (-44.09%)
Mutual labels:  3d, segmentation
ACVD
a program to perform fast simplification of 3D surface meshes
Stars: ✭ 124 (-87.98%)
Mutual labels:  computer-graphics, mesh
Pytorch Saltnet
Kaggle | 9th place single model solution for TGS Salt Identification Challenge
Stars: ✭ 270 (-73.84%)
Mutual labels:  convolutional-neural-networks, segmentation
Torchio
Medical image preprocessing and augmentation toolkit for deep learning
Stars: ✭ 708 (-31.4%)
Mutual labels:  convolutional-neural-networks, segmentation
Fssgi
Exploratory Project on Fast Screen Space Global Illumination
Stars: ✭ 22 (-97.87%)
Mutual labels:  computer-graphics, convolutional-neural-networks



MeshCNN in PyTorch

SIGGRAPH 2019 [Paper] [Project Page]

MeshCNN is a general-purpose deep neural network for 3D triangular meshes, which can be used for tasks such as 3D shape classification or segmentation. This framework includes convolution, pooling and unpooling layers which are applied directly on the mesh edges.


The code was written by Rana Hanocka and Amir Hertz with support from Noa Fish.

Getting Started

Installation

  • Clone this repo:
git clone https://github.com/ranahanocka/MeshCNN.git
cd MeshCNN
  • Install dependencies: PyTorch version 1.2. Optional : tensorboardX for training plots.
    • Via new conda environment conda env create -f environment.yml (creates an environment called meshcnn)

3D Shape Classification on SHREC

Download the dataset

bash ./scripts/shrec/get_data.sh

Run training (if using conda env first activate env e.g. source activate meshcnn)

bash ./scripts/shrec/train.sh

To view the training loss plots, in another terminal run tensorboard --logdir runs and click http://localhost:6006.

Run test and export the intermediate pooled meshes:

bash ./scripts/shrec/test.sh

Visualize the network-learned edge collapses:

bash ./scripts/shrec/view.sh

An example of collapses for a mesh:

Note, you can also get pre-trained weights using bash ./scripts/shrec/get_pretrained.sh.

In order to use the pre-trained weights, run train.sh which will compute and save the mean / standard deviation of the training data.

3D Shape Segmentation on Humans

The same as above, to download the dataset / run train / get pretrained / run test / view

bash ./scripts/human_seg/get_data.sh
bash ./scripts/human_seg/train.sh
bash ./scripts/human_seg/get_pretrained.sh
bash ./scripts/human_seg/test.sh
bash ./scripts/human_seg/view.sh

Some segmentation result examples:

Additional Datasets

The same scripts also exist for COSEG segmentation in scripts/coseg_seg and cubes classification in scripts/cubes.

More Info

Check out the MeshCNN wiki for more details. Specifically, see info on segmentation and data processing.

Citation

If you find this code useful, please consider citing our paper

@article{hanocka2019meshcnn,
  title={MeshCNN: A Network with an Edge},
  author={Hanocka, Rana and Hertz, Amir and Fish, Noa and Giryes, Raja and Fleishman, Shachar and Cohen-Or, Daniel},
  journal={ACM Transactions on Graphics (TOG)},
  volume={38},
  number={4},
  pages = {90:1--90:12},
  year={2019},
  publisher={ACM}
}

Questions / Issues

If you have questions or issues running this code, please open an issue so we can know to fix it.

Acknowledgments

This code design was adopted from pytorch-CycleGAN-and-pix2pix.

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