Loading...
Searching...
No Matches
pcl::gpu::people Namespace Reference

## Namespaces

namespace | label_skeleton
namespace | 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
pcl::RGB | getLColor (pcl::Label l)
| gives a label and returns the color out of the colormap
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.
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.
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.
float | evaluateBlobs (Blob2 &parent, Blob2 &child, int child_nr)
| This is the evaluation function used to compare two blobs.
float | evaluateBlobs (Blob2 &parent, Blob2 &child, int child_nr, PersonAttribs::Ptr person_attribs)
| This is the evaluation function used to compare two blobs.
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.
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.
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.
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.
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.
static const float | LUT_ideal_length [][4]
| This LUT contains the ideal length between this part and his children.
static const float | LUT_max_length_offset [][4]
| This LUT contains the max length between this part and his children.
static const unsigned int | LUT_nr_children []
| This LUT contains the number of children for each parent.

## Typedef Documentation

## Cloud

using pcl::gpu::people::Cloud = DeviceArray2D<float4>

Definition at line 111 of file label_common.h.

## Depth

using pcl::gpu::people::Depth = DeviceArray2D<unsigned short>

Definition at line 114 of file label_common.h.

## HueImage

using pcl::gpu::people::HueImage = DeviceArray2D<float>

Definition at line 116 of file label_common.h.

## Image

using pcl::gpu::people::Image = DeviceArray2D<uchar4>

Definition at line 112 of file label_common.h.

## Labels

using pcl::gpu::people::Labels = DeviceArray2D<unsigned char>

Definition at line 115 of file label_common.h.

## Mask

using pcl::gpu::people::Mask = DeviceArray2D<unsigned char>

Definition at line 117 of file label_common.h.

## Enumeration Type Documentation

## anonymous enum

anonymous enum

We have 25 body parts defined.

Enumerator
MAX_CHILD |

Definition at line 61 of file label_common.h.

## anonymous enum

anonymous enum

Enumerator
HEIGHT |

Definition at line 67 of file label_common.h.

## anonymous enum

anonymous enum

The maximum supported number of trees.

Enumerator
FOCAL |

Definition at line 65 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.

## anonymous enum

anonymous enum

Enumerator
XML_VERSION |

Definition at line 69 of file label_common.h.

## anonymous enum

anonymous enum

Enumerator
NUM_PARTS |

Definition at line 60 of file label_common.h.

## anonymous enum

anonymous enum

Enumerator
NO_CHILD |
LEAF |
ROOT |
NO_DATA |

Definition at line 52 of file label_common.h.

## anonymous enum

anonymous enum

Focal length of rgb camera in pixels.

Enumerator
WIDTH |

Definition at line 66 of file label_common.h.

## anonymous enum

anonymous enum

Enumerator
RATIO |

Definition at line 68 of file label_common.h.

## anonymous enum

anonymous enum

Enumerator
NUM_LABELS |

Definition at line 72 of file label_common.h.

## anonymous enum

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.

## part_t

enum pcl::gpu::people::part_t

Our code is foreseen to use maximal use 32 labels.

Todo
  implement label 25 to 29

Enumerator
Lfoot |
Lleg |
Lknee |
Lthigh |
Rfoot |
Rleg |
Rknee |
Rthigh |
Rhips |
Lhips |
Neck |
Rarm |
Relbow |
Rforearm |
Rhand |
Larm |
Lelbow |
Lforearm |
Lhand |
FaceLB |
FaceRB |
FaceLT |
FaceRT |
Rchest |
Lchest |
Lshoulder |
Rshoulder |
Groundplane |
Ceiling |
Background |
Plane |
NOLABEL |

Definition at line 75 of file label_common.h.

## Function Documentation

## browseTree() [1/2]

int pcl::gpu::people::browseTree | ( | const std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > & | sorted,
|  | Tree2 & | tree,
|  | int | part_label,
|  | int | part_lid )

inline

Definition at line 542 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::gpu::people::Blob2::indices, pcl::gpu::people::Tree2::indices, pcl::PointIndices::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(), browseTree(), buildTree(), and buildTree().

## browseTree() [2/2]

int pcl::gpu::people::browseTree | ( | const std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > & | sorted,
|  | Tree2 & | tree,
|  | int | part_label,
|  | int | part_lid,
|  | PersonAttribs::Ptr | person_attribs )

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::gpu::people::Blob2::indices, pcl::gpu::people::Tree2::indices, pcl::PointIndices::indices, LEAF, NO_CHILD, pcl::gpu::people::Tree2::nr_parts, pcl::gpu::people::Tree2::parts_lid, and pcl::gpu::people::Tree2::total_dist_error.

## buildRelations() [1/2]

int pcl::gpu::people::buildRelations | ( | std::vector< std::vector< Blob2, Eigen::aligned_allocator< pcl::gpu::people::Blob2 > > > & | sorted | ) |

inline

This function goes over the sorted matrix and fills in the optimal parent and child relations.

Parameters

  [in] | sorted | a matrix with all found good blobs arranged according to label and order

Returns
  zero if everything went well, negative on an error

Todo

  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.

## buildRelations() [2/2]

int pcl::gpu::people::buildRelations | ( | std::vector< std::vector< Blob2, Eigen::aligned_allocator< pcl::gpu::people::Blob2 > > > & | sorted,
|  | PersonAttribs::Ptr | person_attribs )

inline

This function goes over the sorted matrix and fills in the optimal parent and child relations.

Parameters

  [in] | sorted | a matrix with all found good blobs arranged according to label and order
  | person_attribs |

Returns
  zero if everything went well, negative on an error

Todo

  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.

## buildTree() [1/2]

int pcl::gpu::people::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 )

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.

## buildTree() [2/2]

int pcl::gpu::people::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 )

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.

## colorFG()

void pcl::gpu::people::colorFG | ( | int | W,
|  | int | H,
|  | const unsigned char * | labels,
|  | unsigned char * | c )

inline

Definition at line 76 of file colormap.h.

## colorizeLabels()

PCL_EXPORTS void pcl::gpu::people::colorizeLabels | ( | const DeviceArray< pcl::RGB > & | color_map,
|  | const DeviceArray2D< unsigned char > & | labels,
|  | DeviceArray2D< pcl::RGB > & | color_labels )

## colorizeMixedLabels()

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 )

## colorLMap() [1/2]

void pcl::gpu::people::colorLMap | ( | const PointCloud< pcl::Label > & | cloud_in,
|  | PointCloud< pcl::RGB > & | colormap_out )

References LUT_COLOR_LABEL, and LUT_COLOR_LABEL_LENGTH.

## colorLMap() [2/2]

void pcl::gpu::people::colorLMap | ( | int | W,
|  | int | H,
|  | const trees::Label * | l,
|  | unsigned char * | c )

## evaluateBlobs() [1/2]

float pcl::gpu::people::evaluateBlobs | ( | Blob2 & | parent,
|  | Blob2 & | child,
|  | int | child_nr )

inline

This is the evaluation function used to compare two blobs.

Parameters

  [in] | parent | pointer to the parent blob
  [in] | child | pointer to the child blob
  [in] | child_nr | the number of the child

Returns
  it returns the distance error from the ideal parent child distance, it returns -1.0 if it goes over threshold

Todo
  what if child is second link in stead of first link (ea forearm in stead of elbow for arm)

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(), and evaluateBlobVector().

## evaluateBlobs() [2/2]

float pcl::gpu::people::evaluateBlobs | ( | Blob2 & | parent,
|  | Blob2 & | child,
|  | int | child_nr,
|  | PersonAttribs::Ptr | person_attribs )

inline

This is the evaluation function used to compare two blobs.

Parameters

  [in] | parent | pointer to the parent blob
  [in] | child | pointer to the child blob
  [in] | child_nr | the number of the child
  | person_attribs |

Returns
  it returns the distance error from the ideal parent child distance, it returns -1.0 if it goes over threshold

Todo
  what if child is second link in stead of first link (ea forearm in stead of elbow for arm)

Definition at line 202 of file label_tree.h.

References pcl::gpu::people::Blob2::label, and pcl::gpu::people::Blob2::mean.

## evaluateBlobVector() [1/2]

int pcl::gpu::people::evaluateBlobVector | ( | std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > & | sorted,
|  | unsigned int | parent_label,
|  | int | child_label,
|  | int | child_number )

inline

This function evaluates an entire row of parent segments for the best child segments.

Parameters

  [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

Returns
  zero if successful

Todo
  once we have good evaluation function reconsider best_value

Definition at line 226 of file label_tree.h.

References evaluateBlobs(), MAX_CHILD, NO_CHILD, noChildBlobVector(), and NUM_PARTS.

Referenced by buildRelations(), and buildRelations().

## evaluateBlobVector() [2/2]

int pcl::gpu::people::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 )

inline

This function evaluates an entire row of parent segments for the best child segments.

Parameters

  [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 |

Returns
  zero if successful

Todo
  once we have good evaluation function reconsider best_value

Definition at line 285 of file label_tree.h.

References evaluateBlobs(), MAX_CHILD, NO_CHILD, noChildBlobVector(), and NUM_PARTS.

## getLColor() [1/2]

pcl::RGB pcl::gpu::people::getLColor | ( | pcl::Label | l | ) |

gives a label and returns the color out of the colormap

## getLColor() [2/2]

pcl::RGB pcl::gpu::people::getLColor | ( | unsigned char | l | ) |

gives a label and returns the color out of the colormap

## hasThisLabelChildren()

bool pcl::gpu::people::hasThisLabelChildren | ( | std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > & | sorted,
|  | part_t | label,
|  | int | child_number )

inline

This function test if children were found for this label.

Returns
  True if this label has valid children

Definition at line 160 of file label_tree.h.

References LEAF, and NO_CHILD.

Referenced by buildRelations(), and buildRelations().

## leafBlobVector()

int pcl::gpu::people::leafBlobVector | ( | std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > & | sorted,
|  | int | label )

inline

This function sets the children of the leaf nodes to leaf, meaning that we came to the correct end.

Parameters

  [in] | sorted | The matrix of all blobs
  [in] | label | The label of which all children are to be set as leafs

Returns
  Zero if everything went well

Definition at line 122 of file label_tree.h.

References LEAF, and MAX_CHILD.

Referenced by buildRelations(), and buildRelations().

## noChildBlobVector()

int pcl::gpu::people::noChildBlobVector | ( | std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > & | sorted,
|  | int | label,
|  | int | child_number )

inline

This function sets the specific child of the vector to no child, meaning that there are no such children.

Parameters

  [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

Returns
  Zero if everything went well

Definition at line 143 of file label_tree.h.

References NO_CHILD.

Referenced by evaluateBlobVector(), and evaluateBlobVector().

## operator<<() [1/2]

std::ostream & pcl::gpu::people::operator<< | ( | std::ostream & | os,
|  | const Blob2 & | b )

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::gpu::people::Blob2::indices, pcl::PointIndices::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.

## operator<<() [2/2]

std::ostream & pcl::gpu::people::operator<< | ( | std::ostream & | os,
|  | const Tree2 & | t )

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::gpu::people::Tree2::indices, pcl::PointIndices::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.

## uploadColorMap()

PCL_EXPORTS void pcl::gpu::people::uploadColorMap | ( | DeviceArray< pcl::RGB > & | color_map | ) |

## Variable Documentation

## LUT_COLOR_LABEL

const unsigned char pcl::gpu::people::LUT_COLOR_LABEL[]

extern

Referenced by colorLMap().

## LUT_COLOR_LABEL_LENGTH

const int pcl::gpu::people::LUT_COLOR_LABEL_LENGTH

extern

Referenced by colorLMap().

## LUT_ideal_length

const float pcl::gpu::people::LUT_ideal_length[][4]

static

Initial value:
=
{
{ -1.0f, -1.0f, -1.0f, -1.0f},
{ 0.2f, -1.0f, -1.0f, -1.0f},
{ 0.2f, -1.0f, -1.0f, -1.0f},
{ 0.3f, -1.0f, -1.0f, -1.0f},
{ -1.0f, -1.0f, -1.0f, -1.0f},
{ 0.2f, -1.0f, -1.0f, -1.0f},
{ 0.2f, -1.0f, -1.0f, -1.0f},
{ 0.3f, -1.0f, -1.0f, -1.0f},
{ 0.3f, -1.0f, -1.0f, -1.0f},
{ 0.3f, -1.0f, -1.0f, -1.0f},
{ 0.15f, 0.15f, 0.2f, 0.2f},
{ 0.15f, -1.0f, -1.0f, -1.0f},
{ 0.1f, -1.0f, -1.0f, -1.0f},
{ 0.15f, -1.0f, -1.0f, -1.0f},
{ -1.0f, -1.0f, -1.0f, -1.0f},
{ 0.15f, -1.0f, -1.0f, -1.0f},
{ 0.1f, -1.0f, -1.0f, -1.0f},
{ 0.15f, -1.0f, -1.0f, -1.0f},
{ -1.0f, -1.0f, -1.0f, -1.0f},
{ 0.15f, -1.0f, -1.0f, -1.0f},
{ 0.15f, -1.0f, -1.0f, -1.0f},
{ -1.0f, -1.0f, -1.0f, -1.0f},
{ -1.0f, -1.0f, -1.0f, -1.0f},
{ 0.3f, 0.3f, -1.0f, -1.0f},
{ 0.3f, 0.3f, -1.0f, -1.0f}
}

This LUT contains the ideal length between this part and his children.

Definition at line 155 of file label_common.h.

Referenced by evaluateBlobs().

## LUT_max_length_offset

const float pcl::gpu::people::LUT_max_length_offset[][4]

static

Initial value:
=
{
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.3f, 0.15f, 0.15f, 0.15f},
{ 0.3f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f}
}

This LUT contains the max length between this part and his children.

Definition at line 187 of file label_common.h.

Referenced by evaluateBlobs().

## LUT_max_part_size

const float pcl::gpu::people::LUT_max_part_size[]

static

Initial value:
=
{
0.5f,
0.7f,
0.6f,
0.6f,
0.5f,
0.7f,
0.6f,
0.6f,
0.9f,
0.9f,
0.5f,
0.7f,
0.5f,
0.7f,
0.5f,
0.7f,
0.5f,
0.7f,
0.5f,
0.5f,
0.5f,
0.5f,
0.5f,
0.9f,
0.9f
}

This LUT contains the max primary eigenvalue for each part.

Todo
  read this from XML file

Definition at line 123 of file label_common.h.

## LUT_nr_children

const unsigned int pcl::gpu::people::LUT_nr_children[]

static

Initial value:
=
{
0,
1,
1,
1,
0,
1,
1,
1,
1,
1,
4,
1,
1,
1,
0,
1,
1,
1,
0,
1,
1,
0,
0,
2,
2
}

This LUT contains the number of children for each parent.

Definition at line 219 of file label_common.h.

Referenced by browseTree().