ObjectDetectionParameters Struct Reference

Structure containing a set of parameters for the object detection module. More...

Attributes

uint instanceModuleId
 Id of the module instance. More...
 
bool imageSync
 Whether the object detection is synchronized to the image or runs in a separate thread. More...
 
bool enableObjectTracking
 Whether the object detection system includes object tracking capabilities across a sequence of images. More...
 
bool enableSegmentation
 Whether the object masks will be computed. More...
 
sl.OBJECT_DETECTION_MODEL detectionModel
 sl.OBJECT_DETECTION_MODEL to use. More...
 
float maxRange
 Upper depth range for detections. More...
 
BatchParameters batchParameters
 Batching system parameters. More...
 
OBJECT_FILTERING_MODE filteringMode
 Filtering mode that should be applied to raw detections. More...
 
float predictionTimeout_s
 Prediction duration of the ZED SDK when an object is not detected anymore before switching its state to sl.OBJECT_TRACKING_STATE.SEARCHING. More...
 
bool allowReducedPrecisionInference
 Whether to allow inference to run at a lower precision to improve runtime and memory usage. More...
 

Detailed Description

Structure containing a set of parameters for the object detection module.

The default constructor sets all parameters to their default settings.

Note
Parameters can be user adjusted.

Variables

◆ instanceModuleId

uint instanceModuleId

Id of the module instance.

This is used to identify which object detection module instance is used.

◆ imageSync

bool imageSync

Whether the object detection is synchronized to the image or runs in a separate thread.

If set to true, the detection is run on every sl.Camera.Grab().
Otherwise, the thread runs at its own speed, which can lead to new detection once in a while.
Default: true

◆ enableObjectTracking

bool enableObjectTracking

Whether the object detection system includes object tracking capabilities across a sequence of images.

Default: true

◆ enableSegmentation

bool enableSegmentation

Whether the object masks will be computed.

Default: false

◆ detectionModel

◆ maxRange

float maxRange

Upper depth range for detections.

Default: -1 (value set in sl.InitParameters.depthMaximumDistance)

Note
The value cannot be greater than sl.InitParameters.depthMaximumDistance and its unit is defined in sl.InitParameters.coordinateUnits.

◆ batchParameters

BatchParameters batchParameters

Batching system parameters.

Batching system (introduced in 3.5) performs short-term re-identification with deep-learning and trajectories filtering.
sl.BatchParameters.enable must to be true to use this feature (by default disabled).

◆ filteringMode

OBJECT_FILTERING_MODE filteringMode

Filtering mode that should be applied to raw detections.

Default: sl.OBJECT_FILTERING_MODE.NMS3D (same behavior as previous ZED SDK version)

Note
This parameter is only used in detection model sl.OBJECT_DETECTION_MODEL.MULTI_CLASS_BOX_XXX and sl.OBJECT_DETECTION_MODEL.CUSTOM_BOX_OBJECTS.
For custom object, it is recommended to use sl.OBJECT_FILTERING_MODE.NMS3D_PER_CLASS or sl.OBJECT_FILTERING_MODE.NONE.
In this case, you might need to add your own NMS filter before ingesting the boxes into the object detection module.

◆ predictionTimeout_s

float predictionTimeout_s

Prediction duration of the ZED SDK when an object is not detected anymore before switching its state to sl.OBJECT_TRACKING_STATE.SEARCHING.

It prevents the jittering of the object state when there is a short misdetection.
The user can define their own prediction time duration.
Default: 0.2f

Note
During this time, the object will have sl.OBJECT_TRACKING_STATE.OK state even if it is not detected.
The duration is expressed in seconds.
Warning
predictionTimeout_s will be clamped to 1 second as the prediction is getting worse with time.
Setting this parameter to 0 disables the ZED SDK predictions.

◆ allowReducedPrecisionInference

bool allowReducedPrecisionInference

Whether to allow inference to run at a lower precision to improve runtime and memory usage.

It might increase the initial optimization time and could include downloading calibration data or calibration cache and slightly reduce the accuracy.

Note
The fp16 is automatically enabled if the GPU is compatible and provides a speed up of almost x2 and reduce memory usage by almost half, no precision loss.
This setting allow int8 precision which can speed up by another x2 factor (compared to fp16, or x4 compared to fp32) and half the fp16 memory usage, however some accuracy could be lost.
The accuracy loss should not exceed 1-2% on the compatible models.
The current compatible models are all sl.AI_MODELS.HUMAN_BODY_XXXX.