Giter VIP home page Giter VIP logo

sph3d-gcn's Introduction

Spherical Kernel for Efficient Graph Convolution on 3D Point Clouds

Created by Huan Lei, Naveed Akhtar and Ajmal Mian

alt text

Introduction

This work is based on our Arxiv tech report, which is a significant extension of our original paper presented in IEEE CVPR2019.

We propose a spherical kernel for efficient graph convolution of 3D point clouds. Our metric-based kernels systematically quantize the local 3D space to identify distinctive geometric relationships in the data. Similar to the regular grid CNN kernels, the spherical kernel maintains translation-invariance and asymmetry properties, where the former guarantees weight sharing among similar local structures in the data and the latter facilitates fine geometric learning. The proposed kernel is applied to graph neural networks without edge-dependent filter generation, making it computationally attractive for large point clouds. In our graph networks, each vertex is associated with a single point location and edges connect the neighborhood points within a defined range. The graph gets coarsened in the network with farthest point sampling. Analogous to the standard CNNs, we define pooling and unpooling operations for our network. We demonstrate the effectiveness of the proposed spherical kernel with graph neural networks for point cloud classification and semantic segmentation using ModelNet, ShapeNet, RueMonge2014, ScanNet and S3DIS datasets.

In this repository, we release code and trained models for classification and segmentation.

Citation

If you find our work useful in your research, please consider citing:

@article{lei2019octree,  
  title={Octree guided CNN with Spherical Kernels for 3D Point Clouds},  
  author={Lei, Huan and Akhtar, Naveed and Mian, Ajmal},  
  journal={IEEE Conference on Computer Vision and Pattern Recognition},  
  year={2019}  
}  
@article{lei2019spherical,  
  title={Spherical Kernel for Efficient Graph Convolution on 3D Point Clouds},  
  author={Lei, Huan and Akhtar, Naveed and Mian, Ajmal},  
  journal={arXiv preprint arXiv:1909.09287},  
  year={2019}  
}

License

Our code is released under MIT License (see LICENSE file for details).

Installation

Install Tensorflow. The code was tested with Python 3.5, Tensorflow 1.12.0, Cuda 9.0 and Cudnn 7.1.4 on Ubuntu 16.04. Please compile the cuda-based operations in tf-ops folder using the command

(sudo) ./compile.sh

Data Preparation

Install Matlab. We use Matlab to fullfil the preprocessing of the datasets, such as grid-based downsampling.

Trained models & results

The trained models and our results on ShapeNet and S3DIS can be downloaded from this link.

Usage

  • ModelNet
cd io
python make_tfrecord_modelnet.py 
cd modelnet40_cls 
python train_modelnet.py  
python evaluate_modelnet.py --num_votes=12  
  • ShapeNet
    run preprocessing/shapenet_removeSingularPoints.m in matlab
cd io   
python make_tfrecord_shapenet.py    
cd shapenet_seg   
python train_shapenet.py --shape_name=Table    
python evaluate_modelnet.py  
  • RueMonge2014
    run preprocessing/ruemonge2014_prepare_data.m in matlab
cd io 
python make_tfrecord_ruemonge2014.py    
cd ruemonge2014_seg    
python train_ruemonge2014.py  
python evaluate_ruemonge2014.py  
  • ScanNet V2
    run preprocessing/scannet_prepare_data.m in matlab
cd io  
python make_tfrecord_scannet.py  
cd scannet_seg  
python train_scannet.py  
python evaluate_scannet_with_overlap.py  
python scannet_block2index_with_overlap.py    

run post-merging/scannet_merge.m in matlab

  • S3DIS
    run preprocessing/s3dis_prepare_data.m in matlab
cd io  
python make_tfrecord_s3dis.py    
python make_tfrecord_s3dis_no_split.py    
cd s3dis_seg  
python train_s3dis.py    
python evaluate_s3dis_with_overlap.py --model_name=xxxx    
python s3dis_block2index_with_overlap.py

run post-merging/s3dis_merge.m in matlab

...... incomplete Code, ReadMe in construction ......

sph3d-gcn's People

Watchers

James Cloos 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.