Skip to content

Point2Sequence: Learning the Shape Representation of 3D Point Clouds with an Attention-based Sequence to Sequence Network

License

Notifications You must be signed in to change notification settings

liuxinhai/Point2Sequence

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Point2Sequence: Learning the Shape Representation of 3D Point Clouds with an Attention-based Sequence to Sequence Network

Created by Xinhai Liu, Zhizhong Han, Yu-Shen Liu, Matthias Zwicker.

prediction example

Citation

If you find our work useful in your research, please consider citing:

    @inproceedings{liu2019point2sequence,
      title={Point2Sequence: Learning the Shape Representation of 3D Point Clouds with an Attention-based Sequence to Sequence Network},
      author={Liu, Xinhai and Han, Zhizhong and Liu, Yu-Shen and Zwicker, Matthias},
      booktitle={Thirty-Third AAAI Conference on Artificial Intelligence},
      year={2019}
    }

Introduction

In Point2Sequence, we build the multi-scale areas in the local region of point sets by a sequential manner. To explore the correlation between different scale areas, a RNN-based sequence model is employed to capture the contextual information inside local regions. In addition, we also introduce an attention mechanism to highlight the importance different scale areas.

In this repository we release code our Point2Sequence classification and segmentation networks as well as a few utility scripts for training, testing and data processing.

Installation

Install TensorFlow. The code is tested under TF1.4 GPU version and Python 2.7 on Ubuntu 16.04. There are also some dependencies for a few Python libraries for data processing like cv2, h5py etc. It's highly recommended that you have access to GPUs. Before running the code, you need to compile customized TF operators as described in PointNet++.

Usage

Shape Classification

To train a Point2Sequence model to classify ModelNet40 shapes (using point clouds with XYZ coordinates):

    python train.py

To see all optional arguments for training:

    python train.py -h

In the training process, we also evaluate the performance the model.

Shape Part Segmentation

To train a model to segment object parts for ShapeNet models:

    cd part_seg
    python train.py

Prepare Your Own Data

Follow the dataset in PointNet++, you can refer to here on how to prepare your own HDF5 files for either classification or segmentation. Or you can refer to modelnet_dataset.py on how to read raw data files and prepare mini-batches from them.

License

Our code is released under MIT License (see LICENSE file for details).

Related Projects

About

Point2Sequence: Learning the Shape Representation of 3D Point Clouds with an Attention-based Sequence to Sequence Network

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published