SL_BodyData Struct Reference

Structure containing data of a detected body/person such as its bounding_box, id and its 3D position. More...

Data Fields

int id
 Body/person identification number. More...
 
unsigned char unique_object_id [37]
 Unique id to help identify and track AI detections. More...
 
enum SL_OBJECT_TRACKING_STATE tracking_state
 Body/person tracking state.
 
enum SL_OBJECT_ACTION_STATE action_state
 Body/person action state.
 
struct SL_Vector3 position
 Body/person 3D centroid. More...
 
struct SL_Vector3 velocity
 Body/person 3D velocity. More...
 
float position_covariance [6]
 Covariance matrix of the 3D position. More...
 
float confidence
 Detection confidence value of the body/person. More...
 
int * mask
 Mask defining which pixels which belong to the body/person (in bounding_box_2d and set to 255) and those of the background (set to 0). More...
 
struct SL_Vector2 bounding_box_2d [4]
 2D bounding box of the body/person represented as four 2D points starting at the top left corner and rotation clockwise. More...
 
struct SL_Vector3 head_position
 3D centroid of the head of the body/person. More...
 
struct SL_Vector3 dimensions
 3D body/person dimensions: width, height, length. More...
 
struct SL_Vector3 bounding_box [8]
 3D bounding box of the body/person represented as eight 3D points. More...
 
struct SL_Vector3 head_bounding_box [8]
 3D bounding box of the head of the body/person represented as eight 3D points. More...
 
struct SL_Vector2 head_bounding_box_2d [4]
 2D bounding box of the head of the body/person represented as four 2D points starting at the top left corner and rotation clockwise. More...
 
struct SL_Vector2 keypoint_2d [38]
 Set of useful points representing the human body in 2D. More...
 
struct SL_Vector3 keypoint [38]
 Set of useful points representing the human body in 3D. More...
 
float keypoint_confidence [38]
 Array of detection confidences for each keypoint. More...
 
float keypoint_covariances [38][6]
 Array of detection covariance for each keypoint. More...
 
struct SL_Vector3 local_position_per_joint [38]
 Array of local position (position of the child keypoint with respect to its parent expressed in its parent coordinate frame) for each keypoint. More...
 
struct SL_Quaternion local_orientation_per_joint [38]
 Array of local orientation for each keypoint. More...
 
struct SL_Quaternion global_root_orientation
 Global root orientation of the skeleton. More...
 

Detailed Description

Structure containing data of a detected body/person such as its bounding_box, id and its 3D position.

Field Documentation

◆ id

int SL_BodyData::id

Body/person identification number.

It is used as a reference when tracking the body through the frames.

Note
Only available if SL_BodyTrackingParameters.enable_tracking is activated.
Otherwise, it will be set to -1.

◆ unique_object_id

unsigned char SL_BodyData::unique_object_id[37]

Unique id to help identify and track AI detections.

It can be either generated externally, or by using sl_generate_unique_id() or left empty.

◆ position

struct SL_Vector3 SL_BodyData::position

Body/person 3D centroid.

Note
It is defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame.

◆ velocity

struct SL_Vector3 SL_BodyData::velocity

Body/person 3D velocity.

Note
It is defined in SL_InitParameters.coordinate_unit / s and expressed in SL_RuntimeParameters.reference_frame.

◆ position_covariance

float SL_BodyData::position_covariance[6]

Covariance matrix of the 3D position.

Note
It is represented by its upper triangular matrix value
= [p0, p1, p2]
[p1, p3, p4]
[p2, p4, p5]
where pi is position_covariance[i]

◆ confidence

float SL_BodyData::confidence

Detection confidence value of the body/person.

From 0 to 100, a low value means the body might not be localized perfectly.

◆ mask

int* SL_BodyData::mask

Mask defining which pixels which belong to the body/person (in bounding_box_2d and set to 255) and those of the background (set to 0).

Warning
The mask information is only available for tracked bodies (SL_OBJECT_TRACKING_STATE_OK) that have a valid depth.
Otherwise, the mask will not be initialized.

◆ bounding_box_2d

struct SL_Vector2 SL_BodyData::bounding_box_2d[4]

2D bounding box of the body/person represented as four 2D points starting at the top left corner and rotation clockwise.

Note
Expressed in pixels on the original image resolution, [0, 0] is the top left corner.
A ------ B
| Object |
D ------ C

◆ head_position

struct SL_Vector3 SL_BodyData::head_position

3D centroid of the head of the body/person.

Note
It is defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame.

◆ dimensions

struct SL_Vector3 SL_BodyData::dimensions

3D body/person dimensions: width, height, length.

Note
It is defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame.

◆ bounding_box

struct SL_Vector3 SL_BodyData::bounding_box[8]

3D bounding box of the body/person represented as eight 3D points.

Note
It is defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame.
1 ------ 2
/ /|
0 ------ 3 |
| Object | 6
| |/
4 ------ 7

◆ head_bounding_box

struct SL_Vector3 SL_BodyData::head_bounding_box[8]

3D bounding box of the head of the body/person represented as eight 3D points.

Note
It is defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame.

◆ head_bounding_box_2d

struct SL_Vector2 SL_BodyData::head_bounding_box_2d[4]

2D bounding box of the head of the body/person represented as four 2D points starting at the top left corner and rotation clockwise.

Note
Expressed in pixels on the original image resolution, [0, 0] is the top left corner.

◆ keypoint_2d

struct SL_Vector2 SL_BodyData::keypoint_2d[38]

Set of useful points representing the human body in 2D.

Note
Expressed in pixels on the original image resolution, [0, 0] is the top left corner.
Warning
In some cases, eg. body partially out of the image, some keypoints can not be detected. They will have negatives coordinates.

◆ keypoint

struct SL_Vector3 SL_BodyData::keypoint[38]

Set of useful points representing the human body in 3D.

Note
They are defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame.
Warning
In some cases, eg. body partially out of the image or missing depth data, some keypoints can not be detected. They will have non finite values.

◆ keypoint_confidence

float SL_BodyData::keypoint_confidence[38]

Array of detection confidences for each keypoint.

Note
They can not be lower than the SL_BodyTrackingRuntimeParameters.detection_confidence_threshold.
Warning
In some cases, eg. body partially out of the image or missing depth data, some keypoints can not be detected. They will have non finite values.

◆ keypoint_covariances

float SL_BodyData::keypoint_covariances[38][6]

Array of detection covariance for each keypoint.

Warning
In some cases, eg. body partially out of the image or missing depth data, some keypoints can not be detected. Their covariances will be 0.

◆ local_position_per_joint

struct SL_Vector3 SL_BodyData::local_position_per_joint[38]

Array of local position (position of the child keypoint with respect to its parent expressed in its parent coordinate frame) for each keypoint.

Note
They are expressed in SL_REFERENCE_FRAME_CAMERA or SL_REFERENCE_FRAME_WORLD.
Warning
Not available with SL_BODY_FORMAT_BODY_18.

◆ local_orientation_per_joint

struct SL_Quaternion SL_BodyData::local_orientation_per_joint[38]

Array of local orientation for each keypoint.

Note
The orientation is represented by a SL_Quaternion (SL_Quaternion q = SL_Quaternion(qx, qy, qz, qw);)
Warning
Not available with SL_BODY_FORMAT_BODY_18.

◆ global_root_orientation

struct SL_Quaternion SL_BodyData::global_root_orientation

Global root orientation of the skeleton.

The orientation is also represented by a quaternion with the same format as local_orientation_per_joint.

Note
The global root position is already accessible in keypoint attribute by using the root index of a given SL_BODY_FORMAT.
Warning
Not available with SL_BODY_FORMAT_BODY_18.