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 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 |
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. | |
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 62 of file multiscale_feature_persistence.h.
typedef pcl::PointCloud<PointFeature> pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::FeatureCloud |
Definition at line 65 of file multiscale_feature_persistence.h.
typedef pcl::PointCloud<PointFeature>::Ptr pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::FeatureCloudPtr |
Definition at line 66 of file multiscale_feature_persistence.h.
typedef pcl::Feature<PointSource, PointFeature>::Ptr pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::FeatureEstimatorPtr |
Definition at line 67 of file multiscale_feature_persistence.h.
typedef boost::shared_ptr<const pcl::PointRepresentation <PointFeature> > pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::FeatureRepresentationConstPtr |
Definition at line 68 of file multiscale_feature_persistence.h.
pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::MultiscaleFeaturePersistence | ( | ) |
Empty constructor.
Definition at line 45 of file multiscale_feature_persistence.hpp.
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 135 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 116 of file multiscale_feature_persistence.hpp.
void pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::computeFeaturesAtAllScales | ( | ) |
Method that calls computeFeatureAtScale () for each scale parameter.
Definition at line 91 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 193 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 126 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 156 of file multiscale_feature_persistence.hpp.
float pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::getAlpha | ( | ) | [inline] |
Get the value of the alpha parameter.
Definition at line 128 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 138 of file multiscale_feature_persistence.h.
FeatureEstimatorPtr pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::getFeatureEstimator | ( | ) | [inline] |
Getter method for the feature estimator.
Definition at line 108 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 118 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 96 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 65 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 124 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 134 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 104 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 114 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 92 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 177 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 180 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 183 of file multiscale_feature_persistence.h.
FeatureRepresentationConstPtr pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::feature_representation_ [private] |
Definition at line 188 of file multiscale_feature_persistence.h.
std::vector<FeatureCloudPtr> pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::features_at_scale_ [private] |
Definition at line 185 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 186 of file multiscale_feature_persistence.h.
std::vector<float> pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::mean_feature_ [private] |
Definition at line 187 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 174 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 193 of file multiscale_feature_persistence.h.
std::vector<std::vector<bool> > pcl::MultiscaleFeaturePersistence< PointSource, PointFeature >::unique_features_table_ [private] |
Definition at line 194 of file multiscale_feature_persistence.h.