Expert tutorial – fine tuning 3DF ZephyrWelcome 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.