Meshing

Description

Generate Mesh from SfM point cloud or DepthMap

Name

Description

Input

SfMData file.

Depth Maps Folder

Input depth maps folder

Filtered Depth Maps Folder

Input filtered depth maps folder

Estimate Space From SfM

Estimate the 3d space from the SfM

Min Observations For SfM Space Estimation

Minimum number of observations for SfM space estimation. (0-100) 3

Min Observations Angle For SfM Space Estimation

Minimum angle between two observations for SfM space estimation. (0-120) 10

Max Input Points

Max input points loaded from depth map images (500**000** - 500000000)

Max Points

Max points at the end of the depth maps fusion (100**000** - 10000000)

Max Points Per Voxel

(500**000** – 30000000)

Min Step

The step used to load depth values from depth maps is computed from maxInputPts. Here we define the minimal value for this step, so on small datasets we will not spend too much time at the beginning loading all depth values (1- 20) 2

Partitioning

(singleBlock, auto)

Repartition

(multiResolution, regularGrid)

angleFactor

(0.0-200.0) 15.0

simFactor

(0.0-200.0) 1.0

pixSizeMarginInitCoef

(0.0-10.0) 2.0

pixSizeMarginFinalCoef

(0.0-10.0) 4.0

voteMarginFactor

(0.1-10.0) 4.0

contributeMarginFactor

(0.0-10.0) 2.0

simGaussianSizeInit

(0.0-50) 10.0

simGaussianSize

(0.0-50) 0.1

minAngleThreshold

(0.0-10.0) 0.01

Refine Fuse

Refine depth map fusion with the new pixels size defined by angle and similarity scores.

Add Landmarks To The Dense Point Cloud

Add SfM Landmarks to the dense point cloud.

Colorize Output

Whether to colorize output dense point cloud and mesh.

Save Raw Dense Point Cloud

Save dense point cloud before cut and filtering.

Verbose Level

verbosity level (fatal, error, warning, info, debug, trace).

Output Mesh

Output mesh (OBJ file format). mesh.obj

Output Dense Point Cloud

Output dense point cloud with visibilities (SfMData file format). densePointCloud.abc

image0

Detailed description

The objective of this step is to create a dense geometric surface representation of the scene.

First, we fuse all the depth maps into a global octree where compatible depth values are merged into the octree cells.

We then perform a 3D Delaunay tetrahedralization. Then a complex voting procedure is done to compute weights on cells and weights on facets connecting the cells as explained in [Jancosek2011] and [Jancosek2014].

A Graph Cut Max-Flow [Boykov2004] is applied to optimally cut the volume. This cut represents the extracted mesh surface. We filter bad cells on the surface. We finally apply a Laplacian filtering on the mesh to remove local artefacts.

At this point, the mesh can also be simplified to reduce unnecessary vertices.

[Jancosek2014]

Exploiting Visibility Information in Surface Reconstruction to Preserve Weakly Supported Surfaces, Michal Jancosek, Tomas Pajdla

[Jancosek2011]

Multi-view reconstruction preserving weakly-supported surfaces, Michal Jancosek, Tomas Pajdla, CVPR 2011

[Jancosek2010]

Hallucination-free multi-view stereo, M. Jancosek and T. Pajdla, ECCV 2010

[Labatut2009]

Robust and efficient surface reconstruction from range data, P. Labatut, J.-P. Pons, and R. Keriven, 2009

[Boykov2004]

An Experimental Comparison of Min-Cut/Max-Flow Algorithms for Energy Minimization in Computer Vision, Yuri Boykov and Vladimir Kolmogorov. 2004