LTI-Lib latest version v1.9 - last update 10 Apr 2010

lti::pyramidLocationSearch::parameters Class Reference

The parameters for the class pyramidLocationSearch. More...

#include <ltiPyramidLocationSearch.h>

Inheritance diagram for lti::pyramidLocationSearch::parameters:
Inheritance graph
[legend]
Collaboration diagram for lti::pyramidLocationSearch::parameters:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 parameters ()
 parameters (const parameters &other)
 ~parameters ()
const char * getTypeName () const
parameterscopy (const parameters &other)
parametersoperator= (const parameters &other)
virtual functor::parametersclone () const
virtual bool write (ioHandler &handler, const bool complete=true) const
virtual bool read (ioHandler &handler, const bool complete=true)

Public Attributes

Scale-space pyramid options



int numLevels
int upsampleFirstLevel
scaleSpacePyramid< channel >
::parameters 
pyramidParameters
bool interpolateMaxima
bool checkInterLevelMaxima
float smoothingGaussianVariance
bool locationsAtLevelZero
Orientation detection



int orientationWindowRadius
float orientationSigmaFactor
int binsInOrientationHistogram
float multiOrientationThreshold
bool averageOrientation
Location properties



float locationRelativeRadius

Maxima detection



enum  ePeakSelectionMode { GradientMagnitude, Laplacian, Harris, DoG }
int spatialMaximumNeighborhoodSize
ePeakSelectionMode peakSelectionMode
int doGLevelDistance
float doGKernelVariance
int doGKernelSize
vector< float > saliencyThreshold
float edgenessThreshold
bool densityFilter
int densityKernelRadius
fvector densityThreshold

Detailed Description

The parameters for the class pyramidLocationSearch.


Member Enumeration Documentation

Modes available for the peak detection.

Enumerator:
GradientMagnitude 

Magnitude of the gradient.

Laplacian 

Laplacian, using an lti::laplacianKernel.

Harris 

Harris corner detector.

DoG 

Difference of Gaussians.

See doGLevelDistance for more information.


Constructor & Destructor Documentation

lti::pyramidLocationSearch::parameters::parameters (  ) 

Default constructor.

Reimplemented from lti::transform::parameters.

lti::pyramidLocationSearch::parameters::parameters ( const parameters other  ) 

Copy constructor.

Parameters:
other the parameters object to be copied

Reimplemented from lti::transform::parameters.

lti::pyramidLocationSearch::parameters::~parameters (  )  [virtual]

Destructor.

Reimplemented from lti::functor::parameters.


Member Function Documentation

virtual functor::parameters* lti::pyramidLocationSearch::parameters::clone (  )  const [virtual]

Returns a pointer to a clone of the parameters.

Reimplemented from lti::transform::parameters.

parameters& lti::pyramidLocationSearch::parameters::copy ( const parameters other  ) 

Copy the contents of a parameters object.

Parameters:
other the parameters object to be copied
Returns:
a reference to this parameters object

Reimplemented from lti::transform::parameters.

const char* lti::pyramidLocationSearch::parameters::getTypeName (  )  const [virtual]

Returns name of this type.

Reimplemented from lti::transform::parameters.

parameters& lti::pyramidLocationSearch::parameters::operator= ( const parameters other  ) 

Copy the contents of a parameters object.

Parameters:
other the parameters object to be copied
Returns:
a reference to this parameters object
virtual bool lti::pyramidLocationSearch::parameters::read ( ioHandler handler,
const bool  complete = true 
) [virtual]

Read the parameters from the given ioHandler.

Parameters:
handler the ioHandler to be used
complete if true (the default) the enclosing begin/end will be also written, otherwise only the data block will be written.
Returns:
true if write was successful

Reimplemented from lti::functor::parameters.

virtual bool lti::pyramidLocationSearch::parameters::write ( ioHandler handler,
const bool  complete = true 
) const [virtual]

Write the parameters in the given ioHandler.

Parameters:
handler the ioHandler to be used
complete if true (the default) the enclosing begin/end will be also written, otherwise only the data block will be written.
Returns:
true if write was successful

Reimplemented from lti::functor::parameters.


Member Data Documentation

Average orientation.

If this value is set to true, all entries with values greater than multiOrientationThreshold times the maximum entry will be used to compute one single average value for the orientation. Note that no multi-oriented locations will be detected, but only one.

If is set to false, the entries are used directly as orientations, as Lowe suggested.

Default value: false

The resolution of the histogram for the determination of the orientation of the location.

Default value: 36

Set to true if only locations have to be accepted which have a saliency bigger than its upper and lower levels.

Default value: false

Density filter.

There are many applications where a global saliency threshold for the whole image is not appropriate. In those cases, you usually set the saliency threshold very low, so that in dark image regions some locations can also be detected.

The density filter activates a "local" saliency check. First, all locations are computed considering the saliencyThreshold only. Then, all locations "vote" with their saliency value in a window of radius densityKernelRadius. Voting means here, to assign all pixels in the window the maximum value between the value they already had and the saliency of the location.

Only those locations will survive, which have a saliency value greater or equal than the final "accumulated" saliency multiplied with the corresponding level densityThreshold

Default value: false

Density Kernel Radius.

Radius of a circular region around a location for density check. The greater the number, the more competitive the saliency of a location must be, in order to survive.

Default value: 3

Minimum relative value for the allowed for a location to be salient.

A location will be considered salient only if the value at the final local saliency estimation map multiplied by the corresponding densityThreshold is smaller or equal the location saliency.

If the number of levels in the pyramid is greater than the size of these vector, to all "additional" levels, the last valid value of the vector will be used. This means, if the given vector is of size one, then for all levels the same threshold will be used.

Default value: vector<float>(1,0.75f), i.e. all levels will use 0.75f

Size of the kernel used to compute the DoG.

If you set here a negative value, a kernel will be computed with a size such that the taps of a Gaussian kernel with variance doGLevelDistance*doGKernelVariance will be no greater than 5% of the the kernel tap at the position zero.

If you don't want automatic computation of the kernel size, you should set and odd value greater or equal 3.

Default value: -1 (e.g. automatic size computation)

Variance for the Gaussian of the current level when using the DoG peak detection mode.

The size of the final kernel used can be indicated explicitely or computed automatically depending on the value of doGKernelSize.

Default value: 1.6*1.6

Scale distance for the difference of Gaussians.

The Difference of Gaussians (DoG) peak detection mode needs to know which levels it has to compare. The default implementation compares two adjacent levels, but this is not mandatory. You can specify here any integer greater or equal 1.

The computation is done convolving each level with a precomputed kernel, that considers this value and the doGVariance, so that the computation times will be proportionally increasing with greater values here and in doGVariance.

The kernel K used will be:

\[ K(x,y) = G(x,y,k\sigma) - G(x,y,\sigma) \]

where G is a Gaussian function and k represents this doGLevelDistance parameter.

Default value: 1

Edgeness Threshold.

The edgeness is defined here as the ratio between the largest and the smallest eigenvalues of the Hessian matrix. This means, the smallest possible edgeness value is one, when both eigenvalues are equal, denoting a point with no definite edge direction, being a good candidate for a stable salient point. The larger the value, the greater the probability that the salient value is an egde made salient by noise.

Set the value closer to one to filter out edge point or larger to tolerate edge induced locations.

Default value 10;

Set to true to enable subpixel interpolation in the determination of scale space maxima.

Default value: true

This value indicates the scaling factor for a location radius.

In other words, this value will be multiplied with the corresponding pixel radius of a scaling factor to obtain the location radius.

Remember that the pixel radius at level 0 is 0.5;

Default value: 7

Usually, the locations returned by the apply methods contain coordinates in the original image.

By setting the parameter locationsAtLevelZero to true the location coordinates relate to the channel at level 0 in the channel pyramid (see getChannelPyramid()) instead. This can be useful when the location search is part of a feature extraction. The level 0 channel is either the original image or the upsampled image depending on the value or upsampleFirstLevel.

Default false

NOTE: Usually, you will not want this option to be activated. Be sure to fully understand the consequences before you do.

Threshold used to accept multiple orientations.

To compute the orientation of a location, a window with orientationWindowRadius is used to compute an orientation histogram. The greatest peak in this histogram determines the dominant orientation. However, if there are other peaks with a value equal the greatest peak times this factor, then locations with their orientation will also be inserted in the location list.

Set to 1.0 to detect only the maximum or maxima (if there are several bins sharing the same maximal value), or greater than 1 if you want only one maximum. A value of zero or less will include a location for all angles detected in the image (a much as binsInOrientationHistogram).

Default value: 0.8

Number of levels in the pyramid.

Default value: 15 (five octaves with the default levelScaleFactor)

Orientation sigma factor.

The values in the window are weighted with a Gaussian having as standard deviation (sigma) the orientation window radius divided by this factor.

This value must always be greater than zero, or an unpredictible behaviour must be expected.

Default value: 2

Radius of the orientation window.

The orientation will be analyzed at the nearest level corresponding to the radius of a location. The window used will have a size of (1+2*orientationWindowRadius)^2.

Default value: 3

Method for peak selection:

  • GradientMagnitude
  • Laplacian
  • Harris
  • DoG (Default and best).

Default value: DoG

Parameters used in the pyramid.

Lowe suggests to use scaling factors of the form 2^(-1/n), meaning that one octave will be divided by an integer number n of level. His experiments suggest that the optimal value for n is 3. The default value for this factor is 2^(-1/3) = 0.793700526.

The scaling factor (factor) is set to

Minimum relative value for the allowed for a location to be salient.

If the Laplacian pyramid (or its equivalent in other peakDetectionMode) contains a value less than saliencyThreshold times the maximum value at the corresponding pyramid level, then that value will be ignored.

If the number of levels in the pyramid is greater than the size of these vector, to all "additional" levels, the last valid value of the vector will be used. This means, if the given vector is of size one, then for all levels the same threshold will be used.

Default value: vector<float>(1,0.1f), i.e. all levels will use 0.1f

Value used for the smoothing kernel of only the first level.

This corresponds to the variance of the kernel, and not to the standard deviation.

If you don't want any smoothing, set this value to zero. The size of the kernel will be computed automatically to have at the first and last tabs values less than 5 percent of the middle tab.

Default value: Lowe suggestion of 1.6^2 = 2.56 (kernel size 5)

The size of the neighborhood to search for maxima in one level.

The accepted values are 3,5 or 7 (meaning 3x3, 5x5 or 7x7 neighborhoods).

Default value: 3

Lowe suggests to upsample the first level by a factor of two using bilinear interpolation.

Here you can given the number of upsampled levels you want to have in your pyramid. Using the default levelScaleFactor you need to set here 3 in order to get a first level upsampled a scaling factor of exaclty 2.

In general, the size of the first level will be the reciprocal of levelScaleFactor to the power of upsampleFirstLevel, multiplied by the size of the original channel.

If you want to use the original channel as the highest resolution level or the pyramid, set this parameter to 0.

This value must be 0 or positive.

Usually, the locations returned by the apply methods contain coordinates in the original image. By setting the parameter locationsAtLevelZero to true the location coordinates relate to the channel at level 0 in the channel pyramid (see getChannelPyramid()). This can be useful when the location search is part of a feature extraction. The level 0 channel is either the original image or the upsampled image depending on the value or upsampleFirstLevel.

Default value: 1


The documentation for this class was generated from the following file:

Generated on Sat Apr 10 15:27:43 2010 for LTI-Lib by Doxygen 1.6.1