Structs

Public-facing structs for Edge Impulse C++ SDK.

ei_impulse_result_classification_t

struct ei_impulse_result_classification_t 

Holds the output of inference, anomaly results, and timing information.

ei_impulse_result_t holds the output of run_classifier(). If object detection is enabled, then the output results is a pointer to an array of bounding boxes of size bounding_boxes_count, as given by ei_impulse_result_bounding_box_t. Otherwise, results are stored as an array of classification scores, as given by ei_impulse_result_classification_t.

If anomaly detection is enabled (e.g. EI_CLASSIFIER_HAS_ANOMALY == 1), then the anomaly score will be stored as a floating point value in anomaly.

Timing information is stored in an ei_impulse_result_timing_t struct.

Source: classifier/ei_classifier_types.h

Example: standalone inferencing main.cpp

MemberDescription

public const char * label

Label of the detected object

public float value

Value of the detected object

ei_impulse_visual_ad_result_t

struct ei_impulse_visual_ad_result_t 

Holds the output of visual anomaly detection (FOMO-AD)

If visual anomaly detection is enabled (e.g. EI_CLASSIFIER_HAS_VISUAL_ANOMALY == 1), then the output results will be a pointer to an array of grid cells of size visual_ad_count, as given by ei_impulse_result_bounding_box_t.

The visual anomaly detection result is stored in visual_ad_result, which contains the mean and max values of the grid cells.

Source: classifier/ei_classifier_types.h

Example: standalone inferencing main.cpp

MemberDescription

public float mean_value

Mean value of the grid cells

public float max_value

Max value of the grid cells

ei_impulse_result_bounding_box_t

struct ei_impulse_result_bounding_box_t 

Holds information for a single bounding box.

If object detection is enabled (i.e. EI_CLASSIFIER_OBJECT_DETECTION == 1), then inference results will be one or more bounding boxes. The bounding boxes with the highest confidence scores (assuming those scores are equal to or greater than EI_CLASSIFIER_OBJECT_DETECTION_THRESHOLD), given by the value member, are returned from inference. The total number of bounding boxes returned will be at least EI_CLASSIFIER_OBJECT_DETECTION_COUNT. The exact number of bounding boxes is stored in bounding_boxes_count field of [ei_impulse_result_t]/C++ Inference SDK Library/structs/ei_impulse_result_t.md).

A bounding box is a rectangle that ideally surrounds the identified object. The (x, y) coordinates in the struct identify the top-left corner of the box. label is the predicted class with the highest confidence score. value is the confidence score between [0.0..1.0] of the given label.

Source: classifier/ei_classifier_types.h

Example: standalone inferencing main.cpp

MemberDescription

public const char * label

Pointer to a character array describing the associated class of the given bounding box. Taken from one of the elements of ei_classifier_inferencing_categories[].

public uint32_t x

x coordinate of the top-left corner of the bounding box

public uint32_t y

y coordinate of the top-left corner of the bounding box

public uint32_t width

Width of the bounding box

public uint32_t height

Height of the bounding box

public float value

Confidence score of the label describing the bounding box

ei_impulse_result_timing_t

struct ei_impulse_result_timing_t 

Holds timing information about the processing (DSP) and inference blocks.

Records timing information during the execution of the preprocessing (DSP) and inference blocks. Can be used to determine if inference will meet timing requirements on your particular platform.

Source: classifier/ei_classifier_types.h

Example: standalone inferencing main.cpp

MemberDescription

public int sampling

If using run_impulse() to perform sampling and inference, it is the amount of time (in milliseconds) it took to fetch raw samples. Not used for run_classifier().

public int dsp

Amount of time (in milliseconds) it took to run the preprocessing (DSP) block

public int classification

Amount of time (in milliseconds) it took to run the inference block

public int anomaly

Amount of time (in milliseconds) it took to run anomaly detection. Valid only if EI_CLASSIFIER_HAS_ANOMALY == 1.

public int64_t dsp_us

Amount of time (in milliseconds) it took to run the post-processing block