Point Cloud Library (PCL)
1.7.0
|
Class implementing a 3D correspondence grouping algorithm that can deal with multiple instances of a model template found into a given scene. More...
#include <pcl/recognition/cg/hough_3d.h>
Public Types | |
typedef pcl::PointCloud < PointModelRfT > | ModelRfCloud |
typedef ModelRfCloud::Ptr | ModelRfCloudPtr |
typedef ModelRfCloud::ConstPtr | ModelRfCloudConstPtr |
typedef pcl::PointCloud < PointSceneRfT > | SceneRfCloud |
typedef SceneRfCloud::Ptr | SceneRfCloudPtr |
typedef SceneRfCloud::ConstPtr | SceneRfCloudConstPtr |
typedef pcl::PointCloud < PointModelT > | PointCloud |
typedef PointCloud::Ptr | PointCloudPtr |
typedef PointCloud::ConstPtr | PointCloudConstPtr |
typedef pcl::CorrespondenceGrouping < PointModelT, PointSceneT > ::SceneCloudConstPtr | SceneCloudConstPtr |
Public Member Functions | |
Hough3DGrouping () | |
Constructor. | |
void | setInputCloud (const PointCloudConstPtr &cloud) |
Provide a pointer to the input dataset. | |
void | setInputRf (const ModelRfCloudConstPtr &input_rf) |
Provide a pointer to the input dataset's reference frames. | |
ModelRfCloudConstPtr | getInputRf () const |
Getter for the input dataset's reference frames. | |
void | setSceneCloud (const SceneCloudConstPtr &scene) |
Provide a pointer to the scene dataset (i.e. | |
void | setSceneRf (const SceneRfCloudConstPtr &scene_rf) |
Provide a pointer to the scene dataset's reference frames. | |
SceneRfCloudConstPtr | getSceneRf () const |
Getter for the scene dataset's reference frames. | |
void | setModelSceneCorrespondences (const CorrespondencesConstPtr &corrs) |
Provide a pointer to the precomputed correspondences between points in the input dataset and points in the scene dataset. | |
void | setHoughThreshold (double threshold) |
Sets the minimum number of votes in the Hough space needed to infer the presence of a model instance into the scene cloud. | |
double | getHoughThreshold () const |
Gets the minimum number of votes in the Hough space needed to infer the presence of a model instance into the scene cloud. | |
void | setHoughBinSize (double bin_size) |
Sets the size of each bin into the Hough space. | |
double | getHoughBinSize () const |
Gets the size of each bin into the Hough space. | |
void | setUseInterpolation (bool use_interpolation) |
Sets whether the vote casting procedure interpolates the score between neighboring bins of the Hough space or not. | |
bool | getUseInterpolation () const |
Gets whether the vote casting procedure interpolates the score between neighboring bins of the Hough space or not. | |
void | setUseDistanceWeight (bool use_distance_weight) |
Sets whether the vote casting procedure uses the correspondence's distance as a score. | |
bool | getUseDistanceWeight () const |
Gets whether the vote casting procedure uses the correspondence's distance as a score. | |
void | setLocalRfNormalsSearchRadius (float local_rf_normals_search_radius) |
If the Local reference frame has not been set for either the model cloud or the scene cloud, this algorithm makes the computation itself but needs a suitable search radius to compute the normals in order to subsequently compute the RF (if not set a default 15 nearest neighbors search is performed). | |
float | getLocalRfNormalsSearchRadius () const |
If the Local reference frame has not been set for either the model cloud or the scene cloud, this algorithm makes the computation itself but needs a suitable search radius to compute the normals in order to subsequently compute the RF (if not set a default 15 nearest neighbors search is performed). | |
void | setLocalRfSearchRadius (float local_rf_search_radius) |
If the Local reference frame has not been set for either the model cloud or the scene cloud, this algorithm makes the computation itself but needs a suitable search radius to do so. | |
float | getLocalRfSearchRadius () const |
If the Local reference frame has not been set for either the model cloud or the scene cloud, this algorithm makes the computation itself but needs a suitable search radius to do so. | |
bool | train () |
Call this function after setting the input, the input_rf and the hough_bin_size parameters to perform an off line training of the algorithm. | |
bool | recognize (std::vector< Eigen::Matrix4f, Eigen::aligned_allocator< Eigen::Matrix4f > > &transformations) |
The main function, recognizes instances of the model into the scene set by the user. | |
bool | recognize (std::vector< Eigen::Matrix4f, Eigen::aligned_allocator< Eigen::Matrix4f > > &transformations, std::vector< pcl::Correspondences > &clustered_corrs) |
The main function, recognizes instances of the model into the scene set by the user. | |
Protected Member Functions | |
void | clusterCorrespondences (std::vector< Correspondences > &model_instances) |
Cluster the input correspondences in order to distinguish between different instances of the model into the scene. | |
bool | houghVoting () |
Finds the transformation matrix between the input and the scene cloud for a set of correspondences using a RANSAC algorithm. | |
template<typename PointType , typename PointRfType > | |
void | computeRf (const boost::shared_ptr< const pcl::PointCloud< PointType > > &input, pcl::PointCloud< PointRfType > &rf) |
Computes the reference frame for an input cloud. | |
Protected Attributes | |
ModelRfCloudConstPtr | input_rf_ |
The input Rf cloud. | |
SceneRfCloudConstPtr | scene_rf_ |
The scene Rf cloud. | |
bool | needs_training_ |
If the training of the Hough space is needed; set on change of either the input cloud or the input_rf. | |
std::vector< Eigen::Vector3f > | model_votes_ |
The result of the training. | |
double | hough_threshold_ |
The minimum number of votes in the Hough space needed to infer the presence of a model instance into the scene cloud. | |
double | hough_bin_size_ |
The size of each bin of the hough space. | |
bool | use_interpolation_ |
Use the interpolation between neighboring Hough bins when casting votes. | |
bool | use_distance_weight_ |
Use the weighted correspondence distance when casting votes. | |
float | local_rf_normals_search_radius_ |
Normals search radius for the potential Rf calculation. | |
float | local_rf_search_radius_ |
Search radius for the potential Rf calculation. | |
boost::shared_ptr < pcl::recognition::HoughSpace3D > | hough_space_ |
The Hough space. | |
std::vector< Eigen::Matrix4f, Eigen::aligned_allocator < Eigen::Matrix4f > > | found_transformations_ |
Transformations found by clusterCorrespondences method. | |
bool | hough_space_initialized_ |
Whether the Hough space already contains the correct votes for the current input parameters and so the cluster and recognize calls don't need to recompute each value. |
Class implementing a 3D correspondence grouping algorithm that can deal with multiple instances of a model template found into a given scene.
Each correspondence casts a vote for a reference point in a 3D Hough Space. The remaining 3 DOF are taken into account by associating each correspondence with a local Reference Frame. The suggested PointModelRfT is pcl::ReferenceFrame
Definition at line 144 of file hough_3d.h.
typedef pcl::PointCloud<PointModelRfT> pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::ModelRfCloud |
Definition at line 147 of file hough_3d.h.
typedef ModelRfCloud::ConstPtr pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::ModelRfCloudConstPtr |
Definition at line 149 of file hough_3d.h.
typedef ModelRfCloud::Ptr pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::ModelRfCloudPtr |
Definition at line 148 of file hough_3d.h.
typedef pcl::PointCloud<PointModelT> pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::PointCloud |
Reimplemented from pcl::PCLBase< PointModelT >.
Definition at line 155 of file hough_3d.h.
typedef PointCloud::ConstPtr pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::PointCloudConstPtr |
Reimplemented from pcl::PCLBase< PointModelT >.
Definition at line 157 of file hough_3d.h.
typedef PointCloud::Ptr pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::PointCloudPtr |
Reimplemented from pcl::PCLBase< PointModelT >.
Definition at line 156 of file hough_3d.h.
typedef pcl::CorrespondenceGrouping<PointModelT, PointSceneT>::SceneCloudConstPtr pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::SceneCloudConstPtr |
Reimplemented from pcl::CorrespondenceGrouping< PointModelT, PointSceneT >.
Definition at line 159 of file hough_3d.h.
typedef pcl::PointCloud<PointSceneRfT> pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::SceneRfCloud |
Definition at line 151 of file hough_3d.h.
typedef SceneRfCloud::ConstPtr pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::SceneRfCloudConstPtr |
Definition at line 153 of file hough_3d.h.
typedef SceneRfCloud::Ptr pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::SceneRfCloudPtr |
Definition at line 152 of file hough_3d.h.
pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::Hough3DGrouping | ( | ) | [inline] |
Constructor.
Definition at line 162 of file hough_3d.h.
void pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::clusterCorrespondences | ( | std::vector< Correspondences > & | model_instances | ) | [protected, virtual] |
Cluster the input correspondences in order to distinguish between different instances of the model into the scene.
[out] | model_instances | a vector containing the clustered correspondences for each model found on the scene. |
Implements pcl::CorrespondenceGrouping< PointModelT, PointSceneT >.
Definition at line 258 of file hough_3d.hpp.
References pcl::registration::CorrespondenceRejectorSampleConsensus< PointT >::setMaximumIterations().
void pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::computeRf | ( | const boost::shared_ptr< const pcl::PointCloud< PointType > > & | input, |
pcl::PointCloud< PointRfType > & | rf | ||
) | [protected] |
Computes the reference frame for an input cloud.
[in] | input | the input cloud. |
[out] | rf | the resulting reference frame. |
Definition at line 54 of file hough_3d.hpp.
References pcl::Feature< PointInT, PointOutT >::compute(), pcl::BOARDLocalReferenceFrameEstimation< PointInT, PointNT, PointOutT >::setFindHoles(), pcl::PCLBase< PointInT >::setInputCloud(), pcl::NormalEstimation< PointInT, PointOutT >::setInputCloud(), pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >::setInputNormals(), pcl::Feature< PointInT, PointOutT >::setKSearch(), and pcl::Feature< PointInT, PointOutT >::setRadiusSearch().
double pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::getHoughBinSize | ( | ) | const [inline] |
Gets the size of each bin into the Hough space.
Definition at line 305 of file hough_3d.h.
References pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::hough_bin_size_.
double pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::getHoughThreshold | ( | ) | const [inline] |
Gets the minimum number of votes in the Hough space needed to infer the presence of a model instance into the scene cloud.
Definition at line 284 of file hough_3d.h.
References pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::hough_threshold_.
ModelRfCloudConstPtr pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::getInputRf | ( | ) | const [inline] |
Getter for the input dataset's reference frames.
Each point in the reference frame cloud should be the reference frame of the correspondent point in the input dataset.
Definition at line 211 of file hough_3d.h.
References pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::input_rf_.
float pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::getLocalRfNormalsSearchRadius | ( | ) | const [inline] |
If the Local reference frame has not been set for either the model cloud or the scene cloud, this algorithm makes the computation itself but needs a suitable search radius to compute the normals in order to subsequently compute the RF (if not set a default 15 nearest neighbors search is performed).
Definition at line 375 of file hough_3d.h.
float pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::getLocalRfSearchRadius | ( | ) | const [inline] |
If the Local reference frame has not been set for either the model cloud or the scene cloud, this algorithm makes the computation itself but needs a suitable search radius to do so.
Definition at line 403 of file hough_3d.h.
References pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::local_rf_search_radius_.
SceneRfCloudConstPtr pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::getSceneRf | ( | ) | const [inline] |
Getter for the scene dataset's reference frames.
Each point in the reference frame cloud should be the reference frame of the correspondent point in the scene dataset.
Definition at line 248 of file hough_3d.h.
References pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::scene_rf_.
bool pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::getUseDistanceWeight | ( | ) | const [inline] |
Gets whether the vote casting procedure uses the correspondence's distance as a score.
Definition at line 349 of file hough_3d.h.
References pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::use_distance_weight_.
bool pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::getUseInterpolation | ( | ) | const [inline] |
Gets whether the vote casting procedure interpolates the score between neighboring bins of the Hough space or not.
Definition at line 328 of file hough_3d.h.
References pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::use_interpolation_.
bool pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::houghVoting | ( | ) | [protected] |
Finds the transformation matrix between the input and the scene cloud for a set of correspondences using a RANSAC algorithm.
[in] | the | scene cloud in which the PointSceneT has been converted to PointModelT. |
[in] | corrs | a set of correspondences. |
[out] | transform | the transformation matrix between the input cloud and the scene cloud that aligns the found correspondences. |
Definition at line 137 of file hough_3d.hpp.
bool pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::recognize | ( | std::vector< Eigen::Matrix4f, Eigen::aligned_allocator< Eigen::Matrix4f > > & | transformations | ) |
The main function, recognizes instances of the model into the scene set by the user.
[out] | transformations | a vector containing one transformation matrix for each instance of the model recognized into the scene. |
Definition at line 333 of file hough_3d.hpp.
bool pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::recognize | ( | std::vector< Eigen::Matrix4f, Eigen::aligned_allocator< Eigen::Matrix4f > > & | transformations, |
std::vector< pcl::Correspondences > & | clustered_corrs | ||
) |
The main function, recognizes instances of the model into the scene set by the user.
[out] | transformations | a vector containing one transformation matrix for each instance of the model recognized into the scene. |
[out] | clustered_corrs | a vector containing the correspondences for each instance of the model found within the input data (the same output of clusterCorrespondences). |
Definition at line 342 of file hough_3d.hpp.
void pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setHoughBinSize | ( | double | bin_size | ) | [inline] |
Sets the size of each bin into the Hough space.
[in] | bin_size | the size of each Hough space's bin. |
Definition at line 294 of file hough_3d.h.
References pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::hough_bin_size_, and pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::hough_space_initialized_.
void pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setHoughThreshold | ( | double | threshold | ) | [inline] |
Sets the minimum number of votes in the Hough space needed to infer the presence of a model instance into the scene cloud.
[in] | threshold | the threshold for the Hough space voting, if set between -1 and 0 the maximum vote in the entire space is automatically calculated and -threshold the maximum value is used as a threshold. This means that a value between -1 and 0 should be used only if at least one instance of the model is always present in the scene, or if this false positive can be filtered later. |
Definition at line 274 of file hough_3d.h.
References pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::hough_threshold_.
void pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setInputCloud | ( | const PointCloudConstPtr & | cloud | ) | [inline, virtual] |
Provide a pointer to the input dataset.
[in] | cloud | the const boost shared pointer to a PointCloud message. |
Reimplemented from pcl::PCLBase< PointModelT >.
Definition at line 182 of file hough_3d.h.
References pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::hough_space_initialized_, pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::input_rf_, and pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::needs_training_.
void pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setInputRf | ( | const ModelRfCloudConstPtr & | input_rf | ) | [inline] |
Provide a pointer to the input dataset's reference frames.
Each point in the reference frame cloud should be the reference frame of the correspondent point in the input dataset.
[in] | input_rf | the pointer to the input cloud's reference frames. |
Definition at line 197 of file hough_3d.h.
References pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::hough_space_initialized_, pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::input_rf_, and pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::needs_training_.
void pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setLocalRfNormalsSearchRadius | ( | float | local_rf_normals_search_radius | ) | [inline] |
If the Local reference frame has not been set for either the model cloud or the scene cloud, this algorithm makes the computation itself but needs a suitable search radius to compute the normals in order to subsequently compute the RF (if not set a default 15 nearest neighbors search is performed).
[in] | local_rf_normals_search_radius | the normals search radius for the local reference frame calculation. |
Definition at line 361 of file hough_3d.h.
References pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::hough_space_initialized_, pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::local_rf_normals_search_radius_, and pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::needs_training_.
void pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setLocalRfSearchRadius | ( | float | local_rf_search_radius | ) | [inline] |
If the Local reference frame has not been set for either the model cloud or the scene cloud, this algorithm makes the computation itself but needs a suitable search radius to do so.
[in] | local_rf_search_radius | the search radius for the local reference frame calculation. |
Definition at line 388 of file hough_3d.h.
References pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::hough_space_initialized_, pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::local_rf_search_radius_, and pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::needs_training_.
void pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setModelSceneCorrespondences | ( | const CorrespondencesConstPtr & | corrs | ) | [inline, virtual] |
Provide a pointer to the precomputed correspondences between points in the input dataset and points in the scene dataset.
The correspondences are going to be clustered into different model instances by the algorithm.
[in] | corrs | the correspondences between the model and the scene. |
Reimplemented from pcl::CorrespondenceGrouping< PointModelT, PointSceneT >.
Definition at line 260 of file hough_3d.h.
References pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::hough_space_initialized_, and pcl::CorrespondenceGrouping< PointModelT, PointSceneT >::model_scene_corrs_.
void pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setSceneCloud | ( | const SceneCloudConstPtr & | scene | ) | [inline, virtual] |
Provide a pointer to the scene dataset (i.e.
the cloud in which the algorithm has to search for instances of the input model)
[in] | scene | the const boost shared pointer to a PointCloud message. |
Reimplemented from pcl::CorrespondenceGrouping< PointModelT, PointSceneT >.
Definition at line 221 of file hough_3d.h.
References pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::hough_space_initialized_, pcl::CorrespondenceGrouping< PointModelT, PointSceneT >::scene_, and pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::scene_rf_.
void pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setSceneRf | ( | const SceneRfCloudConstPtr & | scene_rf | ) | [inline] |
Provide a pointer to the scene dataset's reference frames.
Each point in the reference frame cloud should be the reference frame of the correspondent point in the scene dataset.
[in] | scene_rf | the pointer to the scene cloud's reference frames. |
Definition at line 235 of file hough_3d.h.
References pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::hough_space_initialized_, and pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::scene_rf_.
void pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setUseDistanceWeight | ( | bool | use_distance_weight | ) | [inline] |
Sets whether the vote casting procedure uses the correspondence's distance as a score.
[in] | use_distance_weight | the algorithm should use the weighted distance when calculating the Hough voting score. |
Definition at line 338 of file hough_3d.h.
References pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::hough_space_initialized_, and pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::use_distance_weight_.
void pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setUseInterpolation | ( | bool | use_interpolation | ) | [inline] |
Sets whether the vote casting procedure interpolates the score between neighboring bins of the Hough space or not.
[in] | use_interpolation | the algorithm should interpolate the vote score between neighboring bins. |
Definition at line 316 of file hough_3d.h.
References pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::hough_space_initialized_, and pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::use_interpolation_.
bool pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::train | ( | ) |
Call this function after setting the input, the input_rf and the hough_bin_size parameters to perform an off line training of the algorithm.
This might be useful if one wants to perform once and for all a pre-computation of votes that only concern the models, increasing the on-line efficiency of the grouping algorithm. The algorithm is automatically trained on the first invocation of the recognize method or the cluster method if this training function has not been manually invoked.
Definition at line 84 of file hough_3d.hpp.
std::vector<Eigen::Matrix4f, Eigen::aligned_allocator<Eigen::Matrix4f> > pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::found_transformations_ [protected] |
Transformations found by clusterCorrespondences method.
Definition at line 474 of file hough_3d.h.
double pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::hough_bin_size_ [protected] |
The size of each bin of the hough space.
Definition at line 456 of file hough_3d.h.
Referenced by pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::getHoughBinSize(), and pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setHoughBinSize().
boost::shared_ptr<pcl::recognition::HoughSpace3D> pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::hough_space_ [protected] |
The Hough space.
Definition at line 471 of file hough_3d.h.
bool pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::hough_space_initialized_ [protected] |
Whether the Hough space already contains the correct votes for the current input parameters and so the cluster and recognize calls don't need to recompute each value.
Reset on the change of any parameter except the hough_threshold.
Definition at line 479 of file hough_3d.h.
Referenced by pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setHoughBinSize(), pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setInputCloud(), pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setInputRf(), pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setLocalRfNormalsSearchRadius(), pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setLocalRfSearchRadius(), pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setModelSceneCorrespondences(), pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setSceneCloud(), pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setSceneRf(), pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setUseDistanceWeight(), and pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setUseInterpolation().
double pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::hough_threshold_ [protected] |
The minimum number of votes in the Hough space needed to infer the presence of a model instance into the scene cloud.
Definition at line 453 of file hough_3d.h.
Referenced by pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::getHoughThreshold(), and pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setHoughThreshold().
ModelRfCloudConstPtr pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::input_rf_ [protected] |
The input Rf cloud.
Definition at line 441 of file hough_3d.h.
Referenced by pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::getInputRf(), pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setInputCloud(), and pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setInputRf().
float pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::local_rf_normals_search_radius_ [protected] |
Normals search radius for the potential Rf calculation.
Definition at line 465 of file hough_3d.h.
Referenced by pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::getLocalRfNormalsSearchRadius(), and pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setLocalRfNormalsSearchRadius().
float pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::local_rf_search_radius_ [protected] |
Search radius for the potential Rf calculation.
Definition at line 468 of file hough_3d.h.
Referenced by pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::getLocalRfSearchRadius(), and pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setLocalRfSearchRadius().
std::vector<Eigen::Vector3f> pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::model_votes_ [protected] |
The result of the training.
The vector between each model point and the centroid of the model adjusted by its local reference frame.
Definition at line 450 of file hough_3d.h.
bool pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::needs_training_ [protected] |
If the training of the Hough space is needed; set on change of either the input cloud or the input_rf.
Definition at line 447 of file hough_3d.h.
Referenced by pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setInputCloud(), pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setInputRf(), pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setLocalRfNormalsSearchRadius(), and pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setLocalRfSearchRadius().
SceneRfCloudConstPtr pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::scene_rf_ [protected] |
The scene Rf cloud.
Definition at line 444 of file hough_3d.h.
Referenced by pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::getSceneRf(), pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setSceneCloud(), and pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setSceneRf().
bool pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::use_distance_weight_ [protected] |
Use the weighted correspondence distance when casting votes.
Definition at line 462 of file hough_3d.h.
Referenced by pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::getUseDistanceWeight(), and pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setUseDistanceWeight().
bool pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::use_interpolation_ [protected] |
Use the interpolation between neighboring Hough bins when casting votes.
Definition at line 459 of file hough_3d.h.
Referenced by pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::getUseInterpolation(), and pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::setUseInterpolation().