Skip to content

atomicsulfate/meshcnn-4-cadseg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Surface class segmentation in CAD models with MeshCNN

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

Getting Started

Installation

  • 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

ABC Dataset surface class segmentation

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.

Project structure

  • 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