DGCNN_cls_dy
Overview
This repo is a Tensorflow portability of the classification experiment (the Pytorch version) of the DGCNN algorithm.
DGCNN proposes a new neural network module dubbed EdgeConv suitable for CNN-based high-level tasks on point clouds, including classification and segmentation. EdgeConv acts on graphs dynamically computed in each layer of the network. It is differentiable and can be plugged into existing architectures. Compared to existing modules operating in extrinsic space or treating each point independently, EdgeConv has several appealing properties: It incorporates local neighborhood information; it can be stacked applied to learn global shape properties; and in multi-layer systems affinity in feature space captures semantic characteristics over potentially long distances in the original embedding.
Further information please reference original author's paper and source code.
Contribution
- The classification experiment was reproduced using TensorFlow.
- Add visualization code.
- Added mixed precision code (optional).
- Added parallel training code (optional).
Requirements
- Python 3.7 (Python 3.8)
- TensorFlow 2.9.1
- CUDA 11.0+
- Package: glob, h5py, sklearn, numpy
Point Cloud Classification
Run the training script:
python main.py --exp_name=cls_1024 --model=dgcnn --num_points=1024 --k=20 --use_sgd=True
python main.py --exp_name=cls_2048 --model=dgcnn --num_points=2048 --k=40 --use_sgd=True
Run the evaluation script after training finished:
python main.py --exp_name=cls_1024_eval --model=dgcnn --num_points=1024 --k=20 --use_sgd=True --eval=True
python main.py --exp_name=cls_2048_eval --model=dgcnn --num_points=2048 --k=40 --use_sgd=True --eval=True
Note: If you want to use mixed precision training, replace main.py with main_mixed_precision.py or main_mutl_mixed_precision.py. It is recommended to use main.py or main_mixed_precision.py for a single GPU. If your device has multiple GPUs, you can use main_mutl.py or main_mutl_mixed_precision.py for training.
Performance:
ModelNet40 dataset
|
Mean Class Acc |
Overall Acc |
Paper (1024 points) |
90.2 |
92.9 |
This repo (1024 points) |
88.5 |
92.0 |
Paper (2048 points) |
90.7 |
93.5 |
This repo (2048 points) |
84.6 |
90.9 |
Citation
@article{wang2019dynamic,
title={Dynamic graph cnn for learning on point clouds},
author={Wang, Yue and Sun, Yongbin and Liu, Ziwei and Sarma, Sanjay E and Bronstein, Michael M and Solomon, Justin M},
journal={Acm Transactions On Graphics (tog)},
volume={38},
number={5},
pages={1--12},
year={2019},
publisher={ACM New York, NY, USA}
}
contributor
name: Deng Yu
email: dengy02@pcl.ac.cn