This repo is a Tensorflow reproduction of the Pytorch version of the PointManifold algorithm. PointManifold is a point cloud classification algorithm accepted by ACM, which is the official PyTorch implementation for PointManifold:Using Manifold Learning for Point Cloud Classification.
Original author's paper explores three traditional manifold algorithms (i.e., Isomap, Locally-linear embedding and Laplacian eigenmaps) in detail, and finally it selects the Locally-linear embedding (LLE) algorithm due to its low complexity and locality consistency preservation. Furthermore, Original author's paper proposes a neural network based manifold learning (NNML) method to implement manifold learning based non-linear projection.Original The author's paper demonstrates that the proposed two manifold learning methods can obtain better performances than the state-of-the-art methods. Moreover, because of the improved feature learning capability, the proposed NNML method of original author's paper can also have better classification accuracy on the models with prominent geometric shapes.
Further information please see the original paper and source code.
./data
.Dataset_LLE.py
to generate LLE feature extraction.Note: You can also use data_manifold_processing.py to generate other feature extraction, like Isomap. You can find the related data load function in data.py. But if you use other feature extraction instead of LLE and NNML, you need to change the related data load part in main.py.
python main.py --model=pointmanifold_lle --hyper_times=1 --epochs=600 --batch_size=32 --test_batch_size=16
python main_mixed_precision.py --model=pointmanifold_nnml --hyper_times=4 --epochs=600 --batch_size=16 --test_batch_size=16
This repo gives a total of four slightly different main programs, namely main.py, main_mixed_precision.py, main_mutl.py and main_mutl_mixed_precision.py. "mutl" means that it can run in a multi-GPU environment, and "mixed_precision" means using mixed precision training.
The graphics card used in this repo is Tesla V100-SXM2 (power 163W, video memory 32510MiB). It is strongly recommended to use a graphics card with a video memory of not less than 16GiB, because the NNML algorithm takes up a lot of video memory. Therefore, when selecting pointmanifold_nnml as the model, if the batch size is greater than 8, you need to use main_mixed_precision.py or main_mutl_mixed_precision.py, otherwise it is easy to overflow the video memory.
Mean Class Accuracy(%) | Overall Accuracy(%) | |
---|---|---|
Paper (LLE) | 90.0 | 93.0 |
Paper (NNML) | 90.4 | 93.0 |
This repo (LLE) | 89.7 | 93.1 |
This repo (NNML) | 88.5 | 92.2 |
@misc{yang2020pointmanifold,
title={PointManifold: Using Manifold Learning for Point Cloud Classification},
author={Dinghao Yang and Wei Gao},
year={2020},
eprint={2010.07215},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
name: Deng Yu
email: dengy02@pcl.ac.cn
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》