pmoulon / fssr

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

License:Other