GitHub - ranahanocka/MeshCNN: Convolutional Neural Network for 3D meshes in PyTo...
source link: https://github.com/ranahanocka/MeshCNN
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
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.0 (also works with 0.4+). Optional : tensorboardX for training plots.
- Via new conda environment
conda env create -f environment.yml
(creates an environment called meshcnn)
- Via new conda environment
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
.
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={arXiv preprint arXiv:1809.05910},
year={2019}
}
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.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK