MultiScaleDetector Class Reference

#include <MultiScaleDetector.h>

Inheritance diagram for MultiScaleDetector:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual void detect (const std::vector< double > &signal, std::vector< std::vector< double > > &signalSmooth, std::vector< std::vector< double > > &signalDiff, std::vector< std::vector< unsigned int > > &indexes) const
virtual unsigned int detect (const LaserReading &reading, std::vector< InterestPoint * > &point, std::vector< double > &signal, std::vector< std::vector< double > > &signalSmooth, std::vector< std::vector< double > > &signalDiff, std::vector< std::vector< unsigned int > > &indexes) const
virtual unsigned int detect (const LaserReading &reading, std::vector< InterestPoint * > &point) const
double getBaseSigma () const
SmoothingFilterFamily getFilterType () const
const PeakFindergetPeakFinder () const
unsigned int getScaleNumber () const
const std::vector< double > & getScales () const
double getSigmaStep () const
bool getUseMaxRange ()
 MultiScaleDetector (const PeakFinder *peak, unsigned int scales=5, double sigma=1.6, double step=1.4, SmoothingFilterFamily filterType=BESSEL)
void setBaseSigma (double sigma)
void setFilterType (SmoothingFilterFamily filterType)
void setPeakFinder (const PeakFinder *peak)
void setScaleNumber (unsigned int scales)
void setSigmaStep (double step)
void setUseMaxRange (bool use)

Protected Member Functions

virtual void computeDifferentialBank ()=0
virtual void computeFilterBank ()
virtual unsigned int computeInterestPoints (const LaserReading &reading, const std::vector< double > &signal, std::vector< InterestPoint * > &point, std::vector< std::vector< unsigned int > > &indexes, std::vector< unsigned int > &maxRangeMapping) const =0
virtual void computeSignal (const LaserReading &reading, std::vector< double > &signal, std::vector< unsigned int > &maxRangeMapping) const =0

Protected Attributes

double m_baseSigma
std::vector< std::vector
< double > > 
m_differentialBank
std::vector< std::vector
< double > > 
m_filterBank
SmoothingFilterFamily m_filterType
const PeakFinderm_peakFinder
unsigned int m_scaleNumber
std::vector< double > m_scales
double m_sigmaStep
bool m_useMaxRange

Detailed Description

Representation of an abstract multi scale detector for monodimensional signals. The class represents an abstract multi scale detector for monodimensional signals. It provides the interface to set the parameters of the detector and to detect interest points in laser readings.

Author:
Gian Diego Tipaldi

Definition at line 55 of file MultiScaleDetector.h.


Constructor & Destructor Documentation

MultiScaleDetector::MultiScaleDetector ( const PeakFinder peak,
unsigned int  scales = 5,
double  sigma = 1.6,
double  step = 1.4,
SmoothingFilterFamily  filterType = BESSEL 
)

Constructor. Constructs and initialize the shared part of a general multi scale detector for monodimensional signals.

Parameters:
peak The peak finder used to detect maxima in the signal.
scales The number of different scales to consider.
sigma The standard deviation of the smoothing kernel for the initial scale ($ t_0 $ in the paper).
step The scale increment at every new scale ($ t_i $ in the paper). The standard deviation of the kernel at scale $ s $ is $ t_0 \cdot (t_i)^s $
filterType The smoothing kernel used in the detector.

Definition at line 4 of file MultiScaleDetector.cpp.


Member Function Documentation

virtual void MultiScaleDetector::computeDifferentialBank (  )  [protected, pure virtual]

Precomputes the bank of differential operators. It defines which family of interest point detector to use (blob, edge, ridge, ...).

Implemented in NormalBlobDetector, NormalDetector, NormalEdgeDetector, and RangeDetector.

void MultiScaleDetector::computeFilterBank (  )  [protected, virtual]

Precomputes the bank of smoothing operators. It is provided for efficiency issues.

Definition at line 55 of file MultiScaleDetector.cpp.

virtual unsigned int MultiScaleDetector::computeInterestPoints ( const LaserReading reading,
const std::vector< double > &  signal,
std::vector< InterestPoint * > &  point,
std::vector< std::vector< unsigned int > > &  indexes,
std::vector< unsigned int > &  maxRangeMapping 
) const [protected, pure virtual]

Computes the interst point locations and (when possible) orientation. The points are extracted from the laser reading according to the indexes.

Implemented in NormalDetector, and RangeDetector.

virtual void MultiScaleDetector::computeSignal ( const LaserReading reading,
std::vector< double > &  signal,
std::vector< unsigned int > &  maxRangeMapping 
) const [protected, pure virtual]

Computes the monodimensional signal from which extracts the features.

Implemented in NormalDetector, and RangeDetector.

void MultiScaleDetector::detect ( const std::vector< double > &  signal,
std::vector< std::vector< double > > &  signalSmooth,
std::vector< std::vector< double > > &  signalDiff,
std::vector< std::vector< unsigned int > > &  indexes 
) const [virtual]

Detects the interesting points given the laser reading. It also returns the signals used for the computation.

Returns:
The number of interest points detected.
Parameters:
signal The signal used for computing the interest points.
signalSmooth The smoothed signal at the different scales.
signalDiff The differential operator applied to the signal at the different scales.
indexes The indexes of the differential operator maxima at the different scales.

Definition at line 35 of file MultiScaleDetector.cpp.

unsigned int MultiScaleDetector::detect ( const LaserReading reading,
std::vector< InterestPoint * > &  points,
std::vector< double > &  signal,
std::vector< std::vector< double > > &  signalSmooth,
std::vector< std::vector< double > > &  signalDiff,
std::vector< std::vector< unsigned int > > &  indexes 
) const [virtual]

Detects the interesting points given the laser reading. It also returns the signals used for the computation.

Returns:
The number of interest points detected.
Parameters:
reading The laser reading.
points The detected interest points.
signal The signal used for computing the interest points.
signalSmooth The smoothed signal at the different scales.
signalDiff The differential operator applied to the signal at the different scales.
indexes The indexes of the differential operator maxima at the different scales.

Implements Detector.

Definition at line 23 of file MultiScaleDetector.cpp.

unsigned int MultiScaleDetector::detect ( const LaserReading reading,
std::vector< InterestPoint * > &  points 
) const [virtual]

Detects the interesting points given the laser reading.

Returns:
The number of interest points detected.
Parameters:
reading The laser reading.
points The detected interest points.

Implements Detector.

Definition at line 15 of file MultiScaleDetector.cpp.

double MultiScaleDetector::getBaseSigma (  )  const [inline]

Gets the standard deviation of the initial scale

Definition at line 128 of file MultiScaleDetector.h.

SmoothingFilterFamily MultiScaleDetector::getFilterType (  )  const [inline]

Gets the type of smoothing kernel

Definition at line 116 of file MultiScaleDetector.h.

const PeakFinder* MultiScaleDetector::getPeakFinder (  )  const [inline]

Gets the actual peak finder

Definition at line 136 of file MultiScaleDetector.h.

unsigned int MultiScaleDetector::getScaleNumber (  )  const [inline]

Gets the number of scales

Definition at line 120 of file MultiScaleDetector.h.

const std::vector<double>& MultiScaleDetector::getScales (  )  const [inline]

Gets the actual scales

Definition at line 124 of file MultiScaleDetector.h.

double MultiScaleDetector::getSigmaStep (  )  const [inline]

Gets the sigma increment step

Definition at line 132 of file MultiScaleDetector.h.

bool MultiScaleDetector::getUseMaxRange (  )  [inline]

Gets the "use the max range" flag.

Definition at line 140 of file MultiScaleDetector.h.

void MultiScaleDetector::setBaseSigma ( double  sigma  )  [inline]

Sets the standard deviation of the initial scale

Definition at line 100 of file MultiScaleDetector.h.

void MultiScaleDetector::setFilterType ( SmoothingFilterFamily  filterType  )  [inline]

Sets the type of smoothing kernel

Definition at line 92 of file MultiScaleDetector.h.

void MultiScaleDetector::setPeakFinder ( const PeakFinder peak  )  [inline]

Sets the peak finder

Definition at line 108 of file MultiScaleDetector.h.

void MultiScaleDetector::setScaleNumber ( unsigned int  scales  )  [inline]

Sets the number of scales

Definition at line 96 of file MultiScaleDetector.h.

void MultiScaleDetector::setSigmaStep ( double  step  )  [inline]

Sets the scale increment at each new scale

Definition at line 104 of file MultiScaleDetector.h.

void MultiScaleDetector::setUseMaxRange ( bool  use  )  [inline]

Sets the "use max range" flag. The flag enable or disable the use of max range readings.

Definition at line 112 of file MultiScaleDetector.h.


Member Data Documentation

double MultiScaleDetector::m_baseSigma [protected]

The standard deviation of the smoothing kernel for the initial scale ($ t_0 $ in the paper).

Definition at line 159 of file MultiScaleDetector.h.

std::vector< std::vector<double> > MultiScaleDetector::m_differentialBank [protected]

The precomputed bank of differential operators. It defines which family of interest point detector to use (blob, edge, ridge, ...).

Definition at line 164 of file MultiScaleDetector.h.

std::vector< std::vector<double> > MultiScaleDetector::m_filterBank [protected]

The precomputed bank of smoothing operators. It is provided for efficiency issues.

Definition at line 163 of file MultiScaleDetector.h.

Definition at line 162 of file MultiScaleDetector.h.

The peak finder used to detect maxima in the signal.

Definition at line 157 of file MultiScaleDetector.h.

unsigned int MultiScaleDetector::m_scaleNumber [protected]

The numebr of scales

Definition at line 158 of file MultiScaleDetector.h.

std::vector<double> MultiScaleDetector::m_scales [protected]

The precomputed scales for the smoothing operators. It is provided for efficiency issues.

Definition at line 165 of file MultiScaleDetector.h.

double MultiScaleDetector::m_sigmaStep [protected]

The scale increment at every new scale ($ t_i $ in the paper). The standard deviation of the kernel at scale $ s $ is $ t_0 \cdot (t_i)^s $

Definition at line 160 of file MultiScaleDetector.h.

The "use max range" flag. The flag enable or disable the use of max range readings.

Definition at line 161 of file MultiScaleDetector.h.


The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines


flirtlib
Author(s): Bhaskara Marthi, Gian Diego Tipaldi
autogenerated on Fri Jan 11 11:15:47 2013