DNCFind (CVDNCFind.dll) 15.0
CVDNCSearchParams Struct Reference

Definition of search parameters. More...

Data Fields

int DerivativePatchSize
 Smoothing area in pixels for gradient and normal calculation. More...
 
double HypothesesThreshold
 Minimum feature score for hypotheses generation. More...
 
int ICPMaxIterations
 Maximum number of ICP-iterations. More...
 
int ICPShrink
 Subsample factor for ICP. More...
 
double IndifferentRadius
 Fraction of template size which accounts for a single object. More...
 
double MaxInconsistency
 Maximum allowed fraction of point cloud view to be inconsistent with model. More...
 
double MaxOcclusion
 Maximum allowed fraction of point cloud view to be occluded. More...
 
double MinCoverage
 Minimum required fraction of point cloud view. More...
 
double MinScore
 Minimum required final score. More...
 
int PartsToFind
 Maximum number of objects to find. More...
 
double PrecisionThreshold
 Maximum allowed distance for local deviations (in mm). More...
 
bool RawResultsOnly
 Take hypotheses as hits. More...
 

Detailed Description

Definition of search parameters.

Search parameters strongly influence the search results. Likewise, they have a great influence on the timing of a search operation CVDNCFind.

See also
CVDNCSetSearchParams, CVDNCGetSearchParams

Field Documentation

◆ DerivativePatchSize

DerivativePatchSize

Smoothing area in pixels for gradient and normal calculation.

The value controls which local environment in the depth image is used to calculate gradients and normals. Minimum is 3. Larger values result in a smoothing of the depth image. The value should be odd. Typical values are in the range 3..9.

◆ HypothesesThreshold

HypothesesThreshold

Minimum feature score for hypotheses generation.

The value controls which areas of the depth image are used as candidates for closer examination. The feature score is calculated from the correspondences of gradients and normals between all models and the actual point cloud data. The threshold should be chosen so that on the one hand all object candidates are found, on the other hand as few false candidates as possible are generated. Typical values are in the range between 0.9 ... 1.0. Disturbances in the point cloud, missing or spurious data may make it necessary to reduce the value. The minimum value is 0.5.

To find a usable threshold it is recommended to set the flag RawResultsOnly.

◆ ICPMaxIterations

ICPMaxIterations

Maximum number of ICP-iterations.

The value specifies the maximum number of iterations of the ICP algorithm. Increasing the value may increase the accuracy of the result, while possibly increasing the processing time. A typical value is 10.

◆ ICPShrink

ICPShrink

Subsample factor for ICP.

The value specifies the factor by which the area of a found candidate is reduced before the exact position of the object is determined by means of an ICP algorithm. The minimum allowed value of 1 means no reduction (highest accuracy). With increasing reduction, the processing speed increases, but at the same time the accuracy of the results also decrease. Typical values are in a range 1..4.

◆ IndifferentRadius

IndifferentRadius

Fraction of template size which accounts for a single object.

The value specifies within which vicinity of a found candidate no further candidates are searched for. The value 1 indicates the largest extent of the learned object. For elongated objects that are close to each other, a smaller value may have to be selected. The minimum value is 0.5.

◆ MaxInconsistency

MaxInconsistency

Maximum allowed fraction of point cloud view to be inconsistent with model.

The value is a threshold (0..1) that specifies the maximum allowed part of the model view to be insconsistend with the point cloud data in order for the hit to be counted. Inconsistency is defined to be point cloud data which is beyond the model. A typical value may be 0.2. It is influenced by PrecisionThreshold.

◆ MaxOcclusion

MaxOcclusion

Maximum allowed fraction of point cloud view to be occluded.

The value is a threshold (0..1) that specifies the maximum allowed part of the model view which is occluded by the point cloud data in order for the hit to be counted. Occlusion is defined to be point cloud data lying between the model and the sensor. A typical value may be 0.2. It is influenced by PrecisionThreshold.

◆ MinCoverage

MinCoverage

Minimum required fraction of point cloud view.

The value is a threshold (0..1) that specifies the minimum required coverage of the model view by the point cloud data in order for the hit to be counted. A typical value may be 0.8. It is influenced by PrecisionThreshold.

◆ MinScore

MinScore

Minimum required final score.

The value is a threshold (0..1) that determines whether the candidate is counted as a hit. For this, a hash similarity score between final model view and point cloud data must exceed this limit. A typical value may be 0.8.

◆ PartsToFind

PartsToFind

Maximum number of objects to find.

The value specifies the maximum number of objects to be detected. A value of zero means that all objects should be found.

◆ PrecisionThreshold

PrecisionThreshold

Maximum allowed distance for local deviations (in mm).

The calculation of the result score is based on deviations between the CAD model and the point cloud data. This value determines which deviation is considered tolerable, inconsistent or occlusion. The value depends on the quality of the point cloud data. A typical value is 2 mm, the minimum allowed value is 0.

◆ RawResultsOnly

RawResultsOnly

Take hypotheses as hits.

If this flag is set, candidate locations are considered hits without further investigation of these candidates. In this case, only parameters HypothesesThreshold, PartsToFind and MinScore are decisive for finding objects. If found candidates are indeed true object hits, the result values for CVDNCResult::Position, CVDNCResult::RotationVector and CVDNCResult::Theta are only rough in a sense, that no fine tuning (ICP) takes place.

Also, in this case the reported CVDNCResult::Score values coincide with the feature scores, which makes it possible to determine a useful value for HypothesesThreshold.