pmoulon/fssr
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Introduction
======================================================================
This is a guideline how to compile and use FSSR, the Floating Scale
Surface Reconstruction software accompanying the following paper:
Floating Scale Surface Reconstruction
Simon Fuhrmann and Michael Goesele
In: ACM ToG (Proceedings of ACM SIGGRAPH 2014).
http://tinyurl.com/floating-scale-surface-recon
This software is based on MVE, the Multi-View Environment. See the link below
for details on MVE, and the next section for downloading and building MVE.
http://www.gris.tu-darmstadt.de/projects/multiview-environment/
Downlaoding and Building MVE and FSSR
======================================================================
MVE requires libjpeg, libpng and libtiff as dependencies, which can be obtained
using the package system of your distribution.
The following commands should get you started:
# Download and compile MVE
git clone https://github.com/simonfuhrmann/mve.git
make -j8 -C mve
# Download and compile FSSR
git clone https://github.com/simonfuhrmann/fssr.git
make -j8 -C fssr
The binaries will be located and ready for execution here:
fssr/apps/fssr_octree
fssr/apps/fssr_surface
FSSR Input Data
======================================================================
FSSR requires as input a point set which contains several required and
some optional attributes per sample. Currently, only PLY is supported as
input format. All required and optional attributes are listed below:
Name PLY Attribute(s) Type Required?
------------------------------------------------------------------
3D positions x, y, z float 3-vector required
normals nx, ny, nz float 3-vector required
scale values value single float value required
confidence confidence single float value optional
color red, green, blue uchar 3-vector optional
A typical PLY header (without color) then looks like this:
format binary_little_endian 1.0
element vertex 36228
property float x
property float y
property float z
property float nx
property float ny
property float nz
property float confidence
property float value
end_header
If you are using MVE and want to create a surface from a set of depth maps,
you can use the 'scene2pset' tools, which is included in the MVE distribution.
Usage: scene2pset [ OPTS ] SCENE_DIR MESH_OUT
Make sure the parameters --depth and --image specify the correct depth map
and corresponding image. Also enable normals, scale and confidence with the
parameters --with-normals, --with-scale and --with-conf.
Running FSSR
======================================================================
First, the implicit function defined by the input points is sampled and
stored in an octree. This is done with the 'fssr_octree' tool.
Usage: fssr_octree [ OPTS ] IN_PLY [ IN_PLY ... ] OUT_OCTREE
It takes one or more PLY files as input (connectivity information is ignored)
and samples the implicit function over an octree hierarchy. The result is
stored in a binary format. (Check the code for details.)
Second, the sampling of the implicit function must be converted to a
surface mesh. This is done with a second 'fssr_surface' tool.
Usage: fssr_surface [ OPTS ] IN_OCTREE OUT_PLY_MESH
The tool takes as input the octree and produces a mesh. Several options
can control the resulting mesh. See the tools output for details.
Trouble? Contact!
======================================================================
Contact information can be found on the FSSR and MVE websites.