Skip to content

SEG-MAT: 3D Shape Segmentation Using Medial Axis Transform (TVCG2020)

License

Notifications You must be signed in to change notification settings

clinplayer/SEG-MAT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SEG-MAT: 3D Shape Segmentation Using Medial Axis Transform

This repository contains the source code for the TVCG 2020 paper SEG-MAT: 3D Shape Segmentation Using Medial Axis Transform. In this work, we present an efficient method to automatically segment an arbitary object into meaningful parts based on medial axis transform (MAT). Please check out the project page for more detail.

Executable

Download the executable program SEG-MAT-x64 with sample data or you can find it from the exe program folder.

A simple demo:

SEG-MAT -m data\teddy.off -b data\teddy_mat.ma -s data\teddy_smat.ma

Usage:

Usage: SEG-MAT [-h,--help] -m,--mesh -b,--bmat -s,--smat [-g,--grow] [-n,--min] [-p,--prim]

Arguments:
    -h, --help    show this help message and exit
    -m, --mesh    path to the surface mesh (.off)
    -b, --bmat    path to the base MAT (.ma)
    -s, --smat    path to the structure MAT (.ma)
    -g, --grow    (optional) growing threshold, default 0.015
    -n, --min     (optional) minimal region, default 0.002
    -p, --prim    (optional) whether to compute the primitive representation (0:no, 1:yes)

Code

Installation

Use the CMakelist.txt to compile the project.

Third part libraries:

  • CGAL versions 4.9, 4.11 are tested. Boost 1.59.0 is needed to compile CGAL. Please refer to the link here.
  • Eigen version 3.3 is already included in the source files.

Example compile process on Windows:

  • Use CMake UI or commond tool to build the project
  • Specify the CGAL library path
  • Make it to a specific IDE project, e.g., Visual Studio, XCode, etc.

Data

Download the computed MAT (*.ma format) of Princeton Segmentation Benchmark PSB_MAT.zip and a subset of ShapeNet ShapeNet_MAT.zip.

MAT Computation (for your own data)

Given a 3D mesh, we use Q-MAT) to compute the base MAT and the structure MAT for segmentation (Download Q-MAT exe code). The Q-MAT simplification is based on vertex number, while we recommend the users to set the vertex number of the base MAT to 2000, and the vertex number of the structure MAT to max{0.001*initial_MAT_vertex_number, 15}.

For a non-watertight or a poor-quality mesh, you may need to first convert the mesh to a watertight one using the tool for robust MAT computation.

Citation

If you find this work useful, please consider citing:

@article{lin2022seg,
  title={SEG-MAT: 3D Shape Segmentation Using Medial Axis Transform},
  author={Lin, Cheng and Liu, Lingjie and Li, Changjian and Kobbelt, Leif and Wang, Bin and Xin, Shiqing and Wang, Wenping},
  journal={IEEE transactions on visualization and computer graphics},
  volume={28},
  number={6},
  pages={2430--2444},
  year={2022}
}

Acknowlegement

We would like to acknowledge the following projects:

Multi-label optimization

Implementation of the Earth Movers Distance (EMD)

Oriented minimal bounding box

Contact

If you have any questions, please email Cheng Lin at chlin@hku.hk or Changjian Li at chjili2011@gmail.com.

About

SEG-MAT: 3D Shape Segmentation Using Medial Axis Transform (TVCG2020)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published