Point Cloud Library (PCL)
1.7.0
|
GroundBasedPeopleDetectionApp performs people detection on RGB-D data having as input the ground plane coefficients. More...
#include <pcl/people/ground_based_people_detection_app.h>
Public Types | |
typedef pcl::PointCloud< PointT > | PointCloud |
typedef boost::shared_ptr < PointCloud > | PointCloudPtr |
typedef boost::shared_ptr < const PointCloud > | PointCloudConstPtr |
Public Member Functions | |
GroundBasedPeopleDetectionApp () | |
Constructor. More... | |
virtual | ~GroundBasedPeopleDetectionApp () |
Destructor. More... | |
void | setInputCloud (PointCloudPtr &cloud) |
Set the pointer to the input cloud. More... | |
void | setGround (Eigen::VectorXf &ground_coeffs) |
Set the ground coefficients. More... | |
void | setSamplingFactor (int sampling_factor) |
Set sampling factor. More... | |
void | setVoxelSize (float voxel_size) |
Set voxel size. More... | |
void | setIntrinsics (Eigen::Matrix3f intrinsics_matrix) |
Set intrinsic parameters of the RGB camera. More... | |
void | setClassifier (pcl::people::PersonClassifier< pcl::RGB > person_classifier) |
Set SVM-based person classifier. More... | |
void | setSensorPortraitOrientation (bool vertical) |
Set sensor orientation (vertical = true means portrait mode, vertical = false means landscape mode). More... | |
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). More... | |
void | setHeightLimits (float min_height, float max_height) |
Set minimum and maximum allowed height for a person cluster. More... | |
void | setDimensionLimits (int min_points, int max_points) |
Set minimum and maximum allowed number of points for a person cluster. More... | |
void | setMinimumDistanceBetweenHeads (float heads_minimum_distance) |
Set minimum distance between persons' heads. More... | |
void | getHeightLimits (float &min_height, float &max_height) |
Get minimum and maximum allowed height for a person cluster. More... | |
void | getDimensionLimits (int &min_points, int &max_points) |
Get minimum and maximum allowed number of points for a person cluster. More... | |
float | getMinimumDistanceBetweenHeads () |
Get minimum distance between persons' heads. More... | |
Eigen::VectorXf | getGround () |
Get floor coefficients. More... | |
PointCloudPtr | getNoGroundCloud () |
Get pointcloud after voxel grid filtering and ground removal. More... | |
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. More... | |
void | swapDimensions (pcl::PointCloud< pcl::RGB >::Ptr &cloud) |
Swap rows/cols dimensions of a RGB point cloud (90 degrees counterclockwise rotation). More... | |
bool | compute (std::vector< pcl::people::PersonCluster< PointT > > &clusters) |
Perform people detection on the input data and return people clusters information. More... | |
Protected Attributes | |
int | sampling_factor_ |
sampling factor used to downsample the point cloud More... | |
float | voxel_size_ |
voxel size More... | |
Eigen::VectorXf | ground_coeffs_ |
ground plane coefficients More... | |
float | sqrt_ground_coeffs_ |
ground plane normalization factor More... | |
PointCloudPtr | cloud_ |
pointer to the input cloud More... | |
PointCloudPtr | no_ground_cloud_ |
pointer to the cloud after voxel grid filtering and ground removal More... | |
pcl::PointCloud< pcl::RGB >::Ptr | rgb_image_ |
pointer to a RGB cloud corresponding to cloud_ More... | |
float | max_height_ |
person clusters maximum height from the ground plane More... | |
float | min_height_ |
person clusters minimum height from the ground plane More... | |
bool | vertical_ |
if true, the sensor is considered to be vertically placed (portrait mode) More... | |
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) More... | |
int | max_points_ |
maximum number of points for a person cluster More... | |
int | min_points_ |
minimum number of points for a person cluster More... | |
bool | dimension_limits_set_ |
true if min_points and max_points have been set by the user, false otherwise More... | |
float | heads_minimum_distance_ |
minimum distance between persons' heads More... | |
Eigen::Matrix3f | intrinsics_matrix_ |
intrinsic parameters matrix of the RGB camera More... | |
pcl::people::PersonClassifier < pcl::RGB > | person_classifier_ |
SVM-based person classifier. More... | |
bool | person_classifier_set_flag_ |
flag stating if the classifier has been set or not More... | |
GroundBasedPeopleDetectionApp performs people detection on RGB-D data having as input the ground plane coefficients.
It implements the people detection algorithm described here: M. Munaro, F. Basso and E. Menegatti, Tracking people within groups with RGB-D data, In Proceedings of the International Conference on Intelligent Robots and Systems (IROS) 2012, Vilamoura (Portugal), 2012.
Definition at line 68 of file ground_based_people_detection_app.h.
typedef pcl::PointCloud<PointT> pcl::people::GroundBasedPeopleDetectionApp< PointT >::PointCloud |
Definition at line 75 of file ground_based_people_detection_app.h.
typedef boost::shared_ptr<const PointCloud> pcl::people::GroundBasedPeopleDetectionApp< PointT >::PointCloudConstPtr |
Definition at line 77 of file ground_based_people_detection_app.h.
typedef boost::shared_ptr<PointCloud> pcl::people::GroundBasedPeopleDetectionApp< PointT >::PointCloudPtr |
Definition at line 76 of file ground_based_people_detection_app.h.
pcl::people::GroundBasedPeopleDetectionApp< PointT >::GroundBasedPeopleDetectionApp | ( | ) |
Constructor.
Definition at line 47 of file ground_based_people_detection_app.hpp.
|
virtual |
Destructor.
Definition at line 333 of file ground_based_people_detection_app.hpp.
bool pcl::people::GroundBasedPeopleDetectionApp< PointT >::compute | ( | std::vector< pcl::people::PersonCluster< PointT > > & | clusters | ) |
Perform people detection on the input data and return people clusters information.
[out] | clusters | Vector of PersonCluster. |
Definition at line 214 of file ground_based_people_detection_app.hpp.
References pcl::EuclideanClusterExtraction< PointT >::extract(), pcl::FilterIndices< PointT >::filter(), pcl::Filter< PointT >::filter(), pcl::EuclideanClusterExtraction< PointT >::setClusterTolerance(), pcl::people::HeadBasedSubclustering< PointT >::setGround(), pcl::people::HeadBasedSubclustering< PointT >::setHeightLimits(), pcl::PCLBase< PointT >::setIndices(), pcl::people::HeadBasedSubclustering< PointT >::setInitialClusters(), pcl::PCLBase< PointT >::setInputCloud(), pcl::people::HeadBasedSubclustering< PointT >::setInputCloud(), pcl::search::KdTree< 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(), and pcl::people::HeadBasedSubclustering< PointT >::subcluster().
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::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.
[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< T >::height, pcl::PointCloud< T >::points, and pcl::PointCloud< T >::width.
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::getDimensionLimits | ( | int & | min_points, |
int & | max_points | ||
) |
Get minimum and maximum allowed number of points for a person cluster.
[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.
Eigen::VectorXf pcl::people::GroundBasedPeopleDetectionApp< PointT >::getGround | ( | ) |
Get floor coefficients.
Definition at line 160 of file ground_based_people_detection_app.hpp.
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::getHeightLimits | ( | float & | min_height, |
float & | max_height | ||
) |
Get minimum and maximum allowed height for a person cluster.
[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.
float pcl::people::GroundBasedPeopleDetectionApp< PointT >::getMinimumDistanceBetweenHeads | ( | ) |
Get minimum distance between persons' heads.
Definition at line 154 of file ground_based_people_detection_app.hpp.
pcl::people::GroundBasedPeopleDetectionApp< PointT >::PointCloudPtr pcl::people::GroundBasedPeopleDetectionApp< PointT >::getNoGroundCloud | ( | ) |
Get pointcloud after voxel grid filtering and ground removal.
Definition at line 170 of file ground_based_people_detection_app.hpp.
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setClassifier | ( | pcl::people::PersonClassifier< pcl::RGB > | person_classifier | ) |
Set SVM-based person classifier.
[in] | person_classifier | Needed for people detection on RGB data. |
Definition at line 100 of file ground_based_people_detection_app.hpp.
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setDimensionLimits | ( | int | min_points, |
int | max_points | ||
) |
Set minimum and maximum allowed number of points for a person cluster.
[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.
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setGround | ( | Eigen::VectorXf & | ground_coeffs | ) |
Set the ground coefficients.
[in] | ground_coeffs | Vector containing the four plane coefficients. |
Definition at line 75 of file ground_based_people_detection_app.hpp.
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setHeadCentroid | ( | bool | head_centroid | ) |
Set head_centroid_ to true (person centroid is in the head) or false (person centroid is the whole body centroid).
[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.
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setHeightLimits | ( | float | min_height, |
float | max_height | ||
) |
Set minimum and maximum allowed height for a person cluster.
[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.
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setInputCloud | ( | PointCloudPtr & | cloud | ) |
Set the pointer to the input cloud.
[in] | cloud | A pointer to the input cloud. |
Definition at line 69 of file ground_based_people_detection_app.hpp.
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setIntrinsics | ( | Eigen::Matrix3f | intrinsics_matrix | ) |
Set intrinsic parameters of the RGB camera.
[in] | intrinsics_matrix | RGB camera intrinsic parameters matrix. |
Definition at line 94 of file ground_based_people_detection_app.hpp.
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setMinimumDistanceBetweenHeads | ( | float | heads_minimum_distance | ) |
Set minimum distance between persons' heads.
[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.
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setSamplingFactor | ( | int | sampling_factor | ) |
Set sampling factor.
[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.
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setSensorPortraitOrientation | ( | bool | vertical | ) |
Set sensor orientation (vertical = true means portrait mode, vertical = false means landscape mode).
[in] | vertical | Set landscape/portait camera orientation (default = false). |
Definition at line 107 of file ground_based_people_detection_app.hpp.
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::setVoxelSize | ( | float | voxel_size | ) |
Set voxel size.
[in] | voxel_size | Value of the voxel dimension (default = 0.06m.). |
Definition at line 88 of file ground_based_people_detection_app.hpp.
void pcl::people::GroundBasedPeopleDetectionApp< PointT >::swapDimensions | ( | pcl::PointCloud< pcl::RGB >::Ptr & | cloud | ) |
Swap rows/cols dimensions of a RGB point cloud (90 degrees counterclockwise rotation).
[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< T >::height, pcl::PointCloud< T >::points, and pcl::PointCloud< T >::width.
|
protected |
pointer to the input cloud
Definition at line 252 of file ground_based_people_detection_app.h.
|
protected |
true if min_points and max_points have been set by the user, false otherwise
Definition at line 280 of file ground_based_people_detection_app.h.
|
protected |
ground plane coefficients
Definition at line 246 of file ground_based_people_detection_app.h.
|
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.
|
protected |
minimum distance between persons' heads
Definition at line 283 of file ground_based_people_detection_app.h.
|
protected |
intrinsic parameters matrix of the RGB camera
Definition at line 286 of file ground_based_people_detection_app.h.
|
protected |
person clusters maximum height from the ground plane
Definition at line 261 of file ground_based_people_detection_app.h.
|
protected |
maximum number of points for a person cluster
Definition at line 274 of file ground_based_people_detection_app.h.
|
protected |
person clusters minimum height from the ground plane
Definition at line 264 of file ground_based_people_detection_app.h.
|
protected |
minimum number of points for a person cluster
Definition at line 277 of file ground_based_people_detection_app.h.
|
protected |
pointer to the cloud after voxel grid filtering and ground removal
Definition at line 255 of file ground_based_people_detection_app.h.
|
protected |
SVM-based person classifier.
Definition at line 289 of file ground_based_people_detection_app.h.
|
protected |
flag stating if the classifier has been set or not
Definition at line 292 of file ground_based_people_detection_app.h.
|
protected |
pointer to a RGB cloud corresponding to cloud_
Definition at line 258 of file ground_based_people_detection_app.h.
|
protected |
sampling factor used to downsample the point cloud
Definition at line 240 of file ground_based_people_detection_app.h.
|
protected |
ground plane normalization factor
Definition at line 249 of file ground_based_people_detection_app.h.
|
protected |
if true, the sensor is considered to be vertically placed (portrait mode)
Definition at line 267 of file ground_based_people_detection_app.h.
|
protected |
voxel size
Definition at line 243 of file ground_based_people_detection_app.h.