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: Fast Lightweight Mesh Estimation using Variational Smoothing on Delaunay Graphs, W. Nicholas Greene and Nicholas Roy, ICCV 2017.
- W. Nicholas Greene (wng@csail.mit.edu)
- Ubuntu 16.04
- Boost 1.58
- OpenCV 3.2
- Eigen 3.2
- Sophus (SHA: b474f05f839c0f63c281aa4e7ece03145729a2cd)
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
.
- Install
apt
dependencies:
sudo apt-get install libboost-all-dev
- 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.
- 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
- Install
flame
:
cd flame
mkdir build
cd build
cmake -D CMAKE_INSTALL_PREFIX=path/to/install/directory ..
make install
See flame_ros
for ROS bindings and example usage.