Giter VIP home page Giter VIP logo

kinectfusion's Introduction

Kinect Fusion

Project overview

The goal of this project is to obtain a 3D reconstruction of a static scene which was recorded with a Kinect camera. The Kinect camera provides RGB as well as depth information as can be seen in the picture below. here

Results

Below you can see a result of a raycast which was performed after ~120 frames. here

How to run the code?

First clone the repo with git clone https://github.com/VladimirYugay/KinectFusion.git.

Setup (Linux)

  • Install cmake if it's not installed yet
    sudo apt-get install cmake

  • Run sudo apt-get install libfreeimage3 libfreeimage-dev in order to be able to process images from the dataset by simulating the virtal sensor

  • Download header only Eigen library and put it into libs folder by runnning:
    cd KinectFusion/libs
    git clone https://gitlab.com/libeigen/eigen.git
    Use any stable release (e.g. 3.4.0) as the upstream currently requires specific compiler versions (newer than GCC 9.3.0 and Intel 2021.4.0.20210910)
    cd eigen
    git checkout tags/3.4.0

Setup (Windows)

  • Follow the same file structure as in Linux Setup
  • Add pre-compiled libraries of FreeImage in KinectFusion/libs

Setup (Mac)

  • brew install eigen
  • brew install freeimage

Download dataset

You can either use your own image sequence which was recorded with a Kinect Camera v2 or you can download the same dataset we used here. Extract the folder and move it to KinectFusion/data/rgbd_dataset_freiburg1_xyz.

Build and run

In order to build and run the project follow these steps:

cd ..
mkdir build
cd build
cmake ..
make
./kinect_fusion

Contributer Guidelines

If you want to contribute, please use cpplint. You can install it via pip install cpplint and run with: cpplint [OPTIONS] files.

CUDA Implementation details

You can find GPU implementation on vy/unstable/gpu_integration and vy/icp/gpu_icp_pose_estimation branches

Things implemented on CUDA

  1. Finding correspondences
  2. ICP linear system construction vy/icp/gpu_icp_pose_estimation
  3. Volume integration
CPU GPU Ratio
Correspondences: 138,609 Correspondences: 23,792 6
Volume integration: 8,787,468 Volume integration: 694,208 12
Linear System: 277 Linear System: 488 0.7

kinectfusion's People

Contributors

janruettinger avatar quepas avatar vladimiryugay 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.