Giter VIP home page Giter VIP logo

convpoint's Introduction

ConvPoint: Generalizing discrete convolutions for unstructured point clouds

SnapNet products

Updates

Major performance update: by reformulating the convolutional layer using matrix mulitplications, the memory consumption has been highly reduced.

Major interface update: the spatial relations are now computed in the network class. The framework is then easier to use and more flexible.

Introduction

This repository propose python scripts for point cloud classification and segmentation. The library is coded with PyTorch.

The journal paper is here: http://www.sciencedirect.com/science/article/pii/S0097849320300224

The conference paper is here: https://diglib.eg.org/handle/10.2312/3dor20191064

A preprint of the paper can be found on Arxiv:
http://arxiv.org/abs/1904.02375

License

Code is released under dual license depending on applications, research or commercial. Reseach license is GPLv3. See the license.

Citation

If you use this code in your research, please consider citing:

@article{BOULCH202024,
title = "ConvPoint: Continuous convolutions for point cloud processing",
journal = "Computers & Graphics",
volume = "88",
pages = "24 - 34",
year = "2020",
issn = "0097-8493",
doi = "https://doi.org/10.1016/j.cag.2020.02.005",
url = "http://www.sciencedirect.com/science/article/pii/S0097849320300224",
author = "Alexandre Boulch",
}

Platform

The code was tested on Ubuntu 16.04 with Anaconda.

Dependencies

  • Pytorch
  • Scikit-learn for confusion matrix computation, and efficient neighbors search
  • TQDM for progress bars
  • PlyFile
  • H5py

All these dependencies can be install via conda in an Anaconda environment or via pip.

The library

Nearest neighbor module

The nearest_neighbors directory contains a very small wrapper for NanoFLANN with OpenMP. To compile the module:

cd nearest_neighbors
python setup.py install --home="."

In the case, you do not want to use this C++/Python wrapper. You still can use the previous version of the nearest neighbors computation with Scikit Learn and Multiprocessing, python only version (slower). To do so, add the following lines at the start of your main script (e.g. modelnet_classif.py):

from global_tags import GlobalTags
GlobalTags.legacy_layer_base(True)

Examples

convpoint's People

Contributors

aboulch avatar ywyue avatar

Watchers

 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.