/flame

FLaME: Fast Lightweight Mesh Estimation

Primary LanguageC++GNU General Public License v3.0GPL-3.0

CircleCI

flame

FLaME (Fast Lightweight Mesh Estimation) is a lightweight, CPU-only method for dense online monocular depth estimation. Given a sequence of camera images with known poses, FLaME is able to reconstruct dense 3D meshes of the environment by posing the depth estimation problem as a variational optimization over a Delaunay graph that can be solved at framerate, even on computationally constrained platforms.

The flame repository contains the source code for the core algorithm. It should be input/output agnostic, so feel free to write an appropriate frontend for your data. ROS bindings are available with the associated flame_ros repository, which also includes examples for running flame on offline data.

FLaME

Related Publications:

Author

Dependencies

  • Ubuntu 16.04
  • Boost 1.58
  • OpenCV 3.2
  • Eigen 3.2
  • Sophus (SHA: b474f05f839c0f63c281aa4e7ece03145729a2cd)

Installation

NOTE: These instructions assume you are running Ubuntu 16.04 and are interested in installing flame only. See the installation instructions for flame_ros if you also wish to build the ROS bindings as the process can be streamlined using catkin_tools.

  1. Install apt dependencies:
sudo apt-get install libboost-all-dev
  1. Install OpenCV 3.2:

Unfortunately OpenCV 3.2 is not available through apt on Ubuntu 16.04. If you have ROS Kinetic installed on your system, you can simply source your ROS installation as this version of OpenCV is packaged with ROS Kinetic. If you don't have ROS Kinetic installed, then you will need to install from source. Please consult the OpenCV docs for instructions.

  1. Install Eigen 3.2 and Sophus using the provided scripts:
cd flame

# Create a dependencies folder.
mkdir -p dependencies/src

# Checkout Eigen and Sophus into ./dependencies/src and install into ./dependencies.
./scripts/eigen.sh ./dependencies/src ./dependencies
./scripts/sophus.sh ./dependencies/src ./dependencies

# Copy and source environment variable script:
cp ./scripts/env.sh ./dependencies/
source ./dependencies/env.sh
  1. Install flame:
cd flame
mkdir build
cd build
cmake -D CMAKE_INSTALL_PREFIX=path/to/install/directory ..
make install

Usage

See flame_ros for ROS bindings and example usage.