Git Product home page Git Product logo

gbnet's Introduction

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.

gbnet's People

Contributors

shiqiu0419 avatar saeed-anwar avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.