Skip to content

(Re-)Implementation for PIE-NET paper (Wang, et al., 2020).

License

Notifications You must be signed in to change notification settings

lyiqian/PIE-NET

Repository files navigation

PIE-NET

(Re-)Implementation for PIE-NET paper (Wang, et al., 2020).

So far, training data preparation have been completed, and point classification is in a working state. It is undecided whether curve proposal and proposal selection will be implemented.

Methods

Training Data

For my quick study on point cloud sampling methods, see this Markdown file.

CAD models (feats and objs) were downloaded from [2], before a Python package [3] was used to sample point clouds from the objs. I experimented two sampling methods: Monte Carlo and Poisson Disk. The former was selected due to its faster speed of sampling, although the latter yielded better point clouds. For comparison, see here.

Ground truth, including point classes and offsets, was calculated and transferred from the feats to the sampled point clouds.

Point Classification

In the paper, point classification was done with PointNet++. In this implementation, PointNet++ Tensorflow 2.0 layers were used from a public repo [4]. I modified the existing semantic segmentation model to support point classification by adjusting final outputs and adding a custom loss.

Failed Attempts

Some failed attempts are documented here as warnings for others to avoid.

  • The original PointNet++ implementation [5] was not as useful because it requires older versions of Python and TF.
  • Software like Blender or gmsh could also be used to sample point clouds from CAD models. But they generally do not have great Python APIs and come with redundant functionalities.

Repo Structure

training_data.py includes some functions for generating training data.

The Pointnet++ layers were included as a submodule of this repo (pointnet2-tensorflow2/), which contains WIP point classification code.

whiteboard.ipynb is my interactive playground for testing and learning.

References

  1. PIE-NET: Parametric Inference of Point Cloud Edges
  2. ABC: A Big CAD Model Dataset For Geometric Deep Learning
  3. PyMeshLab
  4. Pointnet++ tensorflow 2.0 layers
  5. PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space

About

(Re-)Implementation for PIE-NET paper (Wang, et al., 2020).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published