Generic class for extracting the persistent features from an input point cloud It can be given any Feature estimator instance and will compute the features of the input over a multiscale representation of the cloud and output the unique ones over those scales. More...
#include <multiscale_feature_persistence.h>
Public Types | |
typedef boost::shared_ptr < const MultiscaleFeaturePersistence < PointSource, PointFeature > > | ConstPtr |
typedef pcl::PointCloud < PointFeature > | FeatureCloud |
typedef pcl::PointCloud < PointFeature >::Ptr | FeatureCloudPtr |
typedef pcl::Feature < PointSource, PointFeature > ::Ptr | FeatureEstimatorPtr |
typedef boost::shared_ptr < const pcl::PointRepresentation < PointFeature > > | FeatureRepresentationConstPtr |
typedef boost::shared_ptr < MultiscaleFeaturePersistence < PointSource, PointFeature > > | Ptr |
Public Member Functions | |
void | computeFeaturesAtAllScales () |
Method that calls computeFeatureAtScale () for each scale parameter. | |
void | determinePersistentFeatures (FeatureCloud &output_features, boost::shared_ptr< std::vector< int > > &output_indices) |
Central function that computes the persistent features. | |
float | getAlpha () |
Get the value of the alpha parameter. | |
NormType | getDistanceMetric () |
Returns the distance metric that is currently used to calculate the difference between feature vectors. | |
FeatureEstimatorPtr | getFeatureEstimator () |
Getter method for the feature estimator. | |
FeatureRepresentationConstPtr const | getPointRepresentation () |
Get a pointer to the feature representation used when converting features into k-D vectors. | |
std::vector< float > | getScalesVector () |
Method for getting the scale parameters vector. | |
MultiscaleFeaturePersistence () | |
Empty constructor. | |
void | setAlpha (float alpha) |
Sets the alpha parameter. | |
void | setDistanceMetric (NormType distance_metric) |
Method for setting the distance metric that will be used for computing the difference between feature vectors. | |
void | setFeatureEstimator (FeatureEstimatorPtr feature_estimator) |
Setter method for the feature estimator. | |
void | setPointRepresentation (const FeatureRepresentationConstPtr &feature_representation) |
Provide a pointer to the feature representation to use to convert features to k-D vectors. | |
void | setScalesVector (std::vector< float > &scale_values) |
Method for setting the scale parameters for the algorithm. | |
virtual | ~MultiscaleFeaturePersistence () |
Empty destructor. | |
Private Member Functions | |
void | calculateMeanFeature () |
Method that averages all the features at all scales in order to obtain the global mean feature; this value is stored in the mean_feature field. | |
virtual void | computeFeatureAtScale (float &scale, FeatureCloudPtr &features) |
Method to compute the features for the point cloud at the given scale. | |
float | distanceBetweenFeatures (const std::vector< float > &a, const std::vector< float > &b) |
Function that calculates the scalar difference between two features. | |
void | extractUniqueFeatures () |
Selects the so-called 'unique' features from the cloud of features at each level. These features are the ones that fall outside the standard deviation * alpha_. | |
bool | initCompute () |
Checks if all the necessary input was given and the computations can successfully start. | |
Private Attributes | |
float | alpha_ |
Parameter that determines if a feature is to be considered unique or not. | |
NormType | distance_metric_ |
Parameter that determines which distance metric is to be usedto calculate the difference between feature vectors. | |
FeatureEstimatorPtr | feature_estimator_ |
the feature estimator that will be used to determine the feature set at each scale level | |
FeatureRepresentationConstPtr | feature_representation_ |
std::vector< FeatureCloudPtr > | features_at_scale_ |
std::vector< std::vector < std::vector< float > > > | features_at_scale_vectorized_ |
std::vector< float > | mean_feature_ |
std::vector< float > | scale_values_ |
The general parameter for determining each scale level. | |
std::vector< std::list< size_t > > | unique_features_indices_ |
Two structures in which to hold the results of the unique feature extraction process. They are superfluous with respect to each other, but improve the time performance of the algorithm. | |
std::vector< std::vector< bool > > | unique_features_table_ |
Generic class for extracting the persistent features from an input point cloud It can be given any Feature estimator instance and will compute the features of the input over a multiscale representation of the cloud and output the unique ones over those scales.
Please refer to the following publication for more details: Radu Bogdan Rusu, Zoltan Csaba Marton, Nico Blodow, and Michael Beetz Persistent Point Feature Histograms for 3D Point Clouds Proceedings of the 10th International Conference on Intelligent Autonomous Systems (IAS-10) 2008, Baden-Baden, Germany
Definition at line 64 of file multiscale_feature_persistence.h.
typedef boost::shared_ptr<const MultiscaleFeaturePersistence<PointSource, PointFeature> > pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::ConstPtr |
Definition at line 68 of file multiscale_feature_persistence.h.
typedef pcl::PointCloud<PointFeature> pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::FeatureCloud |
Definition at line 69 of file multiscale_feature_persistence.h.
typedef pcl::PointCloud<PointFeature>::Ptr pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::FeatureCloudPtr |
Definition at line 70 of file multiscale_feature_persistence.h.
typedef pcl::Feature<PointSource, PointFeature>::Ptr pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::FeatureEstimatorPtr |
Definition at line 71 of file multiscale_feature_persistence.h.
typedef boost::shared_ptr<const pcl::PointRepresentation <PointFeature> > pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::FeatureRepresentationConstPtr |
Definition at line 72 of file multiscale_feature_persistence.h.
typedef boost::shared_ptr<MultiscaleFeaturePersistence<PointSource, PointFeature> > pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::Ptr |
Definition at line 67 of file multiscale_feature_persistence.h.
pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::MultiscaleFeaturePersistence | ( | ) |
Empty constructor.
Definition at line 47 of file multiscale_feature_persistence.hpp.
virtual pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::~MultiscaleFeaturePersistence | ( | ) | [inline, virtual] |
Empty destructor.
Definition at line 80 of file multiscale_feature_persistence.h.
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::calculateMeanFeature | ( | ) | [private] |
Method that averages all the features at all scales in order to obtain the global mean feature; this value is stored in the mean_feature field.
Definition at line 137 of file multiscale_feature_persistence.hpp.
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::computeFeatureAtScale | ( | float & | scale, |
FeatureCloudPtr & | features | ||
) | [private, virtual] |
Method to compute the features for the point cloud at the given scale.
Definition at line 118 of file multiscale_feature_persistence.hpp.
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::computeFeaturesAtAllScales | ( | ) |
Method that calls computeFeatureAtScale () for each scale parameter.
Definition at line 93 of file multiscale_feature_persistence.hpp.
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::determinePersistentFeatures | ( | FeatureCloud & | output_features, |
boost::shared_ptr< std::vector< int > > & | output_indices | ||
) |
Central function that computes the persistent features.
output_features | a cloud containing the persistent features |
output_indices | vector containing the indices of the points in the input cloud that have persistent features, under a one-to-one correspondence with the output_features cloud |
Definition at line 195 of file multiscale_feature_persistence.hpp.
float pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::distanceBetweenFeatures | ( | const std::vector< float > & | a, |
const std::vector< float > & | b | ||
) | [private] |
Function that calculates the scalar difference between two features.
Definition at line 128 of file multiscale_feature_persistence.hpp.
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::extractUniqueFeatures | ( | ) | [private] |
Selects the so-called 'unique' features from the cloud of features at each level. These features are the ones that fall outside the standard deviation * alpha_.
Definition at line 158 of file multiscale_feature_persistence.hpp.
float pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::getAlpha | ( | ) | [inline] |
Get the value of the alpha parameter.
Definition at line 135 of file multiscale_feature_persistence.h.
NormType pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::getDistanceMetric | ( | ) | [inline] |
Returns the distance metric that is currently used to calculate the difference between feature vectors.
Definition at line 145 of file multiscale_feature_persistence.h.
FeatureEstimatorPtr pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::getFeatureEstimator | ( | ) | [inline] |
Getter method for the feature estimator.
Definition at line 115 of file multiscale_feature_persistence.h.
FeatureRepresentationConstPtr const pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::getPointRepresentation | ( | ) | [inline] |
Get a pointer to the feature representation used when converting features into k-D vectors.
Definition at line 125 of file multiscale_feature_persistence.h.
std::vector<float> pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::getScalesVector | ( | ) | [inline] |
Method for getting the scale parameters vector.
Definition at line 103 of file multiscale_feature_persistence.h.
bool pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::initCompute | ( | ) | [private] |
Checks if all the necessary input was given and the computations can successfully start.
Reimplemented from pcl::PCLBase< PointSource >.
Definition at line 67 of file multiscale_feature_persistence.hpp.
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::setAlpha | ( | float | alpha | ) | [inline] |
Sets the alpha parameter.
alpha | value to replace the current alpha with |
Definition at line 131 of file multiscale_feature_persistence.h.
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::setDistanceMetric | ( | NormType | distance_metric | ) | [inline] |
Method for setting the distance metric that will be used for computing the difference between feature vectors.
distance_metric | the new distance metric chosen from the NormType enum |
Definition at line 141 of file multiscale_feature_persistence.h.
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::setFeatureEstimator | ( | FeatureEstimatorPtr | feature_estimator | ) | [inline] |
Setter method for the feature estimator.
feature_estimator | pointer to the feature estimator instance that will be used |
Definition at line 111 of file multiscale_feature_persistence.h.
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::setPointRepresentation | ( | const FeatureRepresentationConstPtr & | feature_representation | ) | [inline] |
Provide a pointer to the feature representation to use to convert features to k-D vectors.
feature_representation | the const boost shared pointer to a PointRepresentation |
Definition at line 121 of file multiscale_feature_persistence.h.
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::setScalesVector | ( | std::vector< float > & | scale_values | ) | [inline] |
Method for setting the scale parameters for the algorithm.
scale_values | vector of scales to determine the characteristic of each scaling step |
Definition at line 99 of file multiscale_feature_persistence.h.
float pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::alpha_ [private] |
Parameter that determines if a feature is to be considered unique or not.
Definition at line 184 of file multiscale_feature_persistence.h.
NormType pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::distance_metric_ [private] |
Parameter that determines which distance metric is to be usedto calculate the difference between feature vectors.
Definition at line 187 of file multiscale_feature_persistence.h.
FeatureEstimatorPtr pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::feature_estimator_ [private] |
the feature estimator that will be used to determine the feature set at each scale level
Definition at line 190 of file multiscale_feature_persistence.h.
FeatureRepresentationConstPtr pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::feature_representation_ [private] |
Definition at line 195 of file multiscale_feature_persistence.h.
std::vector<FeatureCloudPtr> pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::features_at_scale_ [private] |
Definition at line 192 of file multiscale_feature_persistence.h.
std::vector<std::vector<std::vector<float> > > pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::features_at_scale_vectorized_ [private] |
Definition at line 193 of file multiscale_feature_persistence.h.
std::vector<float> pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::mean_feature_ [private] |
Definition at line 194 of file multiscale_feature_persistence.h.
std::vector<float> pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::scale_values_ [private] |
The general parameter for determining each scale level.
Definition at line 181 of file multiscale_feature_persistence.h.
std::vector<std::list<size_t> > pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::unique_features_indices_ [private] |
Two structures in which to hold the results of the unique feature extraction process. They are superfluous with respect to each other, but improve the time performance of the algorithm.
Definition at line 200 of file multiscale_feature_persistence.h.
std::vector<std::vector<bool> > pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::unique_features_table_ [private] |
Definition at line 201 of file multiscale_feature_persistence.h.