All Projects → griegler → Octnet

griegler / Octnet

Licence: bsd-3-clause
OctNet: Learning Deep 3D Representations at High Resolutions

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Octnet

Synthesize3dviadepthorsil
[CVPR 2017] Generation and reconstruction of 3D shapes via modeling multi-view depth maps or silhouettes
Stars: ✭ 141 (-65.53%)
Mutual labels:  3d, torch
Hmm
Heightmap meshing utility.
Stars: ✭ 403 (-1.47%)
Mutual labels:  3d
Torch2coreml
Torch7 -> CoreML
Stars: ✭ 363 (-11.25%)
Mutual labels:  torch
Invoice
增值税发票OCR识别,使用flask微服务架构,识别type:增值税电子普通发票,增值税普通发票,增值税专用发票;识别字段为:发票代码、发票号码、开票日期、校验码、税后金额等
Stars: ✭ 381 (-6.85%)
Mutual labels:  torch
Home Platform
HoME: a Household Multimodal Environment is a platform for artificial agents to learn from vision, audio, semantics, physics, and interaction with objects and other agents, all within a realistic context.
Stars: ✭ 370 (-9.54%)
Mutual labels:  3d
Exengine
A C99 3D game engine
Stars: ✭ 391 (-4.4%)
Mutual labels:  3d
Numpy Stl
Simple library to make working with STL files (and 3D objects in general) fast and easy.
Stars: ✭ 356 (-12.96%)
Mutual labels:  3d
Cpp 3d Game Tutorial Series
C++ 3D Game Tutorial Series is a YouTube tutorial series, whose purpose is to help all those who want to take their first steps in the game development from scratch.
Stars: ✭ 400 (-2.2%)
Mutual labels:  3d
Awesome deep learning interpretability
深度学习近年来关于神经网络模型解释性的相关高引用/顶会论文(附带代码)
Stars: ✭ 401 (-1.96%)
Mutual labels:  torch
Libgdx
Desktop/Android/HTML5/iOS Java game development framework
Stars: ✭ 19,420 (+4648.17%)
Mutual labels:  3d
Tinyraytracer
A brief computer graphics / rendering course
Stars: ✭ 3,971 (+870.9%)
Mutual labels:  3d
Trashnet
Dataset of images of trash; Torch-based CNN for garbage image classification
Stars: ✭ 368 (-10.02%)
Mutual labels:  torch
Recent Stars 2021
🔥🔥🔥SLAM, Pose/Object tracking, Depth/Disparity/Flow Estimation, 3D-graphic, etc. related papers and code
Stars: ✭ 393 (-3.91%)
Mutual labels:  3d
Blendergis
Blender addons to make the bridge between Blender and geographic data
Stars: ✭ 4,642 (+1034.96%)
Mutual labels:  3d
Sketchbook
3D playground built on three.js and cannon.js
Stars: ✭ 403 (-1.47%)
Mutual labels:  3d
Software
DeepValueNetwork is a peer-to-peer database network managed and hosted by its community. It contains a browser to render 2D/3D content and allow the creation of scripted applications built on top of the p2p database network and managed by its creators, without intermediary platform.
Stars: ✭ 357 (-12.71%)
Mutual labels:  3d
Curated List Of Awesome 3d Morphable Model Software And Data
The idea of this list is to collect shared data and algorithms around 3D Morphable Models. You are invited to contribute to this list by adding a pull request. The original list arised from the Dagstuhl seminar on 3D Morphable Models https://www.dagstuhl.de/19102 in March 2019.
Stars: ✭ 375 (-8.31%)
Mutual labels:  3d
Beam
✨ Expressive WebGL
Stars: ✭ 383 (-6.36%)
Mutual labels:  3d
Recurrenthighwaynetworks
Recurrent Highway Networks - Implementations for Tensorflow, Torch7, Theano and Brainstorm
Stars: ✭ 407 (-0.49%)
Mutual labels:  torch
Gocv
Go package for computer vision using OpenCV 4 and beyond.
Stars: ✭ 4,511 (+1002.93%)
Mutual labels:  torch

OctNet uses efficient space partitioning structures (i.e. octrees) to reduce memory and compute requirements of 3D convolutional neural networks, thereby enabling deep learning at high resolutions.

This is the code for the paper:

OctNet: Learning Deep 3D Representations at High Resolutions
Gernot Riegler, Ali Osman Ulusoy and Andreas Geiger
CVPR 2017

We present OctNet, a representation for deep learning with sparse 3D data. In contrast to existing models, our representation enables 3D convolutional networks which are both deep and high resolution. Towards this goal, we exploit the sparsity in the input data to hierarchically partition the space using a set of unbalanced octrees where each leaf node stores a pooled feature representation. This allows to focus memory allocation and computation to the relevant dense regions and enables deeper networks without compromising resolution. We demonstrate the utility of our OctNet representation by analyzing the impact of resolution on several 3D tasks including 3D object classification, orientation estimation and point cloud labeling.

CVPR'17 Presentation

GTC'17 Presentation

If you find this code useful for your research, please cite

@inproceedings{Riegler2017OctNet,
  title={OctNet: Learning Deep 3D Representations at High Resolutions},
  author={Riegler, Gernot and Ulusoy, Ali Osman and Geiger, Andreas},
  booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
  year={2017}
}

Code Overview

  • core - This directory includes the core code for the hybrid grid-octree data structure (include/octnet/core), the CPU code for the network operations on this data structure (include/octnet/cpu), as well as some code to create test objects (include/octnet/test).
  • core_gpu - GPU (CUDA) code for the network operations.
  • create - Code to pre-process 3D data (point clouds, meshes, dense volumes) and convert it to the grid-octree structure.
  • geometry - Simple geometry routines mainly used in the create package.
  • py - This directory a small python wrapper to the create package and some core functions.
  • th - A full featured torch wrapper for all network operations.
  • example - Contains an example to create data and train a network on ModelNet10.

Requirements

We tried to keep the requirements small. To build the individual projects you will need:

  • cmake to setup the projects
  • gcc, or clang to build the core project
  • nvcc (CUDA) to compile the GPU network operations
  • cython to compile the Python wrapper
  • torch to setup the torch wrapper

Optionally, you will need

  • OpenMP for the parallelization of the CPU functions

Build

The building process of the individual packages should be fairly easy. All packages, except the Python wrapper py, are cmake projects. Therefore, you can create a build directory in the individual package folder and call cmake and make. For example, to build the core package:

cd core
mkdir build
cd build
cmake ..
make -j

To build the Python wrapper just do

cd py
python setup.py build_ext --inplace

If you do not want to repeat this for all the packages, we provide two simple bash scripts that automate this process:

  • build_cpu.sh - builds all the CPU code for OctNet
  • build_all.sh - same as above, but also builds the GPU network functions and the GPU wrapper code for torch
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].