Coder Social home page Coder Social logo

simonthevillain / scalablefusion Goto Github PK

View Code? Open in Web Editor NEW
77.0 6.0 12.0 3.68 MB

Completely mesh based RGB-D reconstruction. Capable of storing large reconstructions without wasting GPU memory.

License: GNU General Public License v3.0

CMake 2.38% C++ 77.38% Cuda 10.78% C 5.63% GLSL 3.83%

scalablefusion's Introduction

ScalableFusion:

A mesh based RGB-D reconstruction pipeline which enables large-scale reconstructions. The advantage over surfel or tsdf based methods is that this allows to store color information in textures of arbitrary resolution. Coupling between geometrical and color resolution is broken up. It also features a mechanism which offloads data from the GPU to system memory.

Warning This whole thing is far from being finished, we don't recommend using this in its current state. Issues we are currently encountering:

  • random crashes (especially during integration of novel geometry)
  • extremely brittle tracking.
  • memory leaks
  • Nonfunctional multithreading-mode

See paper: ScalableFusion: High-resolution Mesh-based Real-time 3D Reconstruction (https://ieeexplore.ieee.org/document/8793654)

Installation

  • Install the required libraries
  • mkdir build
  • cd build
  • cmake ..
  • make -j8

Required Libraries

  • CUDA 10 and up
  • Eigen3 the new development build (newer than 3.3.5) so it works with CUDA 10
  • Pangolin: (for using the cudaicp stuff from thatmp3 guy)
  • Ceres 1.13 and up compiled with new version of eigen
  • Sophus: (for cudaicp)
  • Radical (https://github.com/taketwo/radical): Photometric calibration
  • OpenCV 3.1 (min)
  • GLFW3.2 (to create the opengl context)
  • PCL
    • hope to get rid of this dependency

Usage

Right now the library only supports the TUM format of datasets (https://vision.in.tum.de/data/datasets/rgbd-dataset).

It has some extensions though: Instead of reading from a associations.txt file there is the option to read from a associations_ids.txt file. IDS is the supplier of the high-res camera used in these new HD datasets (See HD command line flag).

Current state:

Implemented:
  • The meshing within one frame
  • Texturing within one frame
  • Stitching between frames
  • Standard deviation texturing
    • There is a bug though that lets the texture and geometry degrade at patch borders.
About to be implemented:
  • nothing!
Missing:
  • Tracking is not working properly! Something like DSO might be great.
  • Sergeys exposure control and HDR texturing
    • at least a proper integration of it
  • Removal of triangles
  • Simplification of patches
  • Merging of patches

Possibilites:

  • Accumulating Semantic Segmentation
  • Maybe a new kind of object detection based on the ease with which we can create models.
  • Articulate non-rigid objects and optimize pose based on a course skeleton of triangle shaped bones.
  • Model Wires, ropes, pens and fabric which do not have geometry at higher distance but are detectable.
  • Estimate reflectiveness and other parameters of surfaces by using any variational or non-vvariational method.
  • Superresolution

Parameters

  • help Guess what! it creates the help message
  • input,i Set the directory to read the TUM dataset.
  • groundtruth,t By activating this flag, the odometry is taken from the groundtruth.txt file.
  • multithreaded,m Setting this flag enables the multithreaded mode, the frames are read in the same speed as they are captured (assuming 30fps). Is the machine too slow frames are skipped. DON'T USE ITS NOT STABLE YET.
  • skipFrames,s Integer value of the number of frames which should be skipped at the beginning of the trajectory.
  • HD Flag to enable reading frames as given by the associations_ids.txt.
  • headless,h Flag to deactivate any window output.
  • output,o Folder in which all the captured geometry will be stored at the end of the reconstruction. (NOT IMPLEMENTED)
  • coarse File (.ply) in which the coarse reconstruction is stored at the end of the track.
  • detailed File (.ply) in which the fine reconstruction is stored at the end of the track.
  • scaleDepth The depth usually is given in a 16bit png file such that 1 unit equals to 1mm. If this is different, change this scale factor.
  • scaleGroundtruth Somethimes the trajectories are not created in correct scale. This is where you could change this.
  • invertGroundtruth You might have inverted all of your coordinates.... if so then i advise you to set this flag. JB?
  • autoquit,q When running in windowed mode this flag autoquits the app when all the frames in the dataset are processed.

scalablefusion's People

Contributors

simonthevillain avatar

Stargazers

 avatar YangJun avatar 个人公众号 Hypochondira avatar Ethan avatar  avatar  avatar  avatar Feng,Chih Sheng avatar YYLin avatar  avatar JianyuanRuan avatar  avatar MossYaYa avatar frankfanslc avatar Yuefan Shen avatar Haipeng Wang avatar bygreencn avatar ZOU YAJING avatar Hongkai_Ding avatar Baldr_Yao avatar  avatar XStarry avatar  avatar Manh Ha Hoang avatar TraderCwh avatar Xxxiang avatar Mihai Bujanca avatar  avatar  avatar Robotics_Qi avatar  avatar Philippe Giraudeau avatar  avatar ZhangShenLong avatar Bin Li avatar SilenceOverflow avatar YiChenCityU avatar  avatar REN HAOFAN avatar Bo Ju avatar  avatar PangFumin avatar ChihSheng,Feng avatar FishHe avatar davci avatar likeucode avatar 爱可可-爱生活 avatar Markus Herb avatar Riku Murai avatar Tianye Li avatar Salah Missri avatar Tyler Gibson avatar  avatar Yiming Xie avatar Jiadai Sun avatar Jiaming Sun avatar XuLei avatar Silvano Galliani avatar Kaeli avatar  avatar Oguzhan Mete Ozturk avatar Rafael Caballero González avatar  avatar 刘国庆, Guoqing Liu avatar  avatar Jens Behley avatar  avatar Leo Cheng avatar Tingzhu Zhou avatar Wei Yizhi avatar  avatar  avatar cheng zhang avatar Yang avatar  avatar  avatar  avatar

Watchers

cheng zhang avatar  avatar  avatar Nikolaus Wagner avatar  avatar 程笑天 (Cheng Xiaotian) avatar

scalablefusion's Issues

/usr/bin/ld: cannot find -lopencv_cvv

thank you for you work! when I build it, an error occurred:/usr/bin/ld: cannot find -lopencv_cvv.My system configuration:

  • ubuntu16.04
  • opencv4.1.1 with cuda10.1

Hope to get your help, thank you very much.

File structure of input data needs rework

Reconstruction requires some extra files as input which are automatically loaded at program launch. The program will crash, if it doesn't find these files. These files are not part of the classical TUM-format.
Rework the way these files are included and find a solution to integrate them into the TUM format.

Reconstruction runs out of GPU Memory

Reconstruction crashes after some time when performed on the "Teddy"-dataset provided by TUM. Furthermore, due to (probably) different scaling factors, no output of the reconstruction is shown.

update

After reading the paper, I feel that this method will work well. I don't know when your code will be updated

How to run?

I have building success, but do not konw how to run it. it miss much configuration file

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.