Skip to content

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

ShiQiu0419/GBNet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.
If you find our paper/code is useful, please cite:

    @article{qiu2022geometric,
        title={Geometric Back-projection Network for Point Cloud Classification},
        author={Qiu, Shi and Anwar, Saeed and Barnes, Nick},
        journal={IEEE Transactions on Multimedia},
        year={2022},
        volume={24},
        pages={1943-1955},
        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)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages