Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
pcl::PyramidFeatureHistogram< PointFeature > Class Template Reference

Class that compares two sets of features by using a multiscale representation of the features inside a pyramid. Each level of the pyramid offers information about the similarity of the two feature sets. More...

#include <pyramid_feature_matching.h>

Inheritance diagram for pcl::PyramidFeatureHistogram< PointFeature >:
Inheritance graph
[legend]

List of all members.

Classes

struct  PyramidFeatureHistogramLevel
 Structure for representing a single pyramid histogram level. More...

Public Types

typedef boost::shared_ptr
< const
pcl::PointRepresentation
< PointFeature > > 
FeatureRepresentationConstPtr
typedef boost::shared_ptr
< PyramidFeatureHistogram
< PointFeature > > 
Ptr
typedef Ptr PyramidFeatureHistogramPtr

Public Member Functions

void compute ()
 The central method for inserting the feature set inside the pyramid and obtaining the complete pyramid.
std::vector< std::pair< float,
float > > 
getInputDimensionRange ()
 Method for retrieving the input dimension range vector.
FeatureRepresentationConstPtr const getPointRepresentation ()
 Get a pointer to the feature representation used when converting features into k-D vectors.
std::vector< std::pair< float,
float > > 
getTargetDimensionRange ()
 Method for retrieving the target dimension range vector.
bool isComputed ()
 Checks whether the pyramid histogram has been computed.
 PyramidFeatureHistogram ()
 Empty constructor that instantiates the feature representation variable.
void setInputDimensionRange (std::vector< std::pair< float, float > > &dimension_range_input)
 Method for setting the input dimension range parameter.
void setPointRepresentation (const FeatureRepresentationConstPtr &feature_representation)
 Provide a pointer to the feature representation to use to convert features to k-D vectors.
void setTargetDimensionRange (std::vector< std::pair< float, float > > &dimension_range_target)
 Method to set the target dimension range parameter.

Static Public Member Functions

static float comparePyramidFeatureHistograms (const PyramidFeatureHistogramPtr &pyramid_a, const PyramidFeatureHistogramPtr &pyramid_b)
 Static method for comparing two pyramid histograms that returns a floating point value between 0 and 1, representing the similiarity between the feature sets on which the two pyramid histograms are based.

Private Member Functions

void addFeature (std::vector< float > &feature)
 Adds a feature vector to its corresponding bin at each level in the pyramid.
unsigned int & at (std::vector< size_t > &access, size_t &level)
 Access the pyramid bin given the position of the bin at the given pyramid level and the pyramid level.
unsigned int & at (std::vector< float > &feature, size_t &level)
 Access the pyramid bin given a feature vector and the pyramid level.
void convertFeatureToVector (const PointFeature &feature, std::vector< float > &feature_vector)
 Converts a feature in templated form to an STL vector. This is the point where the conversion from the input dimension range to the target dimension range is done.
bool initializeHistogram ()
 Checks for input inconsistencies and initializes the underlying data structures.

Private Attributes

std::vector< std::pair< float,
float > > 
dimension_range_input_
std::vector< std::pair< float,
float > > 
dimension_range_target_
FeatureRepresentationConstPtr feature_representation_
std::vector
< PyramidFeatureHistogramLevel
hist_levels
bool is_computed_
size_t nr_dimensions
size_t nr_features
size_t nr_levels

Detailed Description

template<typename PointFeature>
class pcl::PyramidFeatureHistogram< PointFeature >

Class that compares two sets of features by using a multiscale representation of the features inside a pyramid. Each level of the pyramid offers information about the similarity of the two feature sets.

Note:
Works with any Point/Feature type which has a PointRepresentation implementation
The only parameters it needs are the input dimension ranges and the output dimension ranges. The input dimension ranges represent the ranges in which each dimension of the feature vector lies. As described in the paper, a minimum inter-vector distance of sqrt(nr_dims)/2 is needed. As such, the target dimension range parameter is used in order to augment/reduce the range for each dimension in order to obtain the necessary minimal inter-vector distance and to add/subtract weight to/from certain dimensions of the feature vector.

Follows the algorithm presented in the publication: Grauman, K. & Darrell, T. The Pyramid Match Kernel: Discriminative Classification with Sets of Image Features Tenth IEEE International Conference on Computer Vision ICCV05 Volume 1 October 2005

Author:
Alexandru-Eugen Ichim

Definition at line 68 of file pyramid_feature_matching.h.


Member Typedef Documentation

template<typename PointFeature>
typedef boost::shared_ptr<const pcl::PointRepresentation<PointFeature> > pcl::PyramidFeatureHistogram< PointFeature >::FeatureRepresentationConstPtr

Definition at line 75 of file pyramid_feature_matching.h.

template<typename PointFeature>
typedef boost::shared_ptr<PyramidFeatureHistogram<PointFeature> > pcl::PyramidFeatureHistogram< PointFeature >::Ptr

Definition at line 73 of file pyramid_feature_matching.h.

template<typename PointFeature>
typedef Ptr pcl::PyramidFeatureHistogram< PointFeature >::PyramidFeatureHistogramPtr

Definition at line 74 of file pyramid_feature_matching.h.


Constructor & Destructor Documentation

template<typename PointFeature >
pcl::PyramidFeatureHistogram< PointFeature >::PyramidFeatureHistogram ( )

Empty constructor that instantiates the feature representation variable.

Definition at line 130 of file pyramid_feature_matching.hpp.


Member Function Documentation

template<typename PointFeature >
void pcl::PyramidFeatureHistogram< PointFeature >::addFeature ( std::vector< float > &  feature) [private]

Adds a feature vector to its corresponding bin at each level in the pyramid.

Definition at line 307 of file pyramid_feature_matching.hpp.

template<typename PointFeature >
unsigned int & pcl::PyramidFeatureHistogram< PointFeature >::at ( std::vector< size_t > &  access,
size_t &  level 
) [inline, private]

Access the pyramid bin given the position of the bin at the given pyramid level and the pyramid level.

Parameters:
accessindex of the bin at the respective level
levelthe level in the pyramid

Definition at line 220 of file pyramid_feature_matching.hpp.

template<typename PointFeature >
unsigned int & pcl::PyramidFeatureHistogram< PointFeature >::at ( std::vector< float > &  feature,
size_t &  level 
) [inline, private]

Access the pyramid bin given a feature vector and the pyramid level.

Parameters:
featurethe feature in vectorized form
levelthe level in the pyramid

Definition at line 249 of file pyramid_feature_matching.hpp.

template<typename PointFeature >
float pcl::PyramidFeatureHistogram< PointFeature >::comparePyramidFeatureHistograms ( const PyramidFeatureHistogramPtr pyramid_a,
const PyramidFeatureHistogramPtr pyramid_b 
) [static]

Static method for comparing two pyramid histograms that returns a floating point value between 0 and 1, representing the similiarity between the feature sets on which the two pyramid histograms are based.

Parameters:
pyramid_aPointer to the first pyramid to be compared (needs to be computed already).
pyramid_bPointer to the second pyramid to be compared (needs to be computed already).

Definition at line 62 of file pyramid_feature_matching.hpp.

template<typename PointFeature >
void pcl::PyramidFeatureHistogram< PointFeature >::compute ( )

The central method for inserting the feature set inside the pyramid and obtaining the complete pyramid.

Definition at line 289 of file pyramid_feature_matching.hpp.

template<typename PointFeature >
void pcl::PyramidFeatureHistogram< PointFeature >::convertFeatureToVector ( const PointFeature &  feature,
std::vector< float > &  feature_vector 
) [private]

Converts a feature in templated form to an STL vector. This is the point where the conversion from the input dimension range to the target dimension range is done.

Definition at line 273 of file pyramid_feature_matching.hpp.

template<typename PointFeature>
std::vector<std::pair<float, float> > pcl::PyramidFeatureHistogram< PointFeature >::getInputDimensionRange ( ) [inline]

Method for retrieving the input dimension range vector.

Definition at line 90 of file pyramid_feature_matching.h.

template<typename PointFeature>
FeatureRepresentationConstPtr const pcl::PyramidFeatureHistogram< PointFeature >::getPointRepresentation ( ) [inline]

Get a pointer to the feature representation used when converting features into k-D vectors.

Definition at line 111 of file pyramid_feature_matching.h.

template<typename PointFeature>
std::vector<std::pair<float, float> > pcl::PyramidFeatureHistogram< PointFeature >::getTargetDimensionRange ( ) [inline]

Method for retrieving the target dimension range vector.

Definition at line 101 of file pyramid_feature_matching.h.

template<typename PointFeature >
bool pcl::PyramidFeatureHistogram< PointFeature >::initializeHistogram ( ) [private]

Checks for input inconsistencies and initializes the underlying data structures.

Definition at line 153 of file pyramid_feature_matching.hpp.

template<typename PointFeature>
bool pcl::PyramidFeatureHistogram< PointFeature >::isComputed ( ) [inline]

Checks whether the pyramid histogram has been computed.

Definition at line 119 of file pyramid_feature_matching.h.

template<typename PointFeature>
void pcl::PyramidFeatureHistogram< PointFeature >::setInputDimensionRange ( std::vector< std::pair< float, float > > &  dimension_range_input) [inline]

Method for setting the input dimension range parameter.

Note:
Please check the PyramidHistogram class description for more details about this parameter.

Definition at line 85 of file pyramid_feature_matching.h.

template<typename PointFeature>
void pcl::PyramidFeatureHistogram< PointFeature >::setPointRepresentation ( const FeatureRepresentationConstPtr feature_representation) [inline]

Provide a pointer to the feature representation to use to convert features to k-D vectors.

Parameters:
feature_representationthe const boost shared pointer to a PointRepresentation

Definition at line 107 of file pyramid_feature_matching.h.

template<typename PointFeature>
void pcl::PyramidFeatureHistogram< PointFeature >::setTargetDimensionRange ( std::vector< std::pair< float, float > > &  dimension_range_target) [inline]

Method to set the target dimension range parameter.

Note:
Please check the PyramidHistogram class description for more details about this parameter.

Definition at line 96 of file pyramid_feature_matching.h.


Member Data Documentation

template<typename PointFeature>
std::vector<std::pair<float, float> > pcl::PyramidFeatureHistogram< PointFeature >::dimension_range_input_ [private]

Definition at line 133 of file pyramid_feature_matching.h.

template<typename PointFeature>
std::vector<std::pair<float, float> > pcl::PyramidFeatureHistogram< PointFeature >::dimension_range_target_ [private]

Definition at line 133 of file pyramid_feature_matching.h.

template<typename PointFeature>
FeatureRepresentationConstPtr pcl::PyramidFeatureHistogram< PointFeature >::feature_representation_ [private]

Definition at line 134 of file pyramid_feature_matching.h.

template<typename PointFeature>
std::vector<PyramidFeatureHistogramLevel> pcl::PyramidFeatureHistogram< PointFeature >::hist_levels [private]

Definition at line 194 of file pyramid_feature_matching.h.

template<typename PointFeature>
bool pcl::PyramidFeatureHistogram< PointFeature >::is_computed_ [private]

Definition at line 135 of file pyramid_feature_matching.h.

template<typename PointFeature>
size_t pcl::PyramidFeatureHistogram< PointFeature >::nr_dimensions [private]

Definition at line 132 of file pyramid_feature_matching.h.

template<typename PointFeature>
size_t pcl::PyramidFeatureHistogram< PointFeature >::nr_features [private]

Definition at line 132 of file pyramid_feature_matching.h.

template<typename PointFeature>
size_t pcl::PyramidFeatureHistogram< PointFeature >::nr_levels [private]

Definition at line 132 of file pyramid_feature_matching.h.


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


pcl
Author(s): Open Perception
autogenerated on Wed Aug 26 2015 15:43:08