CVB++ 15.0
SearchParameters Class Referencefinal

Definition of search parameters. More...

#include <cvb/dnc/search_parameters.hpp>

Public Member Functions

 SearchParameters ()=default
 Default search parameters. More...
 
double HypothesesThreshold () const noexcept
 Get minimum feature score for hypotheses generation. More...
 
void SetHypothesesThreshold (double value)
 Set minimum feature score for hypotheses generation. More...
 
int DerivativePatchSize () const noexcept
 Get smoothing area in pixels for gradient and normal calculation. More...
 
void SetDerivativePatchSize (int value)
 Set smoothing area in pixels for gradient and normal calculation. More...
 
double IndifferentRadius () const noexcept
 Get fraction of template size which accounts for a single object. More...
 
void SetIndifferentRadius (double value)
 Set fraction of template size which accounts for a single object. More...
 
int PartsToFind () const noexcept
 Get the maximum number of objects to find. More...
 
void SetPartsToFind (int value)
 Set the maximum number of objects to find. More...
 
bool RawResultsOnly () const noexcept
 Get the raw results flag. More...
 
void SetRawResultsOnly (bool value) noexcept
 Set the raw results flag. More...
 
int ICPShrink () const noexcept
 Get the subsample factor for ICP. More...
 
void SetICPShrink (int value)
 Set the subsample factor for ICP. More...
 
int ICPMaxIterations () const noexcept
 Get the maximum number of iterations of the ICP algorithm. More...
 
void SetICPMaxIterations (int value)
 Set the maximum number of iterations of the ICP algorithm. More...
 
double PrecisionThreshold () const noexcept
 Get precision threshold. More...
 
void SetPrecisionThreshold (double value)
 Set precision threshold. More...
 
double MinCoverage () const noexcept
 Get minimum coverage. More...
 
void SetMinCoverage (double value)
 Set minimum coverage. More...
 
double MaxOcclusion () const noexcept
 Get maximum occlusion. More...
 
void SetMaxOcclusion (double value)
 Set maximum occlusion. More...
 
double MaxInconsistency () const noexcept
 Get maximum inconsistency. More...
 
void SetMaxInconsistency (double value)
 Set maximum inconsistency. More...
 
double MinScore () const noexcept
 Get minimum score. More...
 
void SetMinScore (double value)
 Set minimum score. More...
 

Detailed Description

Definition of search parameters.

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

Examples
DNC/CppDncConsole.

Constructor & Destructor Documentation

◆ SearchParameters()

SearchParameters ( )
default

Default search parameters.

Exceptions
Doesnot throw any exception.

Member Function Documentation

◆ DerivativePatchSize()

int DerivativePatchSize ( ) const
inlinenoexcept

Get smoothing area in pixels for gradient and normal calculation.

A detailed description of this parameter can be found at the corresponding setting function SetDerivativePatchSize.

Returns
The patch size.
Exceptions
Doesnot throw any exception.

◆ HypothesesThreshold()

double HypothesesThreshold ( ) const
inlinenoexcept

Get minimum feature score for hypotheses generation.

A detailed description of this parameter can be found at the corresponding setting function SetHypothesesThreshold.

Returns
The threshold.
Exceptions
Doesnot throw any exception.

◆ ICPMaxIterations()

int ICPMaxIterations ( ) const
inlinenoexcept

Get the maximum number of iterations of the ICP algorithm.

A detailed description of this parameter can be found at the corresponding setting function SetICPMaxIterations.

Returns
The number of iterations.
Exceptions
Doesnot throw any exception.

◆ ICPShrink()

int ICPShrink ( ) const
inlinenoexcept

Get the subsample factor for ICP.

A detailed description of this parameter can be found at the corresponding setting function SetICPShrink.

Returns
The subsample factor.
Exceptions
Doesnot throw any exception.

◆ IndifferentRadius()

double IndifferentRadius ( ) const
inlinenoexcept

Get fraction of template size which accounts for a single object.

A detailed description of this parameter can be found at the corresponding setting function SetIndifferentRadius.

Returns
The indifferent radius.
Exceptions
Doesnot throw any exception.

◆ MaxInconsistency()

double MaxInconsistency ( ) const
inlinenoexcept

Get maximum inconsistency.

A detailed description of this parameter can be found at the corresponding setting function SetMaxInconsistency.

Returns
The threshold.
Exceptions
Doesnot throw any exception.

◆ MaxOcclusion()

double MaxOcclusion ( ) const
inlinenoexcept

Get maximum occlusion.

A detailed description of this parameter can be found at the corresponding setting function SetMaxOcclusion.

Returns
The threshold.
Exceptions
Doesnot throw any exception.

◆ MinCoverage()

double MinCoverage ( ) const
inlinenoexcept

Get minimum coverage.

A detailed description of this parameter can be found at the corresponding setting function SetMinCoverage.

Returns
The threshold.
Exceptions
Doesnot throw any exception.

◆ MinScore()

double MinScore ( ) const
inlinenoexcept

Get minimum score.

A detailed description of this parameter can be found at the corresponding setting function SetMinScore.

Returns
The threshold.
Exceptions
Doesnot throw any exception.

◆ PartsToFind()

int PartsToFind ( ) const
inlinenoexcept

Get the maximum number of objects to find.

A detailed description of this parameter can be found at the corresponding setting function SetPartsToFind.

Returns
The number of parts to find.
Exceptions
Doesnot throw any exception.

◆ PrecisionThreshold()

double PrecisionThreshold ( ) const
inlinenoexcept

Get precision threshold.

A detailed description of this parameter can be found at the corresponding setting function SetPrecisionThreshold.

Returns
The threshold.
Exceptions
Doesnot throw any exception.

◆ RawResultsOnly()

bool RawResultsOnly ( ) const
inlinenoexcept

Get the raw results flag.

A detailed description of this parameter can be found at the corresponding setting function SetRawResultsOnly.

Returns
True if set on, false otherwise.
Exceptions
Doesnot throw any exception.

◆ SetDerivativePatchSize()

void SetDerivativePatchSize ( int  value)
inline

Set smoothing area in pixels for gradient and normal calculation.

This 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. This value should be odd. Typical values are in the range 3..9.

Parameters
[in]valueThe patch size.
Exceptions
Doesnot throw any exception.
Examples
DNC/CppDncConsole.

◆ SetHypothesesThreshold()

void SetHypothesesThreshold ( double  value)
inline

Set minimum feature score for hypotheses generation.

This 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 SetRawResultsOnly().

Parameters
[in]valueThe threshold.
Exceptions
Doesnot throw any exception.
Examples
DNC/CppDncConsole.

◆ SetICPMaxIterations()

void SetICPMaxIterations ( int  value)
inline

Set the maximum number of iterations of the ICP algorithm.

This 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.

Parameters
[in]valueThe number of iterations.
Exceptions
Doesnot throw any exception.
Examples
DNC/CppDncConsole.

◆ SetICPShrink()

void SetICPShrink ( int  value)
inline

Set the subsample factor for ICP.

This 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.

Parameters
[in]valueThe subsample factor.
Exceptions
Doesnot throw any exception.
Examples
DNC/CppDncConsole.

◆ SetIndifferentRadius()

void SetIndifferentRadius ( double  value)
inline

Set fraction of template size which accounts for a single object.

This 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.

Parameters
[in]valueThe indifferent radius.
Exceptions
Doesnot throw any exception.
Examples
DNC/CppDncConsole.

◆ SetMaxInconsistency()

void SetMaxInconsistency ( double  value)
inline

Set maximum inconsistency.

This value is a threshold (0..1) that specifies the maximum allowed part of the model view to be insconsistent 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.

Parameters
[in]valueThe threshold.
Exceptions
Doesnot throw any exception.
Examples
DNC/CppDncConsole.

◆ SetMaxOcclusion()

void SetMaxOcclusion ( double  value)
inline

Set maximum occlusion.

This 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.

Parameters
[in]valueThe threshold.
Exceptions
Doesnot throw any exception.
Examples
DNC/CppDncConsole.

◆ SetMinCoverage()

void SetMinCoverage ( double  value)
inline

Set minimum coverage.

This 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.

Parameters
[in]valueThe threshold.
Exceptions
Doesnot throw any exception.
Examples
DNC/CppDncConsole.

◆ SetMinScore()

void SetMinScore ( double  value)
inline

Set minimum score.

This 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.

Parameters
[in]valueThe threshold.
Exceptions
Doesnot throw any exception.
Examples
DNC/CppDncConsole.

◆ SetPartsToFind()

void SetPartsToFind ( int  value)
inline

Set the maximum number of objects to find.

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

Parameters
[in]valueThe number of parts to find.
Exceptions
Doesnot throw any exception.
Examples
DNC/CppDncConsole.

◆ SetPrecisionThreshold()

void SetPrecisionThreshold ( double  value)
inline

Set precision threshold.

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. This value depends on the quality of the point cloud data. A typical value is 2 mm, the minimum allowed value is 0.

Parameters
[in]valueThe threshold.
Exceptions
Doesnot throw any exception.
Examples
DNC/CppDncConsole.

◆ SetRawResultsOnly()

void SetRawResultsOnly ( bool  value)
inlinenoexcept

Set the raw results flag.

If this flag is set, candidate locations are considered as 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 SearchResult.Position, SearchResult.RotationVector and SearchResult.Theta are only rough in a sense, that no fine tuning (ICP) takes place.

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

Parameters
[in]valueTrue to set on, false otherwise.
Exceptions
Doesnot throw any exception.
Examples
DNC/CppDncConsole.