custom settings

Expert tutorial – fine tuning 3DF Zephyr

Welcome to the 3DF Zephyr tutorial series.

In this recipe, you will learn how to get the best results possible with 3DF Zephyr.

Please note that there is not a direct 1:1 mapping between advanced and custom settings : going back and forth between these two modes, might overwright certain settings.

  • Introduction

Very few people actually need to change these values since the presets and advanced settings should be enough for almost everyone. This documentation has however two additional purposes:

  • teach you exactly what each advanced parameter does
  • give a reference for XML settings (required in batch mode)

In this page, you will find values and description for each parameter.

  • Sparse Point Cloud generation

Samantha/MaxKeypointsPerImage

The max number of keypoints that are to be extracted for each image.

Samantha/AdjustInternalParametersOnFinalBa

When set to true the internal camera parameters are re-adjusted during the final bundle adjustment.

Samantha/ANNNumberOfNeighbors

Number of neighbors images to be considered for each camera during the fast-matching phase

Samantha/ANNNumberOfFeatures

Number of keypoints to be considered for each image during the fast-matching phase

Samantha/LocalBa

If set to true activates the local bundle adjustment strategy. The geometric reconstruction will go faster with no noticeable differences.

Samantha/LocalBaOnAutocalibration

If set to true activates the local bundle adjustment strategy during the autocalibration phase. The geometric reconstruction will go faster, but results might be unstable.

Samantha/FinalBa

Select whether to use of not the final bundle adjustment routine.

Samantha/FinalMaxReprojectionError

Maximum reprojection error. This threshold is used to discard points with high reprojection error after Samantha has been completed. The parameter is expressed in pixels.

Samantha/FinalMinimumTrackLength

Number of minimum track length for each point. Points with lower track length are discarded after Samantha has been completed.

Samantha/ForceSequentialPipeline

Use a sequential reconstruction if set to true; use a hierarchical reconstruction when set to false.

Samantha/KeypointNumberOfLevels

Defines how many levels are extracted in the LoG pyramid during the keypoint extraction. An high value is advised when dealing with far and short distance photos appearing in the same dataset. A Low value will results in a faster extraction phase.

Samantha/KeypointNumberOfLevelsPerOctave

Defines how many levels are extracted for a single octave in the LoG pyramid during the keypoint extraction.

Samantha/MinBAIterations

Minimum number of iteration of the Bundle Adjustment routine.

Samantha/MaxBAIterations

Maximum number of iteration of the Bundle Adjustment routine.

Samantha/MaxOuterLoopBAIterations

Maximum number of outer loop iteration of the Bundle Adjustment routine.

Samantha/MaxResolution

Controls the maximum image dimension (set a threshold to the max of width or height).

Samantha/MinimumTrackLength

Number of minimum track length for each point. Points with lower track length are discarded during the reconstruction.

Samantha/NBucketsPerWidth

Keypoint matching follows a bucketing strategy. This parameter specifies the number of buckets per image width.

Samantha/NCamerasToFixIntrinsics

Number of cameras needed before fixing the internal parameters of a cluster of cameras. An high value will likely produce more accurate calibration results, but it will require more time.

Samantha/NumberOfMatchViews

This parameters influences the number of neighbor cameras to be matched for each camera. For each camera the number of matching views is computed as ( NumberOfMatchViews + #views / NumberOfMatchViewsN )

Samantha/NumberOfMatchViewsN

This parameters influences the number of neighbor cameras to be matched for each camera. For each camera the number of matching views is computed as ( NumberOfMatchViews + #views / NumberOfMatchViewsN )

Samantha/PointRecovery

If set to true activates a bad tracks/point recovery strategy during reconstruction. The geometric reconstruction phase will be slower but generally more robust.

Samantha/PInlier

This value, along with SigmaNoise, controls the inliers threshold during the matching phase. It represents the probability of a match of being an inlier. A high value will produce less matches.

Samantha/ReprojectionThreshold

Maximum reprojection error. This threshold is used to discard points with high reprojection error during the reconstruction. The parameter is expressed in pixels.

Samantha/ReprojectionThresholdBeforeRatio

Before minimization, a value of ReprojectionThresholdBeforeRatio * ReprojectionThreshold is considered to discard early outliers.

Samantha/SigmaNoise

This value, along with PInlier, controls the inliers threshold during the matching phase. It represents an estimation of the variance. A high value will produce more matches.

Samantha/StructSequence

When images are known to be in a specific order, you can set this value to: 1=linear ordering, 2=circular ordering, 3=approximate grid. Set the value to 0 (default) if the image ordering is unknown.

Samantha/MinInliersRatio

Inliers/Outliers ratio used to discard matches during the matching phase.

Samantha/UseSymmetricMatches

Specifies which algorithm is used to match keypoints. Symmetric, as opposed to one-way, means that a match from image I to image J must be also verified from image J to image I.

Samantha/MatchingBreakup

Make use of an approximate keypoint matching phase, by using keypoints clusterization. 0=no approximation, 1=slight approximation, 2=high approximation

Samantha/MaximumTracksPerCameraOnBA

Maximum number of track to be considered during the Bundle adjustment phase.

Samantha/MaximumTracksPerCameraOnBAAC

Maximum number of track to be considered during the Bundle adjustment phase with varying internal parameters.

Samantha/GlobalReconstruction

When set to true, Samantha will use the global reconstruction engine instead of the incremental one.+

Samantha/IncrementalAfterGlobalReconstruction

When set to true, Samantha will try to add cameras with the incremental engine after the global pipeline.

Samantha/MaxAngleErrorFilterGlobalReconstruction

Maximum acceptable local view pair rotation error during the global reconstruction process.

Samantha/MatchingPreemptiveNeighborFeatures

Maximum number of keypoints used during the preemptive phase of the keypoints matching.

Samantha/Rematching

Perform matching and bundle adjustment again after a first reconstruction has been obtained.

Samantha/KeypointDensity

The max number of keypoints that are to be extracted for each image. Increase only if cameras have not been oriented.

Samantha/MatchingStageDepth

Set the the number of neighbor cameras to be matched for each camera. Increase only if cameras have not been oriented. Decrease for speed

Samantha/MatchingType

Fast and very fast make uses of approximate clustering to speed up the matching phase. Use accurate only when the cameras have not been oriented correctly.

Samantha/PhotoOrdering

When images are known to be in a specific order, you can set this value to: sequential ordering, circular ordering, approximate grid. Set the value to Unordered if the image ordering is unknown.

Samantha/ReconstructionEngine

Global pipeline is generally faster. The incremental pipeline might work better for some specific cases.

  • Dense point cloud generation

Stereo/WindowSize

Matching window size. Should always be always odd.

Stereo/NearSaMPoints

Number of near SfM points to be considered as seed for the multiview stereo point.

Stereo/NumberOfNearestCameras

Number of near cameras to consider for generating a single depth map.

Stereo/NumberOfBins

Maximum number of the octree bins for the voting phase. Should always be a power of two.

Stereo/NumberOfBinsMin

Minimum number of the octree bins for the voting phase. Should always be a power of two.

Stereo/MaxResolutionPercent

Controls the percentage of the input images resolution.

Stereo/AdditionalPyramidLevels

Number of downscaled depth map to precompute before the full resolution depth map.

Stereo/NCCThreshold

Matches with a machine score value lower than this threshold are immediately discarded. Matching score varies from 0.0 to 1.0.

Stereo/UseSteerableNCC

Select to use or not local rotation and scaling for the matching windows.

Stereo/MRFDataTermWeight

Data term weight used for the Markov Random Field optimization

Stereo/MRFUnknownSmoothTerm

Smoothness term value for the unknown label used during the Markov Random Field optimization

Stereo/MRFUnknownDataTerm

Data term value for the unknown label used during the Markov Random Field optimization

Stereo/MRFNumLabels

Number of depth hypothesis to be used in the Markov Random Field optimization phase.

Stereo/MRFIterations

Number of maximum iterations of the Markov Random Field optimization.

Stereo/EpipolarLineStep

Controls the sampling step (in pixels) along the epipolar line. You can get subpixel accuracy by setting a value lower than 1.0.

Stereo/NearSaMRadius

Radius in pixel to consider a SfM point as seed for the multiview stereo point.

Stereo/MinWindowVariance

Matches with low variance (homogeneous color areas) are discarded according to this threshold.

Stereo/NoiseFiltering

Weak 3D points are discarded. This value controls how much the noise filter influences the point cloud creation. A low value will produce a denser point cloud but more likely to contain noise.

Stereo/RawOutput

Select whether to optimize or not the final dense point cloud (fill gaps and remove small regions)

Stereo/Sharp

Select whether to use the edge-preserving algorithm or not during the final optional point cloud optimization

Stereo/UseTiles

Split the computation into tiles during the MVS voting phase.

Stereo/OutputType

Refined output will have less holes and a denser output.

Stereo/ShapeFromSilhouette

Turn on to use Shape from Silhouette (requires masks for all images)

Stereo/ShapeFromSilhouetteLooseness

Looseness value for the Shape from Silhouette. Increase when the masks are not accurate.

Stereo/ShapeFromSilhouetteDiscretization

Set the volume discretization level of the Shape from Silhouette algorithm.

Stereo/HyperplaneMatching

Turn on to use a more accurate matching function. Turn off to increase speed.

Stereo/UseDepthMapCoverage

Turn on to use only a preselection of cameras for the depth map computation. When turned on the computation will be speeded up.

  • Surface extraction

Surface/OctreeDepth

Maximum depth of the tree that will be used for surface reconstruction. Running at depth d corresponds to solving on a voxel grid whose resolution is no larger than 2^d x 2^d x 2^d. Used only when Sharp is set to false.

Surface/PointWeight

This floating point value specifies the importance that interpolation of the point samples is given in the formulation of the screened Poisson equation. Used only when Sharp is set to false.

Surface/SamplesPerNode

This floating point value specifies the minimum number of sample points that should fall within an octree node as the octree construction is adapted to sampling density. Used only when Sharp is set to false.

Surface/KNNormal

Number of neighbor points used for computing the normals before the running the surface extraction algorithm. Used only when Sharp is set to false.

Surface/ForceConnected

When set to true, only the bigger connected mesh is retained.Surface/Sharp When set to true, uses an edge-preserving algorithm (Sasha). When set to false, use the poisson reconstruction algorithm.

Surface/MinNumberOfVertices

Minimum number of desired vertices for the final mesh

Surface/MaxNumberOfVertices

Maximum number of desired vertices for the final mesh

Surface/SmoothingIterations

Number of additional smoothing filter iterations. Default 0.

Surface/SmoothingFilter

Select the additional / optional smoothing filter to apply. 0 = Laplacian, 1 = Bilateral

Surface/UsePhotoconsistency

When set to true, run the Photoconsistency based optimization procedure during the surface extraction.

Surface/PCNumberOfNeighbors

Number of neighbor cameras to use during the Photoconsistency based optimization procedure.

Surface/PCMaxResolutionPercent

Controls the percentage of the input images resolution during the Photoconsistency based optimization procedure.

Surface/PCMaxIterations

The number of maximum iterations the Photoconsistency based optimization procedure is allowed to run.

Surface/EdgeLengthTrimScale

Scale factor to delete triangle with long edges after reconstruction.

Surface/DepthTrim

Specifies the value for mesh trimming for poisson / smooth reconstruction. Ignored for sharp surface reconstruction.

Surface/PCSymmetricPairs

Given a camera pair (A,B) during the Photoconsistency based optimization procedure, when set to true, both (A,B) and (B,A) will be considered during the same iteration.

Surface/PCSubdivisions

When greater than 0, the target resolution of the Photoconsistency based optimization procedure will be reached in subsequent steps, starting from half the target resolution and reaching the target resolution.

Surface/PCTargetReprojectionArea

The target area, in pixels, in which the Photoconsistency based optimization procedure will try to fit the projection of a given triangle to it’s nearest seen camera.

Surface/PCMaxNumberOfVertices

Maximum number of vertices to be used during the photoconsistency based optimization procedure.

Surface/UseMasking

Use masks (if available) inside the sharp mesh generation algorithm.

Surface/Smoothness

Set the smoothness level of the output mesh (before photoconsistency).

Surface/Tightness

Set the watertightness level of the output mesh.

Surface/PCHighFrequencies

Enhance the photoconsistency near the high frequency. Raise to extract more details. This can also lead to more surface noise.

Surface/PCFunctionDelta

Control the convergence parameters. Increase to perform less iterations

  • Texture generation

Texture/TextureSize

Final Texture size (width and height)

Texture/Multiband

Select whether to use or not the Multiband algorithm. Cannot be used when the color balance is activated.

Texture/MaxCamerasPerTriangle

Maximum number of cameras used to compute the texture for a single triangle.

Texture/MaxNumberOfVertices

Maximum number of desired vertices for the final mesh

Texture/ColorBalance

Select whether to use or not the Color Balance algorithm.

Texture/MaxCompatibleCamerasPerTriangle

Maximum number of compatible cameras that can be considered for a single triangle.

Texture/MaxTextureSize

Maximum texture size (pixels x pixels).

Texture/ImageResolutionPercent

Controls the percentage of the input images resolution.

Texture/UnwrappingFactor

Unwrapping factor in the texture coordinates generation. If set close to 1 the same camera will be preferred for near triangles, if close to 0 the triangle score will be weighted more.

Texture/ColorBalanceHalfWindowSize

Half window size used for the color balance filter.

Texture/ColorBalanceSoftenEdgesHalfWindowSize

Half window size used for softening texture patches. Set to 0 to disable softening.

Texture/ColorBalanceFillBoundaries

Enable or disable the filling procedure outside of the texture boundaries.

Texture/GenerateFloatTexture

Generates 32-bit textures. This must be checked if you want to export in tiff / exr formats.

Texture/UsePhotoconsistency

Use a photoconsistency principle to compute camera visibility for texturing. Useful when there are moving objects in the photos.

Texture/TextureCount

Number of maximum texture to generate. Set to 1 to disable multitexturing

Texture/SharpnessFactor

Enhance sharp details in texturing.

Texture/CheckBlurriness

Use a blurriness check to compute camera visibility for texturing. Useful part of the photos are blurred, especially in close ups / turn table scenarios.