GithubHelp home page GithubHelp logo

ensemble_learning_for_point_clouds's Introduction

Point cloud ensemble

Point cloud ensemble is an examination of an impact of ensemble learning methods on 3D point cloud classification. We focus on the direct point cloud processing because such architectures can be adapted to the analysis of different kinds of sets. Seven architectures are used:

  • DeepSets [1]
  • PointNet [2]
  • PointNet++ [3]
  • SO-Net [4]
  • KCNet [5]
  • DGCNN [6]
  • PointCNN [7].

Deep Learning on Jetson TX2

As a part of the project, we set up all above mentioned DL methods on Jetson TX2, which is a reasonable choice for energy efficient mobile robotic applications. We need to set up three different DL frameworks, since PointNet, PointNet++, DGCNN, and PointCNN are using Tensorflow, DeepSets and SO-Net are using PyTorch and KCNet is using Caffe. Here are some tips, how we did it (pls_help).

Tensorflow and Jetpack 3.2

Jetson TX2 need to be flushed with Jetpack 3.2, this results with CUDA v9.0 and cuDNN v7.0.5. Please do apt update & upgrade afterwards. Here are all dependencies listed:

$ sudo apt-get install python-pip
$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev \
                       libhdf5-dev libhdf5-serial-dev protobuf-compiler
$ sudo apt-get install --no-install-recommends libboost-all-dev
$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
$ sudo apt-get install libatlas-base-dev libopenblas-dev

How to build Tensorflow 1.5 on Jetson TX2

Daniel, PLS, find it on nvidia forum.

How to build PyTorch on Jetson TX2

First we need to build LLVM from source, I choose the LLVM 7.0.0 version from here.

$ cd llvm-7.0.1.src
$ mkdir build
$ cd build

#Configure to build only the Release version and only for the ARM, x86 and AArch64 architectures
$ cmake .. -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="ARM;X86;AArch64"

#Start the build from the build directory
$ cmake -j4 --build .

#install it from the build directory:
$ sudo cmake --build . --target install

Next, we can build pytorch:

# clone pyTorch repo
$ git clone http://github.com/pytorch/pytorch
$ cd pytorch
$ git submodule update --init

# install prereqs
$ sudo pip install -U setuptools
$ sudo pip install -r requirements.txt

# Develop Mode:
$ python setup.py build_deps
$ sudo python setup.py develop

And veryfy the installation:

# Verify CUDA (from python interactive terminal)
# import torch
# print(torch.__version__)
# print(torch.cuda.is_available())
# a = torch.cuda.FloatTensor(2)
# print(a)
# b = torch.randn(2).cuda()
# print(b)
# c = a + b
# print(c)

How to build caffe (for KCNet)

KCNet authors prepared cloned version of caffe for KCNet repository. Here's the build procedure:


Authors

This work was done with collaboration with Łukasz Chechliński. Feel free to check out his great profile.


References

[1] M. Zaheer, S. Kottur, S. Ravanbakhsh, B. Poczos, R. R. Salakhutdinov, and A. J. Smola. Deep sets. In Advances in Neural Information Processing Systems, pages 3391–3401, 2017

[2] C. R. Qi, H. Su, K. Mo, and L. J. Guibas. Pointnet: Deep learning on point sets for 3d classification and segmentation. Proc. Computer Vision and Pattern Recognition (CVPR), IEEE, 1(2):4, 2017

[3] C. R. Qi, L. Yi, H. Su, and L. J. Guibas. Pointnet++: Deep hierarchical feature learning on point sets in a metric space. In Advances in Neural Information Processing Systems, pages 5099–5108, 2017

[4] J. Li, B. M. Chen, and G. H. Lee. So-net: Self-organizing network for point cloud analysis. CoRR, abs/1803.04249, 2018

[5] Y. Shen, C. Feng, Y. Yang, and D. Tian. Mining point cloud local structures by kernel correlation and graph pooling. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, volume 4, 2018

[6] Y. Wang, Y. Sun, Z. Liu, S. E. Sarma, M. M. Bronstein, and J. M. Solomon. Dynamic graph cnn for learning on point clouds.arXiv preprint arXiv:1801.07829, 2018

[7] Y. Li, R. Bu, M. Sun, and B. Chen. Pointcnn. arXiv preprint arXiv:1801.07791, 2018

ensemble_learning_for_point_clouds's People

Contributors

chechli avatar dkoguciuk avatar

Watchers

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