CustomBoxObjectData Class Reference

Class that store externally detected objects. More...

Functions

 CustomBoxObjectData ()
 Default constructor. More...
 

Attributes

String unique_object_id
 Unique id to help identify and track AI detections. More...
 
std::vector< sl::uint2bounding_box_2d
 2D bounding box of the object represented as four 2D points starting at the top left corner and rotation clockwise. More...
 
int label
 Object label. More...
 
float probability
 Detection confidence value of the object. More...
 
bool is_grounded = true
 Provide hypothesis about the object movements (degrees of freedom or DoF) to improve the object tracking. More...
 
bool is_static = false
 Provide hypothesis about the object staticity to improve the object tracking. More...
 
float tracking_timeout = -1.F
 Maximum tracking time threshold (in seconds) before dropping the tracked object when unseen for this amount of time. By default, let the tracker decide internally based on the internal sub class of the tracked object. More...
 
float tracking_max_dist = -1.F
 Maximum tracking distance threshold (in meters) before dropping the tracked object when unseen for this amount of meters. By default, do not discard tracked object based on distance. Only valid for static object. More...
 
float max_box_width_meters = -1.F
 Maximum allowed 3D width. More...
 
float min_box_width_meters = -1.F
 Minimum allowed 3D width. More...
 
float max_box_height_meters = -1.F
 Maximum allowed 3D height. More...
 
float min_box_height_meters = -1.F
 Minimum allowed 3D height. More...
 
float max_allowed_acceleration = std::numeric_limits<float>::quiet_NaN()
 Expected maximum acceleration of the tracked object. Determines how the ZED SDK interprets object acceleration, affecting tracking behavior and predictions. Takes precedence over the runtime parameter, if also set. By default, let the ZED SDK interpret the object acceleration. Unit is m/s^2. More...
 
float velocity_smoothing_factor = -1.F
 Control the smoothing of the velocity estimation. Values between 0.0 and 1.0. More...
 
float min_velocity_threshold = -1.F
 Threshold to force an object's velocity to zero. If the calculated speed (m/s) is below this threshold, the object is considered static. This helps eliminate drift on stationary objects. A negative value (e.g. -1) lets the ZED SDK interpret the minimum velocity threshold. More...
 
float prediction_timeout_s = -1.F
 Duration to keep predicting a track's position after occlusion. When an object is no longer visible (occluded or out of frame), the tracker will predict its position for this duration before deleting the track. More...
 
float min_confirmation_time_s = -1.F
 Minimum confirmation time required to validate a track. The minimum duration (in seconds) an object must be continuously detected before it is reported as a valid track. Helps filter out spurious false positives that appear only briefly. A negative value (e.g. -1) lets the ZED SDK interpret the minimum confirmation time. Default: -1. More...
 

Detailed Description

Class that store externally detected objects.

The objects can be ingested with sl::Camera.ingestCustomBoxObjects() to extract 3D and tracking information over time.

Constructor and Destructor

◆ CustomBoxObjectData()

Default constructor.

Variables

◆ unique_object_id

String unique_object_id

Unique id to help identify and track AI detections.

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

◆ bounding_box_2d

std::vector<sl::uint2> bounding_box_2d

2D bounding box of the object 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

◆ label

int label

Object label.

This information is passed-through and can be used to improve object tracking.

Note
It should define an object class. This means that any similar object (in classification) should share the same label number.

◆ probability

float probability

Detection confidence value of the object.

Note
The value should be in [0-1].
It can be used to improve the object tracking.

◆ is_grounded

bool is_grounded = true

Provide hypothesis about the object movements (degrees of freedom or DoF) to improve the object tracking.

  • true: 2 DoF projected alongside the floor plane. Case for object standing on the ground such as person, vehicle, etc.
    The projection implies that the objects cannot be superposed on multiple horizontal levels.
  • false: 6 DoF (full 3D movements are allowed).
Note
This parameter cannot be changed for a given object tracking id.
It is advised to set it by labels to avoid issues.

◆ is_static

bool is_static = false

Provide hypothesis about the object staticity to improve the object tracking.

  • true: the object will be assumed to never move nor being moved.
  • false: the object will be assumed to be able to move or being moved.

◆ tracking_timeout

float tracking_timeout = -1.F

Maximum tracking time threshold (in seconds) before dropping the tracked object when unseen for this amount of time. By default, let the tracker decide internally based on the internal sub class of the tracked object.

◆ tracking_max_dist

float tracking_max_dist = -1.F

Maximum tracking distance threshold (in meters) before dropping the tracked object when unseen for this amount of meters. By default, do not discard tracked object based on distance. Only valid for static object.

◆ max_box_width_meters

float max_box_width_meters = -1.F

Maximum allowed 3D width.

Any prediction bigger than that will be either discarded (if object is tracked and in SEARCHING state) or clamped. Default: -1 (no filtering)

◆ min_box_width_meters

float min_box_width_meters = -1.F

Minimum allowed 3D width.

Any prediction smaller than that will be either discarded (if object is tracked and in SEARCHING state) or clamped. Default: -1 (no filtering)

◆ max_box_height_meters

float max_box_height_meters = -1.F

Maximum allowed 3D height.

Any prediction bigger than that will be either discarded (if object is tracked and in SEARCHING state) or clamped. Default: -1 (no filtering)

◆ min_box_height_meters

float min_box_height_meters = -1.F

Minimum allowed 3D height.

Any prediction smaller than that will be either discarded (if object is tracked and in SEARCHING state) or clamped. Default: -1 (no filtering)

◆ max_allowed_acceleration

float max_allowed_acceleration = std::numeric_limits<float>::quiet_NaN()

Expected maximum acceleration of the tracked object. Determines how the ZED SDK interprets object acceleration, affecting tracking behavior and predictions. Takes precedence over the runtime parameter, if also set. By default, let the ZED SDK interpret the object acceleration. Unit is m/s^2.

◆ velocity_smoothing_factor

float velocity_smoothing_factor = -1.F

Control the smoothing of the velocity estimation. Values between 0.0 and 1.0.

  • High value (closer to 1.0): Very smooth, but may lag behind rapid changes.
  • Low value (closer to 0.0): Very responsive to velocity changes, but may be jittery.
  • 0.5: ZED SDK base tuning. Balanced smoothing and responsiveness. A negative value (e.g. -1) lets the ZED SDK interpret the velocity smoothing factor. Default: -1

◆ min_velocity_threshold

float min_velocity_threshold = -1.F

Threshold to force an object's velocity to zero. If the calculated speed (m/s) is below this threshold, the object is considered static. This helps eliminate drift on stationary objects. A negative value (e.g. -1) lets the ZED SDK interpret the minimum velocity threshold.

◆ prediction_timeout_s

float prediction_timeout_s = -1.F

Duration to keep predicting a track's position after occlusion. When an object is no longer visible (occluded or out of frame), the tracker will predict its position for this duration before deleting the track.

  • Short (e.g., 0.2s): Prevents "ghost" objects but may break tracks during short occlusions.
  • Long (e.g., 2.0s): Maintains ID during long occlusions but may report objects that are gone. A negative value (e.g. -1) lets the ZED SDK interpret the prediction timeout. Default: -1

◆ min_confirmation_time_s

float min_confirmation_time_s = -1.F

Minimum confirmation time required to validate a track. The minimum duration (in seconds) an object must be continuously detected before it is reported as a valid track. Helps filter out spurious false positives that appear only briefly. A negative value (e.g. -1) lets the ZED SDK interpret the minimum confirmation time. Default: -1.