BodyData Class Reference

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

Functions

int id (self)
 Body/person identification number. More...
 
str unique_object_id (self)
 Unique id to help identify and track AI detections. More...
 
OBJECT_TRACKING_STATE tracking_state (self)
 Body/person tracking state.
 
OBJECT_ACTION_STATE action_state (self)
 Body/person action state.
 
np.array[float] position (self)
 Body/person 3D centroid. More...
 
np.array[float] velocity (self)
 Body/person 3D velocity. More...
 
np.array[float][float] bounding_box (self)
 3D bounding box of the body/person represented as eight 3D points. More...
 
np.array[int][int] bounding_box_2d (self)
 2D bounding box of the body/person represented as four 2D points starting at the top left corner and rotation clockwise. More...
 
float confidence (self)
 Detection confidence value of the body/person. More...
 
np.array[float][float] keypoints_covariance (self)
 NumPy array of detection covariance for each keypoint. More...
 
np.array[float] position_covariance (self)
 Covariance matrix of the 3D position. More...
 
Mat mask (self)
 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...
 
np.array[float] dimensions (self)
 3D body/person dimensions: width, height, length. More...
 
np.array[float][float] keypoint (self)
 Set of useful points representing the human body in 3D. More...
 
np.array[int][int] keypoint_2d (self)
 Set of useful points representing the human body in 2D. More...
 
np.array[float][float] head_bounding_box (self)
 3D bounding box of the head of the body/person represented as eight 3D points. More...
 
np.array[int][int] head_bounding_box_2d (self)
 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...
 
np.array[float] head_position (self)
 3D centroid of the head of the body/person. More...
 
np.array[float] keypoint_confidence (self)
 NumPy array of detection confidences for each keypoint. More...
 
np.array[float][float] local_position_per_joint (self)
 NumPy array of local position (position of the child keypoint with respect to its parent expressed in its parent coordinate frame) for each keypoint. More...
 
np.array[float][float] local_orientation_per_joint (self)
 NumPy array of local orientation for each keypoint. More...
 
np.array[float] global_root_orientation (self)
 Global root orientation of the skeleton (NumPy array). More...
 

Detailed Description

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

Functions

◆ id()

int id (   self)

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()

str unique_object_id (   self)

Unique id to help identify and track AI detections.

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

◆ position()

np.array[float] position (   self)

Body/person 3D centroid.

Note
It is defined in sl.InitParameters.coordinate_units and expressed in sl.RuntimeParameters.measure3D_reference_frame.

◆ velocity()

np.array[float] velocity (   self)

Body/person 3D velocity.

Note
It is defined in sl.InitParameters.coordinate_units / s and expressed in sl.RuntimeParameters.measure3D_reference_frame.

◆ bounding_box()

np.array[float][float] bounding_box (   self)

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

Note
It is defined in sl.InitParameters.coordinate_units and expressed in sl.RuntimeParameters.measure3D_reference_frame.
1 ------ 2
/ /|
0 ------ 3 |
| Object | 6
| |/
4 ------ 7

◆ bounding_box_2d()

np.array[int][int] bounding_box_2d (   self)

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

◆ confidence()

float confidence (   self)

Detection confidence value of the body/person.

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

◆ keypoints_covariance()

np.array[float][float] keypoints_covariance (   self)

NumPy 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.

◆ position_covariance()

np.array[float] position_covariance (   self)

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]

◆ mask()

Mat mask (   self)

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 (mask.is_init() == False).

◆ dimensions()

np.array[float] dimensions (   self)

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

Note
It is defined in sl.InitParameters.coordinate_units and expressed in sl.RuntimeParameters.measure3D_reference_frame.

◆ keypoint()

np.array[float][float] keypoint (   self)

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

Note
They are defined in sl.InitParameters.coordinate_units and expressed in sl.RuntimeParameters.measure3D_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_2d()

np.array[int][int] keypoint_2d (   self)

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.

◆ head_bounding_box()

np.array[float][float] head_bounding_box (   self)

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

Note
It is defined in sl.InitParameters.coordinate_units and expressed in sl.RuntimeParameters.measure3D_reference_frame.

◆ head_bounding_box_2d()

np.array[int][int] head_bounding_box_2d (   self)

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.

◆ head_position()

np.array[float] head_position (   self)

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

Note
It is defined in sl.InitParameters.coordinate_units and expressed in sl.RuntimeParameters.measure3D_reference_frame.

◆ keypoint_confidence()

np.array[float] keypoint_confidence (   self)

NumPy 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.

◆ local_position_per_joint()

np.array[float][float] local_position_per_joint (   self)

NumPy 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()

np.array[float][float] local_orientation_per_joint (   self)

NumPy array of local orientation for each keypoint.

Note
The orientation is represented by a quaternion.
Warning
Not available with sl.BODY_FORMAT.BODY_18.

◆ global_root_orientation()

np.array[float] global_root_orientation (   self)

Global root orientation of the skeleton (NumPy array).

The orientation is also represented by a quaternion.

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.