by Changshuo Wang*, Han Wang, Xin Ning, Weisheng Tian, and Weijun Li.
This code is the pytorch 0.4 version of DC-CNN to reproduce 3D Point Cloud Classification Method Based on Dynamic Coverage of Local Area on the ModelNet40.
Ubuntu 18.04
Python 3.7.10 (recommend Anaconda3)
Pytorch 0.4.1
CMake 3.10.2
CUDA 10.0 + cuDNN 7
Cudatoolkit V10.0.130
conda install pytorch=0.4.1 cuda92 -c pytorch
Note: If you want to run DC-CNN code in pytorch1.7+ environment, you can run DC-CNN_ScanObjectNN on ScanObjectNN dataset.
git clone https://github.com/changshuowang/DC-CNN.git
cd changshuowang/DC-CNN
mkdir build && cd build
cmake .. && make
Download and unzip ModelNet40 (415M) in data directory.
python train_cls.py
Note: We have trained a Single-Scale-Neighborhood classification model in log/seed_XXX-XXX/
folder.
python voting_evaluate_cls.py
Note: You can use your model log/seed_XXX-XXX/*.pth
as the checkpoint in cfgs/config_ssn_cls.yaml
, and with majority voting you will get an accuracy of 93.6% from the single-scale-neighborhood classification model. The performance on ModelNet40 of almost all methods are not stable, see (CVMI-Lab/PAConv#9 (comment)). If you run the same codes for several times, you will get different results.
You are welcome to send pull requests or share some ideas with us.
contact email: [email protected].
Our code base is partially borrowed from EllipsoidQuery, RS-CNN and Pointnet2_PyTorch.
DC-CNN is under the Apache-2.0 license. Please contact the authors for commercial use.