pcl::people::GroundBasedPeopleDetectionApp< PointT > Class Template Reference

#include <pcl/people/ground_based_people_detection_app.h>

Collaboration diagram for pcl::people::GroundBasedPeopleDetectionApp< PointT >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef pcl::PointCloud< PointTPointCloud
typedef boost::shared_ptr
< PointCloud
PointCloudPtr
typedef boost::shared_ptr
< const PointCloud
PointCloudConstPtr

Public Member Functions

 GroundBasedPeopleDetectionApp ()
 Constructor.
virtual ~GroundBasedPeopleDetectionApp ()
 Destructor.
void setInputCloud (PointCloudPtr &cloud)
 Set the pointer to the input cloud.
void setGround (Eigen::VectorXf &ground_coeffs)
 Set the ground coefficients.
void setSamplingFactor (int sampling_factor)
 Set sampling factor.
void setVoxelSize (float voxel_size)
 Set voxel size.
void setIntrinsics (Eigen::Matrix3f intrinsics_matrix)
 Set intrinsic parameters of the RGB camera.
void setClassifier (pcl::people::PersonClassifier< pcl::RGB > person_classifier)
 Set SVM-based person classifier.
void setSensorPortraitOrientation (bool vertical)
 Set sensor orientation (vertical = true means portrait mode, vertical = false means landscape mode).
void setHeadCentroid (bool head_centroid)
 Set head_centroid_ to true (person centroid is in the head) or false (person centroid is the whole body centroid).
void setHeightLimits (float min_height, float max_height)
 Set minimum and maximum allowed height for a person cluster.
void setDimensionLimits (int min_points, int max_points)
 Set minimum and maximum allowed number of points for a person cluster.
void setMinimumDistanceBetweenHeads (float heads_minimum_distance)
 Set minimum distance between persons' heads.
void getHeightLimits (float &min_height, float &max_height)
 Get minimum and maximum allowed height for a person cluster.
void getDimensionLimits (int &min_points, int &max_points)
 Get minimum and maximum allowed number of points for a person cluster.
float getMinimumDistanceBetweenHeads ()
 Get minimum distance between persons' heads.
Eigen::VectorXf getGround ()
 Get floor coefficients.
PointCloudPtr getNoGroundCloud ()
 Get pointcloud after voxel grid filtering and ground removal.
void extractRGBFromPointCloud (PointCloudPtr input_cloud, pcl::PointCloud< pcl::RGB >::Ptr &output_cloud)
 Extract RGB information from a point cloud and output the corresponding RGB point cloud.
void swapDimensions (pcl::PointCloud< pcl::RGB >::Ptr &cloud)
 Swap rows/cols dimensions of a RGB point cloud (90 degrees counterclockwise rotation).
bool compute (std::vector< pcl::people::PersonCluster< PointT > > &clusters)
 Perform people detection on the input data and return people clusters information.

Protected Attributes

int sampling_factor_
 sampling factor used to downsample the point cloud
float voxel_size_
 voxel size
Eigen::VectorXf ground_coeffs_
 ground plane coefficients
float sqrt_ground_coeffs_
 ground plane normalization factor
PointCloudPtr cloud_
 pointer to the input cloud
PointCloudPtr no_ground_cloud_
 pointer to the cloud after voxel grid filtering and ground removal
pcl::PointCloud< pcl::RGB >::Ptr rgb_image_
 pointer to a RGB cloud corresponding to cloud_
float max_height_
 person clusters maximum height from the ground plane
float min_height_
 person clusters minimum height from the ground plane
bool vertical_
 if true, the sensor is considered to be vertically placed (portrait mode)
bool head_centroid_
 if true, the person centroid is computed as the centroid of the cluster points belonging to the head; if false, the person centroid is computed as the centroid of the whole cluster points (default = true)
int max_points_
 maximum number of points for a person cluster
int min_points_
 minimum number of points for a person cluster
bool dimension_limits_set_
 true if min_points and max_points have been set by the user, false otherwise
float heads_minimum_distance_
 minimum distance between persons' heads
Eigen::Matrix3f intrinsics_matrix_
 intrinsic parameters matrix of the RGB camera
pcl::people::PersonClassifier
< pcl::RGB
person_classifier_
 SVM-based person classifier.
bool person_classifier_set_flag_
 flag stating if the classifier has been set or not

Detailed Description

template<typename PointT>
class pcl::people::GroundBasedPeopleDetectionApp< PointT >

Definition at line 71 of file ground_based_people_detection_app.h.


Member Typedef Documentation

Definition at line 75 of file ground_based_people_detection_app.h.

template<typename PointT>
typedef boost::shared_ptr<const PointCloud> pcl::people::GroundBasedPeopleDetectionApp< PointT >::PointCloudConstPtr

Definition at line 77 of file ground_based_people_detection_app.h.

template<typename PointT>
typedef boost::shared_ptr<PointCloud> pcl::people::GroundBasedPeopleDetectionApp< PointT >::PointCloudPtr

Definition at line 76 of file ground_based_people_detection_app.h.


Constructor & Destructor Documentation

template<typename PointT >
pcl::people::GroundBasedPeopleDetectionApp< PointT >::GroundBasedPeopleDetectionApp (  )  [inline]
template<typename PointT >
pcl::people::GroundBasedPeopleDetectionApp< PointT >::~GroundBasedPeopleDetectionApp (  )  [inline, virtual]

Destructor.

Definition at line 333 of file ground_based_people_detection_app.hpp.


Member Function Documentation

template<typename PointT>
bool pcl::people::GroundBasedPeopleDetectionApp< PointT >::compute ( std::vector< pcl::people::PersonCluster< PointT > > &  clusters  )  [inline]

Perform people detection on the input data and return people clusters information.

Parameters:
[out] clusters Vector of PersonCluster.
Returns:
true if the compute operation is successful, false otherwise.

Definition at line 214 of file ground_based_people_detection_app.hpp.

References pcl::people::GroundBasedPeopleDetectionApp< PointT >::cloud_, pcl::people::GroundBasedPeopleDetectionApp< PointT >::dimension_limits_set_, pcl::people::PersonClassifier< PointT >::evaluate(), pcl::EuclideanClusterExtraction< PointT >::extract(), pcl::people::GroundBasedPeopleDetectionApp< PointT >::extractRGBFromPointCloud(), pcl::FilterIndices< PointT >::filter(), pcl::Filter< PointT >::filter(), pcl::people::GroundBasedPeopleDetectionApp< PointT >::ground_coeffs_, pcl::people::GroundBasedPeopleDetectionApp< PointT >::heads_minimum_distance_, pcl::people::GroundBasedPeopleDetectionApp< PointT >::intrinsics_matrix_, pcl::people::GroundBasedPeopleDetectionApp< PointT >::max_height_, pcl::people::GroundBasedPeopleDetectionApp< PointT >::max_points_, pcl::people::GroundBasedPeopleDetectionApp< PointT >::min_height_, pcl::people::GroundBasedPeopleDetectionApp< PointT >::min_points_, pcl::people::GroundBasedPeopleDetectionApp< PointT >::no_ground_cloud_, pcl::people::GroundBasedPeopleDetectionApp< PointT >::person_classifier_, pcl::people::GroundBasedPeopleDetectionApp< PointT >::person_classifier_set_flag_, pcl::PointCloud< PointT >::points, pcl::people::GroundBasedPeopleDetectionApp< PointT >::rgb_image_, pcl::people::GroundBasedPeopleDetectionApp< PointT >::sampling_factor_, pcl::EuclideanClusterExtraction< PointT >::setClusterTolerance(), pcl::people::HeadBasedSubclustering< PointT >::setGround(), pcl::people::HeadBasedSubclustering< PointT >::setHeightLimits(), pcl::PCLBase< PointT >::setIndices(), pcl::people::HeadBasedSubclustering< PointT >::setInitialClusters(), pcl::people::HeadBasedSubclustering< PointT >::setInputCloud(), pcl::search::KdTree< PointT >::setInputCloud(), pcl::PCLBase< PointT >::setInputCloud(), pcl::VoxelGrid< PointT >::setLeafSize(), pcl::EuclideanClusterExtraction< PointT >::setMaxClusterSize(), pcl::EuclideanClusterExtraction< PointT >::setMinClusterSize(), pcl::people::HeadBasedSubclustering< PointT >::setMinimumDistanceBetweenHeads(), pcl::FilterIndices< PointT >::setNegative(), pcl::EuclideanClusterExtraction< PointT >::setSearchMethod(), pcl::people::HeadBasedSubclustering< PointT >::setSensorPortraitOrientation(), pcl::people::GroundBasedPeopleDetectionApp< PointT >::sqrt_ground_coeffs_, pcl::people::HeadBasedSubclustering< PointT >::subcluster(), pcl::people::GroundBasedPeopleDetectionApp< PointT >::swapDimensions(), pcl::people::GroundBasedPeopleDetectionApp< PointT >::vertical_, and pcl::people::GroundBasedPeopleDetectionApp< PointT >::voxel_size_.

template<typename PointT >
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::extractRGBFromPointCloud ( PointCloudPtr  input_cloud,
pcl::PointCloud< pcl::RGB >::Ptr &  output_cloud 
) [inline]

Extract RGB information from a point cloud and output the corresponding RGB point cloud.

Parameters:
[in] input_cloud A pointer to a point cloud containing also RGB information.
[out] output_cloud A pointer to a RGB point cloud.

Definition at line 176 of file ground_based_people_detection_app.hpp.

References pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::points, and pcl::PointCloud< PointT >::width.

Referenced by pcl::people::GroundBasedPeopleDetectionApp< PointT >::compute().

template<typename PointT >
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::getDimensionLimits ( int &  min_points,
int &  max_points 
) [inline]

Get minimum and maximum allowed number of points for a person cluster.

Parameters:
[out] min_points Minimum allowed number of points for a person cluster.
[out] max_points Maximum allowed number of points for a person cluster.

Definition at line 147 of file ground_based_people_detection_app.hpp.

References pcl::people::GroundBasedPeopleDetectionApp< PointT >::max_points_, and pcl::people::GroundBasedPeopleDetectionApp< PointT >::min_points_.

template<typename PointT >
Eigen::VectorXf pcl::people::GroundBasedPeopleDetectionApp< PointT >::getGround (  )  [inline]
template<typename PointT >
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::getHeightLimits ( float &  min_height,
float &  max_height 
) [inline]

Get minimum and maximum allowed height for a person cluster.

Parameters:
[out] min_height Minimum allowed height for a person cluster.
[out] max_height Maximum allowed height for a person cluster.

Definition at line 140 of file ground_based_people_detection_app.hpp.

References pcl::people::GroundBasedPeopleDetectionApp< PointT >::max_height_, and pcl::people::GroundBasedPeopleDetectionApp< PointT >::min_height_.

template<typename PointT >
float pcl::people::GroundBasedPeopleDetectionApp< PointT >::getMinimumDistanceBetweenHeads (  )  [inline]

Get minimum distance between persons' heads.

Definition at line 154 of file ground_based_people_detection_app.hpp.

References pcl::people::GroundBasedPeopleDetectionApp< PointT >::heads_minimum_distance_.

template<typename PointT >
pcl::people::GroundBasedPeopleDetectionApp< PointT >::PointCloudPtr pcl::people::GroundBasedPeopleDetectionApp< PointT >::getNoGroundCloud (  )  [inline]

Get pointcloud after voxel grid filtering and ground removal.

Definition at line 170 of file ground_based_people_detection_app.hpp.

References pcl::people::GroundBasedPeopleDetectionApp< PointT >::no_ground_cloud_.

template<typename PointT >
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setClassifier ( pcl::people::PersonClassifier< pcl::RGB person_classifier  )  [inline]

Set SVM-based person classifier.

Parameters:
[in] person_classifier Needed for people detection on RGB data.

Definition at line 100 of file ground_based_people_detection_app.hpp.

References pcl::people::GroundBasedPeopleDetectionApp< PointT >::person_classifier_, and pcl::people::GroundBasedPeopleDetectionApp< PointT >::person_classifier_set_flag_.

template<typename PointT >
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setDimensionLimits ( int  min_points,
int  max_points 
) [inline]

Set minimum and maximum allowed number of points for a person cluster.

Parameters:
[in] min_points Minimum allowed number of points for a person cluster.
[in] max_points Maximum allowed number of points for a person cluster.

Definition at line 120 of file ground_based_people_detection_app.hpp.

References pcl::people::GroundBasedPeopleDetectionApp< PointT >::dimension_limits_set_, pcl::people::GroundBasedPeopleDetectionApp< PointT >::max_points_, and pcl::people::GroundBasedPeopleDetectionApp< PointT >::min_points_.

template<typename PointT >
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setGround ( Eigen::VectorXf &  ground_coeffs  )  [inline]

Set the ground coefficients.

Parameters:
[in] ground_coeffs Vector containing the four plane coefficients.

Definition at line 75 of file ground_based_people_detection_app.hpp.

References pcl::people::GroundBasedPeopleDetectionApp< PointT >::ground_coeffs_, and pcl::people::GroundBasedPeopleDetectionApp< PointT >::sqrt_ground_coeffs_.

template<typename PointT >
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setHeadCentroid ( bool  head_centroid  )  [inline]

Set head_centroid_ to true (person centroid is in the head) or false (person centroid is the whole body centroid).

Parameters:
[in] head_centroid Set the location of the person centroid (head or body center) (default = true).

Definition at line 134 of file ground_based_people_detection_app.hpp.

References pcl::people::GroundBasedPeopleDetectionApp< PointT >::head_centroid_.

template<typename PointT >
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setHeightLimits ( float  min_height,
float  max_height 
) [inline]

Set minimum and maximum allowed height for a person cluster.

Parameters:
[in] min_height Minimum allowed height for a person cluster (default = 1.3).
[in] max_height Maximum allowed height for a person cluster (default = 2.3).

Definition at line 113 of file ground_based_people_detection_app.hpp.

References pcl::people::GroundBasedPeopleDetectionApp< PointT >::max_height_, and pcl::people::GroundBasedPeopleDetectionApp< PointT >::min_height_.

template<typename PointT >
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setInputCloud ( PointCloudPtr cloud  )  [inline]

Set the pointer to the input cloud.

Parameters:
[in] cloud A pointer to the input cloud.

Definition at line 69 of file ground_based_people_detection_app.hpp.

References pcl::people::GroundBasedPeopleDetectionApp< PointT >::cloud_.

template<typename PointT >
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setIntrinsics ( Eigen::Matrix3f  intrinsics_matrix  )  [inline]

Set intrinsic parameters of the RGB camera.

Parameters:
[in] intrinsics_matrix RGB camera intrinsic parameters matrix.

Definition at line 94 of file ground_based_people_detection_app.hpp.

References pcl::people::GroundBasedPeopleDetectionApp< PointT >::intrinsics_matrix_.

template<typename PointT >
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setMinimumDistanceBetweenHeads ( float  heads_minimum_distance  )  [inline]

Set minimum distance between persons' heads.

Parameters:
[in] heads_minimum_distance Minimum allowed distance between persons' heads (default = 0.3).

Definition at line 128 of file ground_based_people_detection_app.hpp.

References pcl::people::GroundBasedPeopleDetectionApp< PointT >::heads_minimum_distance_.

template<typename PointT >
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setSamplingFactor ( int  sampling_factor  )  [inline]

Set sampling factor.

Parameters:
[in] sampling_factor Value of the downsampling factor (in each dimension) which is applied to the raw point cloud (default = 1.).

Definition at line 82 of file ground_based_people_detection_app.hpp.

References pcl::people::GroundBasedPeopleDetectionApp< PointT >::sampling_factor_.

template<typename PointT >
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setSensorPortraitOrientation ( bool  vertical  )  [inline]

Set sensor orientation (vertical = true means portrait mode, vertical = false means landscape mode).

Parameters:
[in] vertical Set landscape/portait camera orientation (default = false).

Definition at line 107 of file ground_based_people_detection_app.hpp.

References pcl::people::GroundBasedPeopleDetectionApp< PointT >::vertical_.

template<typename PointT >
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setVoxelSize ( float  voxel_size  )  [inline]

Set voxel size.

Parameters:
[in] voxel_size Value of the voxel dimension (default = 0.06m.).

Definition at line 88 of file ground_based_people_detection_app.hpp.

References pcl::people::GroundBasedPeopleDetectionApp< PointT >::voxel_size_.

template<typename PointT >
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::swapDimensions ( pcl::PointCloud< pcl::RGB >::Ptr &  cloud  )  [inline]

Swap rows/cols dimensions of a RGB point cloud (90 degrees counterclockwise rotation).

Parameters:
[in,out] cloud A pointer to a RGB point cloud.

Definition at line 197 of file ground_based_people_detection_app.hpp.

References pcl::PointCloud< PointT >::height, pcl::PointCloud< PointT >::points, and pcl::PointCloud< PointT >::width.

Referenced by pcl::people::GroundBasedPeopleDetectionApp< PointT >::compute().


Member Data Documentation

template<typename PointT>
PointCloudPtr pcl::people::GroundBasedPeopleDetectionApp< PointT >::cloud_ [protected]
template<typename PointT>
bool pcl::people::GroundBasedPeopleDetectionApp< PointT >::dimension_limits_set_ [protected]
template<typename PointT>
Eigen::VectorXf pcl::people::GroundBasedPeopleDetectionApp< PointT >::ground_coeffs_ [protected]
template<typename PointT>
bool pcl::people::GroundBasedPeopleDetectionApp< PointT >::head_centroid_ [protected]

if true, the person centroid is computed as the centroid of the cluster points belonging to the head; if false, the person centroid is computed as the centroid of the whole cluster points (default = true)

Definition at line 271 of file ground_based_people_detection_app.h.

Referenced by pcl::people::GroundBasedPeopleDetectionApp< PointT >::GroundBasedPeopleDetectionApp(), and pcl::people::GroundBasedPeopleDetectionApp< PointT >::setHeadCentroid().

template<typename PointT>
float pcl::people::GroundBasedPeopleDetectionApp< PointT >::heads_minimum_distance_ [protected]
template<typename PointT>
Eigen::Matrix3f pcl::people::GroundBasedPeopleDetectionApp< PointT >::intrinsics_matrix_ [protected]
template<typename PointT>
float pcl::people::GroundBasedPeopleDetectionApp< PointT >::max_height_ [protected]
template<typename PointT>
int pcl::people::GroundBasedPeopleDetectionApp< PointT >::max_points_ [protected]
template<typename PointT>
float pcl::people::GroundBasedPeopleDetectionApp< PointT >::min_height_ [protected]
template<typename PointT>
int pcl::people::GroundBasedPeopleDetectionApp< PointT >::min_points_ [protected]

pointer to the cloud after voxel grid filtering and ground removal

Definition at line 255 of file ground_based_people_detection_app.h.

Referenced by pcl::people::GroundBasedPeopleDetectionApp< PointT >::compute(), and pcl::people::GroundBasedPeopleDetectionApp< PointT >::getNoGroundCloud().

template<typename PointT>
bool pcl::people::GroundBasedPeopleDetectionApp< PointT >::person_classifier_set_flag_ [protected]
template<typename PointT>
pcl::PointCloud<pcl::RGB>::Ptr pcl::people::GroundBasedPeopleDetectionApp< PointT >::rgb_image_ [protected]
template<typename PointT>
int pcl::people::GroundBasedPeopleDetectionApp< PointT >::sampling_factor_ [protected]
template<typename PointT>
float pcl::people::GroundBasedPeopleDetectionApp< PointT >::sqrt_ground_coeffs_ [protected]
template<typename PointT>
bool pcl::people::GroundBasedPeopleDetectionApp< PointT >::vertical_ [protected]
template<typename PointT>
float pcl::people::GroundBasedPeopleDetectionApp< PointT >::voxel_size_ [protected]

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