This project modifies MeshCNN to handle large meshes efficiently and applies the improved framework to learn surface type segmentation on ABC Dataset, a large dataset of CAD models.
Project by Andrés Mandado
- Clone this repo:
git clone https://github.com/atomicsulfate/meshcnn-4-cadseg.git
cd meshcnn-4-cadseg.git
- Install dependencies with conda (creates an environment called cgp-meshcnn-basic):
cd development
conda env create -f basic_environment.yml
Download the dataset
bash ./scripts/seg/get_10K_dataset.sh
Run training (if using conda env first activate env e.g. conda activate cgp-meshcnn-basic
)
bash ./scripts/seg/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/seg/test.sh
Visualize the network-learned segmentation vs labels:
bash ./scripts/seg/view.sh
Some segmentation result examples:
Note, you can also get pre-trained weights using bash ./scripts/seg/get_pretrained.sh
.
- development
- meshcnn: Original meshcnn code (unchanged).
- data, models: meshcnn extensions (e.g. sparse pooling, distributed training).
- test.py, train.py: Test and train scripts.
- scripts
- prepro: Scripts for data preprocessing, synthetic sample generation, mesh visualization...
- seg: Scripts to execute basic workflow: train,test,view results.
- docs