Point Cloud Library (PCL)
1.14.1-dev
|
Namespaces | |
label_skeleton | |
trees | |
Classes | |
class | RDFBodyPartsDetector |
class | FaceDetector |
struct | Blob2 |
This structure contains all parameters to describe blobs and their parent/child relations. More... | |
struct | Tree2 |
This structure contains all parameters to describe the segmented tree. More... | |
class | OrganizedPlaneDetector |
class | PeopleDetector |
class | PersonAttribs |
class | ProbabilityProcessor |
Typedefs | |
using | Cloud = DeviceArray2D< float4 > |
using | Image = DeviceArray2D< uchar4 > |
using | Depth = DeviceArray2D< unsigned short > |
using | Labels = DeviceArray2D< unsigned char > |
using | HueImage = DeviceArray2D< float > |
using | Mask = DeviceArray2D< unsigned char > |
Enumerations | |
enum | { NO_CHILD = -3 , LEAF = -2 , ROOT = -1 , NO_DATA = 255 } |
enum | { NUM_PARTS = 25 } |
enum | { MAX_CHILD = 4 } |
We have 25 body parts defined. More... | |
enum | { NR_TREES = 4 } |
a parent node has maximum 4 children More... | |
enum | { FOCAL = 525 } |
The maximum supported number of trees. More... | |
enum | { WIDTH = 640 } |
Focal length of rgb camera in pixels. More... | |
enum | { HEIGHT = 480 } |
enum | { RATIO = WIDTH/HEIGHT } |
enum | { XML_VERSION = 1 } |
enum | { NUM_ATTRIBS = 2000 } |
This indicates the current used xml file version (for people lib only) More... | |
enum | { NUM_LABELS = 32 } |
enum | part_t { Lfoot = 0 , Lleg = 1 , Lknee = 2 , Lthigh = 3 , Rfoot = 4 , Rleg = 5 , Rknee = 6 , Rthigh = 7 , Rhips = 8 , Lhips = 9 , Neck = 10 , Rarm = 11 , Relbow = 12 , Rforearm = 13 , Rhand = 14 , Larm = 15 , Lelbow = 16 , Lforearm = 17 , Lhand = 18 , FaceLB = 19 , FaceRB = 20 , FaceLT = 21 , FaceRT = 22 , Rchest = 23 , Lchest = 24 , Lshoulder = 25 , Rshoulder = 26 , Groundplane = 27 , Ceiling = 28 , Background = 29 , Plane = 30 , NOLABEL = 31 } |
Our code is foreseen to use maximal use 32 labels. More... | |
Functions | |
pcl::RGB | getLColor (unsigned char l) |
gives a label and returns the color out of the colormap More... | |
pcl::RGB | getLColor (pcl::Label l) |
gives a label and returns the color out of the colormap More... | |
void | colorLMap (int W, int H, const trees::Label *l, unsigned char *c) |
void | colorLMap (const PointCloud< pcl::Label > &cloud_in, PointCloud< pcl::RGB > &colormap_out) |
PCL_EXPORTS void | uploadColorMap (DeviceArray< pcl::RGB > &color_map) |
PCL_EXPORTS void | colorizeLabels (const DeviceArray< pcl::RGB > &color_map, const DeviceArray2D< unsigned char > &labels, DeviceArray2D< pcl::RGB > &color_labels) |
PCL_EXPORTS void | colorizeMixedLabels (const DeviceArray< RGB > &color_map, const DeviceArray2D< unsigned char > &labels, const DeviceArray2D< RGB > &image, DeviceArray2D< RGB > &color_labels) |
void | colorFG (int W, int H, const unsigned char *labels, unsigned char *c) |
std::ostream & | operator<< (std::ostream &os, const Blob2 &b) |
std::ostream & | operator<< (std::ostream &os, const Tree2 &t) |
int | leafBlobVector (std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted, int label) |
This function sets the children of the leaf nodes to leaf, meaning that we came to the correct end. More... | |
int | noChildBlobVector (std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted, int label, int child_number) |
This function sets the specific child of the vector to no child, meaning that there are no such children. More... | |
bool | hasThisLabelChildren (std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted, part_t label, int child_number) |
This function test if children were found for this label. More... | |
float | evaluateBlobs (Blob2 &parent, Blob2 &child, int child_nr) |
This is the evaluation function used to compare two blobs. More... | |
float | evaluateBlobs (Blob2 &parent, Blob2 &child, int child_nr, PersonAttribs::Ptr person_attribs) |
This is the evaluation function used to compare two blobs. More... | |
int | evaluateBlobVector (std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted, unsigned int parent_label, int child_label, int child_number) |
This function evaluates an entire row of parent segments for the best child segments. More... | |
int | evaluateBlobVector (std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted, unsigned int parent_label, int child_label, int child_number, PersonAttribs::Ptr person_attribs) |
This function evaluates an entire row of parent segments for the best child segments. More... | |
int | buildRelations (std::vector< std::vector< Blob2, Eigen::aligned_allocator< pcl::gpu::people::Blob2 > > > &sorted) |
This function goes over the sorted matrix and fills in the optimal parent and child relations. More... | |
int | buildRelations (std::vector< std::vector< Blob2, Eigen::aligned_allocator< pcl::gpu::people::Blob2 > > > &sorted, PersonAttribs::Ptr person_attribs) |
This function goes over the sorted matrix and fills in the optimal parent and child relations. More... | |
int | browseTree (const std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted, Tree2 &tree, int part_label, int part_lid) |
int | browseTree (const std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted, Tree2 &tree, int part_label, int part_lid, PersonAttribs::Ptr person_attribs) |
int | buildTree (const std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted, const pcl::PointCloud< pcl::PointXYZ > &cloud_in, part_t part_label, int part_lid, Tree2 &tree) |
int | buildTree (const std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted, const pcl::PointCloud< pcl::PointXYZ > &cloud_in, part_t part_label, int part_lid, Tree2 &tree, PersonAttribs::Ptr person_attribs) |
Variables | |
const unsigned char | LUT_COLOR_LABEL [] |
const int | LUT_COLOR_LABEL_LENGTH |
static const float | LUT_max_part_size [] |
This LUT contains the max primary eigenvalue for each part. More... | |
static const float | LUT_ideal_length [][4] |
This LUT contains the ideal length between this part and his children. More... | |
static const float | LUT_max_length_offset [][4] |
This LUT contains the max length between this part and his children. More... | |
static const unsigned int | LUT_nr_children [] |
This LUT contains the number of children for each parent. More... | |
using pcl::gpu::people::Cloud = typedef DeviceArray2D<float4> |
Definition at line 111 of file label_common.h.
using pcl::gpu::people::Depth = typedef DeviceArray2D<unsigned short> |
Definition at line 114 of file label_common.h.
using pcl::gpu::people::HueImage = typedef DeviceArray2D<float> |
Definition at line 116 of file label_common.h.
using pcl::gpu::people::Image = typedef DeviceArray2D<uchar4> |
Definition at line 112 of file label_common.h.
using pcl::gpu::people::Labels = typedef DeviceArray2D<unsigned char> |
Definition at line 115 of file label_common.h.
using pcl::gpu::people::Mask = typedef DeviceArray2D<unsigned char> |
Definition at line 117 of file label_common.h.
anonymous enum |
The maximum supported number of trees.
Enumerator | |
---|---|
FOCAL |
Definition at line 65 of file label_common.h.
anonymous enum |
anonymous enum |
Enumerator | |
---|---|
HEIGHT |
Definition at line 67 of file label_common.h.
anonymous enum |
Enumerator | |
---|---|
RATIO |
Definition at line 68 of file label_common.h.
anonymous enum |
Enumerator | |
---|---|
XML_VERSION |
Definition at line 69 of file label_common.h.
anonymous enum |
This indicates the current used xml file version (for people lib only)
Enumerator | |
---|---|
NUM_ATTRIBS |
Definition at line 71 of file label_common.h.
anonymous enum |
Enumerator | |
---|---|
NUM_LABELS |
Definition at line 72 of file label_common.h.
anonymous enum |
Enumerator | |
---|---|
NO_CHILD | |
LEAF | |
ROOT | |
NO_DATA |
Definition at line 52 of file label_common.h.
anonymous enum |
Enumerator | |
---|---|
NUM_PARTS |
Definition at line 60 of file label_common.h.
anonymous enum |
anonymous enum |
a parent node has maximum 4 children
Enumerator | |
---|---|
NR_TREES |
Definition at line 62 of file label_common.h.
Our code is foreseen to use maximal use 32 labels.
Definition at line 75 of file label_common.h.
|
inline |
Definition at line 542 of file label_tree.h.
References pcl::gpu::people::Blob2::child_dist, pcl::gpu::people::Blob2::child_id, pcl::gpu::people::Blob2::child_label, pcl::gpu::people::Blob2::child_lid, pcl::PointIndices::indices, pcl::gpu::people::Blob2::indices, pcl::gpu::people::Tree2::indices, LEAF, LUT_nr_children, NO_CHILD, pcl::gpu::people::Tree2::nr_parts, pcl::gpu::people::Tree2::parts_lid, and pcl::gpu::people::Tree2::total_dist_error.
Referenced by browseTree(), and buildTree().
|
inline |
Definition at line 573 of file label_tree.h.
References browseTree(), pcl::gpu::people::Blob2::child_dist, pcl::gpu::people::Blob2::child_id, pcl::gpu::people::Blob2::child_label, pcl::gpu::people::Blob2::child_lid, pcl::PointIndices::indices, pcl::gpu::people::Blob2::indices, pcl::gpu::people::Tree2::indices, LEAF, NO_CHILD, pcl::gpu::people::Tree2::nr_parts, pcl::gpu::people::Tree2::parts_lid, and pcl::gpu::people::Tree2::total_dist_error.
|
inline |
This function goes over the sorted matrix and fills in the optimal parent and child relations.
[in] | sorted | a matrix with all found good blobs arranged according to label and order |
This function also fixes the kinematic chain, we should implement this in a xml or LUT
look if we can't get a more efficient implementation (iterator together with sortBlobs perhaps?)
Definition at line 342 of file label_tree.h.
References evaluateBlobVector(), FaceLB, FaceRB, hasThisLabelChildren(), Larm, Lchest, leafBlobVector(), Lelbow, Lforearm, Neck, Rarm, Rchest, Relbow, and Rforearm.
|
inline |
This function goes over the sorted matrix and fills in the optimal parent and child relations.
[in] | sorted | a matrix with all found good blobs arranged according to label and order |
person_attribs |
This function also fixes the kinematic chain, we should implement this in a xml or LUT
look if we can't get a more efficient implementation (iterator together with sortBlobs perhaps?)
Definition at line 445 of file label_tree.h.
References evaluateBlobVector(), FaceLB, FaceRB, hasThisLabelChildren(), Larm, Lchest, leafBlobVector(), Lelbow, Lforearm, Neck, Rarm, Rchest, Relbow, and Rforearm.
|
inline |
Definition at line 605 of file label_tree.h.
References browseTree(), pcl::compute3DCentroid(), pcl::computeCovarianceMatrixNormalized(), pcl::gpu::people::Tree2::cov, pcl::eigen33(), pcl::gpu::people::Tree2::eigenval, pcl::gpu::people::Tree2::eigenvect, pcl::getMinMax3D(), pcl::gpu::people::Tree2::indices, pcl::gpu::people::Tree2::label, pcl::gpu::people::Tree2::lid, pcl::gpu::people::Tree2::max, pcl::gpu::people::Tree2::mean, pcl::gpu::people::Tree2::min, pcl::gpu::people::Tree2::norm_dist_error, pcl::gpu::people::Tree2::nr_parts, and pcl::gpu::people::Tree2::total_dist_error.
|
inline |
Definition at line 634 of file label_tree.h.
References browseTree(), pcl::compute3DCentroid(), pcl::computeCovarianceMatrixNormalized(), pcl::gpu::people::Tree2::cov, pcl::eigen33(), pcl::gpu::people::Tree2::eigenval, pcl::gpu::people::Tree2::eigenvect, pcl::getMinMax3D(), pcl::gpu::people::Tree2::indices, pcl::gpu::people::Tree2::label, pcl::gpu::people::Tree2::lid, pcl::gpu::people::Tree2::max, pcl::gpu::people::Tree2::mean, pcl::gpu::people::Tree2::min, pcl::gpu::people::Tree2::norm_dist_error, pcl::gpu::people::Tree2::nr_parts, and pcl::gpu::people::Tree2::total_dist_error.
|
inline |
Definition at line 76 of file colormap.h.
PCL_EXPORTS void pcl::gpu::people::colorizeLabels | ( | const DeviceArray< pcl::RGB > & | color_map, |
const DeviceArray2D< unsigned char > & | labels, | ||
DeviceArray2D< pcl::RGB > & | color_labels | ||
) |
PCL_EXPORTS void pcl::gpu::people::colorizeMixedLabels | ( | const DeviceArray< RGB > & | color_map, |
const DeviceArray2D< unsigned char > & | labels, | ||
const DeviceArray2D< RGB > & | image, | ||
DeviceArray2D< RGB > & | color_labels | ||
) |
void pcl::gpu::people::colorLMap | ( | const PointCloud< pcl::Label > & | cloud_in, |
PointCloud< pcl::RGB > & | colormap_out | ||
) |
void pcl::gpu::people::colorLMap | ( | int | W, |
int | H, | ||
const trees::Label * | l, | ||
unsigned char * | c | ||
) |
This is the evaluation function used to compare two blobs.
[in] | parent | pointer to the parent blob |
[in] | child | pointer to the child blob |
[in] | child_nr | the number of the child |
Definition at line 181 of file label_tree.h.
References pcl::gpu::people::Blob2::label, LUT_ideal_length, LUT_max_length_offset, and pcl::gpu::people::Blob2::mean.
Referenced by evaluateBlobVector().
|
inline |
This is the evaluation function used to compare two blobs.
[in] | parent | pointer to the parent blob |
[in] | child | pointer to the child blob |
[in] | child_nr | the number of the child |
person_attribs |
Definition at line 202 of file label_tree.h.
References pcl::gpu::people::Blob2::label, and pcl::gpu::people::Blob2::mean.
|
inline |
This function evaluates an entire row of parent segments for the best child segments.
[in] | sorted | this is the array of all blobs |
[in] | parent_label | this is the part label that indicates the row |
[in] | child_label | this is the part label that indicates the childs needed to be investigated |
[in] | child_number | the number of this child in the parent, some parents have multiple childs |
Definition at line 226 of file label_tree.h.
References evaluateBlobs(), MAX_CHILD, NO_CHILD, noChildBlobVector(), and NUM_PARTS.
Referenced by buildRelations().
|
inline |
This function evaluates an entire row of parent segments for the best child segments.
[in] | sorted | this is the array of all blobs |
[in] | parent_label | this is the part label that indicates the row |
[in] | child_label | this is the part label that indicates the childs needed to be investigated |
[in] | child_number | the number of this child in the parent, some parents have multiple childs |
person_attribs |
Definition at line 285 of file label_tree.h.
References evaluateBlobs(), MAX_CHILD, NO_CHILD, noChildBlobVector(), and NUM_PARTS.
pcl::RGB pcl::gpu::people::getLColor | ( | pcl::Label | l | ) |
gives a label and returns the color out of the colormap
pcl::RGB pcl::gpu::people::getLColor | ( | unsigned char | l | ) |
gives a label and returns the color out of the colormap
|
inline |
This function test if children were found for this label.
Definition at line 160 of file label_tree.h.
References LEAF, and NO_CHILD.
Referenced by buildRelations().
|
inline |
This function sets the children of the leaf nodes to leaf, meaning that we came to the correct end.
[in] | sorted | The matrix of all blobs |
[in] | label | The label of which all children are to be set as leafs |
Definition at line 122 of file label_tree.h.
References LEAF, and MAX_CHILD.
Referenced by buildRelations().
|
inline |
This function sets the specific child of the vector to no child, meaning that there are no such children.
[in] | sorted | The matrix of all blobs |
[in] | label | The label of which the child must be set to NO_CHILD |
[in] | child_number | The index of the respective child that must be set |
Definition at line 143 of file label_tree.h.
References NO_CHILD.
Referenced by evaluateBlobVector().
|
inline |
Definition at line 79 of file label_blob2.h.
References pcl::gpu::people::Blob2::child_dist, pcl::gpu::people::Blob2::child_id, pcl::gpu::people::Blob2::child_label, pcl::gpu::people::Blob2::child_lid, pcl::gpu::people::Blob2::cov, pcl::gpu::people::Blob2::eigenval, pcl::gpu::people::Blob2::eigenvect, pcl::gpu::people::Blob2::id, pcl::PointIndices::indices, pcl::gpu::people::Blob2::indices, pcl::gpu::people::Blob2::label, pcl::gpu::people::Blob2::lid, pcl::gpu::people::Blob2::max, MAX_CHILD, pcl::gpu::people::Blob2::mean, and pcl::gpu::people::Blob2::min.
|
inline |
Definition at line 101 of file label_tree.h.
References pcl::gpu::people::Tree2::cov, pcl::gpu::people::Tree2::eigenval, pcl::gpu::people::Tree2::eigenvect, pcl::gpu::people::Tree2::id, pcl::PointIndices::indices, pcl::gpu::people::Tree2::indices, pcl::gpu::people::Tree2::label, pcl::gpu::people::Tree2::lid, pcl::gpu::people::Tree2::max, pcl::gpu::people::Tree2::mean, pcl::gpu::people::Tree2::min, pcl::gpu::people::Tree2::norm_dist_error, pcl::gpu::people::Tree2::nr_parts, and pcl::gpu::people::Tree2::total_dist_error.
PCL_EXPORTS void pcl::gpu::people::uploadColorMap | ( | DeviceArray< pcl::RGB > & | color_map | ) |
|
extern |
|
extern |
|
static |
This LUT contains the ideal length between this part and his children.
Definition at line 155 of file label_common.h.
Referenced by evaluateBlobs().
|
static |
This LUT contains the max length between this part and his children.
Definition at line 187 of file label_common.h.
Referenced by evaluateBlobs().
|
static |
This LUT contains the max primary eigenvalue for each part.
Definition at line 123 of file label_common.h.
|
static |
This LUT contains the number of children for each parent.
Definition at line 219 of file label_common.h.
Referenced by browseTree().