model_metadata.h
The following list gives information about the most important
#define
macros found in model-parameters/model_metadata.h. Note that not all macros are listed--just the ones you'll probably care about.Important! model_metadata.h is automatically generated by the Edge Impulse Studio. You should not modify it.
Number of inputs (words) to the machine learning model block. Should match the number of outputs of the preprocessing (DSP) block. For example, if the DSP block outputs a 320x320 image with 1 word for each color (RGB), then
EI_CLASSIFIER_NN_INPUT_FRAME_SIZE
will be 320 * 320 * 3 = 307200. The trained machine learning model will expect this number of inputs.Number of sample frames expected by the DSP block. For example, if your window size is set to 2000 ms with a 100 Hz sampling rate,
EI_CLASSIFIER_RAW_SAMPLE_COUNT
will equal 2 s * 100 Hz = 200 sample frames. For image data, this is the total number of pixels in the input image, which is equal to EI_CLASSIFIER_INPUT_WIDTH * EI_CLASSIFIER_INPUT_HEIGHT
.Number of numerical samples in each frame. For example, if you are using a 3-axis accelerometer,
EI_CLASSIFIER_RAW_SAMPLES_PER_FRAME
is 3.Total number of values expected by the DSP block input. It is equal to
EI_CLASSIFIER_RAW_SAMPLE_COUNT * EI_CLASSIFIER_RAW_SAMPLES_PER_FRAME
.Image data will be resized so that the width matches this amount, using the Resize mode method set in the Edge Impulse Studio. Set to 0 for non-image data.
Image data will be resized so that the height matches this amount, using the Resize mode method set in the Edge Impulse Studio. Set to 0 for non-image data.
Number of image frames used as input to an impulse. Set to 1 for image classification and object detection tasks. Set to 0 for non-image data.
Number of milliseconds between sampling the sensor. For non-image data, this is equal to
1000 / EI_CLASSIFIER_FREQUENCY
. Set to 1 for image data.Number of labels in
ei_classifier_inferencing_categories[]
, which is the number of classes that can be predicted by the classification model.Set to 1 if there is an anomaly block in the impulse, 0 otherwise.
Sampling frequency of the sensor(s). For non-image data, this is equal to
1000 / EI_CLASSIFIER_INTERVAL_MS
. Set to 0 for image data.Set to 1 if model-parameters/model_variables.h is present in the library, 0 otherwise.
Set to 1 if the impulse is configured for object detection, 0 otherwise.
If
EI_CLASSIFIER_OBJECT_DETECTION
is set to 1, this macro is defined. Maximum number of objects that will be detected in each input image.If
EI_CLASSIFIER_OBJECT_DETECTION
is set to 1, this macro is defined. Only bounding boxes with confidence scores equal to or above this value will be returned from inference.If
EI_CLASSIFIER_OBJECT_DETECTION
is set to 1, this macro is defined. Set to 1 if constrained object detection model is used, 0 otherwise.The inferencing engine to be used. This can have the following values. Default is
EI_CLASSIFIER_TFLITE
, which uses TensorFlow Lite for Microcontrollers (TFLM) as the inference engine.EI_CLASSIFIER_NONE
EI_CLASSIFIER_UTENSOR
EI_CLASSIFIER_TFLITE
EI_CLASSIFIER_CUBEAI
EI_CLASSIFIER_TFLITE_FULL
EI_CLASSIFIER_TENSAIFLOW
EI_CLASSIFIER_TENSORRT
Number of slices to gather per window. For example, if you want
run_classifier_continuous()
to be called every 0.25 s and you have a window size of 1 s, EI_CLASSIFIER_SLICES_PER_MODEL_WINDOW
should be set to 4. It is set to 4 by default. Note that you can override this value in your main code if you #define
this macro prior to including the SDK. For example:#define EI_CLASSIFIER_SLICES_PER_MODEL_WINDOW 3
#include "edge-impulse-sdk/classifier/ei_run_classifier.h"
See this guide to learn more about continuous sampling. You can see an example here that shows how to set the number of slices per window to something other than 4 prior to including the Edge Impulse C++ SDK library.
Number of samples in a slice. Equal to
EI_CLASSIFIER_RAW_SAMPLE_COUNT / EI_CLASSIFIER_SLICES_PER_MODEL_WINDOW
. For run_classifier_continouous()
applications, you can usually set signal.total_length
to EI_CLASSIFIER_SLICE_SIZE
. See this example.This can be defined and set to 1 by the user if using full TensorFlow Lite. Note that setting this to 1 while
EI_CLASSIFIER_INFERENCING_ENGINE
is set to EI_CLASSIFIER_TFLITE
will force EI_CLASSIFIER_INFERENCING_ENGINE
to be set to EI_CLASSIFIER_TFLITE_FULL
. Not compatible with EON Compiler.Last modified 1yr ago