Skip to content
forked from ShiQiu0419/GBNet

Geometric Back-projection Network for Point Cloud Classification (IEEE Transactions on Multimedia, TMM 2021)

License

Notifications You must be signed in to change notification settings

Lukeli0425/GBNet

 
 

Repository files navigation

GBNet-PointCloud

This repository is my modification of GBNet to test a subset of ShapeNetCore Data on different models. Unzip ShapeNetCore.v2.zip in the root directory, the triangle mesh in obj files will be automatically sampled to get point clouds(stored in pts files). The txt files train_list.txt and test_list.txt are the labels for the selected data.

To train the model on GBNet model using the selected data:

CUDA_VISIBLE_DEVICES=2 python main.py --exp_name=gbnet_my_shapenet --model=gbnet --dataset=my_shapenet

The trained model will be seved in ./checkpoints under the corresponding directory.

references:

Open3D Docs

Original README.md:

Geometric Back-projection Network for Point Cloud Classification

PWC
PWC
This repository is for Geometric Back-projection Network (GBNet) introduced in the following paper:
Geometric Back-projection Network for Point Cloud Classification
Shi Qiu, Saeed Anwar, Nick Barnes
IEEE Transactions on Multimedia (TMM), 2021

Paper and Citation

The paper can be downloaded from arXiv and IEEE early access.
If you find our paper/code is useful, please cite:

    @article{qiu2021geometric,
        title={Geometric Back-projection Network for Point Cloud Classification},
        author={Qiu, Shi and Anwar, Saeed and Barnes, Nick},
        journal={IEEE Transactions on Multimedia},
        year={2021},
        doi={10.1109/TMM.2021.3074240}
    }

Network Architecture

Updates

  • 23/04/2021 Codes for both ModelNet40 and ScanObjectNN are available now.
  • 27/04/2021 Update model.py by adding class ABEM_Module(nn.Module).
  • 29/04/2021 Pre-trained model (OA: 80.50%, mAcc: 77.31%) on ScanObjectNN is available at google drive.
  • 30/04/2021 Update a pre-trained model (OA: 80.99%, mAcc: 78.21%) on ScanObjectNN via google drive.
  • 03/05/2021 Pre-trained model (OA: 93.80%, mAcc: 91.04%) on ModelNet40 is available at google drive.

Implementation Platforms

  • Python 3.6
  • Pytorch 0.4.0 with Cuda 9.1
  • Higher Python/Pytorch/Cuda versions should also be compatible

ModelNet40 Experiment

Train the model:

  • download ModelNet40, unzip and move modelnet40_ply_hdf5_2048 folder to ./data
  • then run (more settings can be modified in main.py):
python main.py --exp_name=gbnet_modelnet40 --model=gbnet --dataset=modelnet40

Test the pre-trained model:

  • put the pre-trained model under ./pretrained
  • then run:
python main.py --exp_name=gbnet_modelnet40_eval --model=gbnet --dataset=modelnet40 --eval=True --model_path=pretrained/gbnet_modelnet40.t7

ScanObjectNN Experiment

Train the model:

  • download ScanObjectNN, and extract both training_objectdataset_augmentedrot_scale75.h5 and test_objectdataset_augmentedrot_scale75.h5 files to ./data
  • then run (more settings can be modified in main.py):
python main.py --exp_name=gbnet_scanobjectnn --model=gbnet --dataset=ScanObjectNN

Test the pre-trained model:

  • put the pre-trained model under ./pretrained
  • then run:
python main.py --exp_name=gbnet_scanobjectnn_eval --model=gbnet --dataset=ScanObjectNN --eval=True --model_path=pretrained/gbnet_scanobjectnn.t7

Pre-trained Models

  • Python 3.6, Pytorch 0.4.0, Cuda 9.1
  • 2 Nvidia P100 GPUs
  • using default training settings as in main.py
Model Dataset #Points Data
Augmentation
Loss Performance
on Test Set
Download
Link
GBNet ModelNet40 1024 random scaling
and translation
cross-entropy
with label smoothing
overall accuracy: 93.80%
average class accuracy: 91.04%
google drive
GBNet ScanObjectNN 1024 random scaling
and translation
cross-entropy
with label smoothing
overall accuracy: 80.99%
average class accuracy: 78.21%
google drive

For more discussions regarding the factors that may affect point cloud classification,
please refer to the following paper:
Revisiting Point Cloud Classification with a Simple and Effective Baseline

Acknowledgement

The code is built on DGCNN. We thank the authors for sharing the codes.

About

Geometric Back-projection Network for Point Cloud Classification (IEEE Transactions on Multimedia, TMM 2021)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%