/* Generated by Edge Impulse * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ #ifndef _EI_CLASSIFIER_MODEL_METADATA_H_ #define _EI_CLASSIFIER_MODEL_METADATA_H_ #include #include #define EI_CLASSIFIER_NONE 255 #define EI_CLASSIFIER_UTENSOR 1 #define EI_CLASSIFIER_TFLITE 2 #define EI_CLASSIFIER_CUBEAI 3 #define EI_CLASSIFIER_TFLITE_FULL 4 #define EI_CLASSIFIER_TENSAIFLOW 5 #define EI_CLASSIFIER_TENSORRT 6 #define EI_CLASSIFIER_DRPAI 7 #define EI_CLASSIFIER_TFLITE_TIDL 8 #define EI_CLASSIFIER_AKIDA 9 #define EI_CLASSIFIER_SYNTIANT 10 #define EI_CLASSIFIER_ONNX_TIDL 11 #define EI_CLASSIFIER_MEMRYX 12 #define EI_CLASSIFIER_SENSOR_UNKNOWN -1 #define EI_CLASSIFIER_SENSOR_MICROPHONE 1 #define EI_CLASSIFIER_SENSOR_ACCELEROMETER 2 #define EI_CLASSIFIER_SENSOR_CAMERA 3 #define EI_CLASSIFIER_SENSOR_9DOF 4 #define EI_CLASSIFIER_SENSOR_ENVIRONMENTAL 5 #define EI_CLASSIFIER_SENSOR_FUSION 6 // These must match the enum values in TensorFlow Lite's "TfLiteType" #define EI_CLASSIFIER_DATATYPE_FLOAT32 1 #define EI_CLASSIFIER_DATATYPE_UINT8 3 #define EI_CLASSIFIER_DATATYPE_INT8 9 #define EI_CLASSIFIER_PROJECT_ID 116394 #define EI_CLASSIFIER_PROJECT_OWNER "Louis Moreau" #define EI_CLASSIFIER_PROJECT_NAME "Face detection - FOMO - bigger dataset" #define EI_CLASSIFIER_PROJECT_DEPLOY_VERSION 106 #define EI_CLASSIFIER_NN_INPUT_FRAME_SIZE 27648 #define EI_CLASSIFIER_RAW_SAMPLE_COUNT 9216 #define EI_CLASSIFIER_RAW_SAMPLES_PER_FRAME 1 #define EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE (EI_CLASSIFIER_RAW_SAMPLE_COUNT * EI_CLASSIFIER_RAW_SAMPLES_PER_FRAME) #define EI_CLASSIFIER_INPUT_WIDTH 96 #define EI_CLASSIFIER_INPUT_HEIGHT 96 #define EI_CLASSIFIER_INPUT_FRAMES 1 #define EI_CLASSIFIER_NN_OUTPUT_COUNT 288 #define EI_CLASSIFIER_INTERVAL_MS 1 #define EI_CLASSIFIER_LABEL_COUNT 1 #define EI_CLASSIFIER_HAS_ANOMALY 0 #define EI_CLASSIFIER_FREQUENCY 0 #define EI_CLASSIFIER_HAS_MODEL_VARIABLES 1 #define EI_CLASSIFIER_OBJECT_DETECTION 1 #define EI_CLASSIFIER_OBJECT_DETECTION_LAST_LAYER EI_CLASSIFIER_LAST_LAYER_FOMO #warning 'EI_CLASSFIER_OBJECT_DETECTION_COUNT' is used for the guaranteed minimum number of objects detected. To get all objects during inference use 'bounding_boxes_count' from the 'ei_impulse_result_t' struct instead. #define EI_CLASSIFIER_OBJECT_DETECTION_COUNT 10 #define EI_CLASSIFIER_OBJECT_DETECTION_THRESHOLD 0.5 #define EI_CLASSIFIER_TFLITE_OUTPUT_DATA_TENSOR 0 #define EI_CLASSIFIER_TFLITE_OUTPUT_LABELS_TENSOR 1 #define EI_CLASSIFIER_TFLITE_OUTPUT_SCORE_TENSOR 2 #define EI_CLASSIFIER_TFLITE_INPUT_DATATYPE EI_CLASSIFIER_DATATYPE_FLOAT32 #define EI_CLASSIFIER_TFLITE_OUTPUT_DATATYPE EI_CLASSIFIER_DATATYPE_FLOAT32 #define EI_CLASSIFIER_INFERENCING_ENGINE EI_CLASSIFIER_TFLITE #define EI_CLASSIFIER_QUANTIZATION_ENABLED 0 #define EI_CLASSIFIER_COMPILED 0 #define EI_CLASSIFIER_HAS_TFLITE_OPS_RESOLVER 0 #define EI_CLASSIFIER_LOAD_IMAGE_SCALING 0 #define EI_CLASSIFIER_HAS_FFT_INFO 1 #define EI_CLASSIFIER_LOAD_FFT_32 0 #define EI_CLASSIFIER_LOAD_FFT_64 0 #define EI_CLASSIFIER_LOAD_FFT_128 0 #define EI_CLASSIFIER_LOAD_FFT_256 0 #define EI_CLASSIFIER_LOAD_FFT_512 0 #define EI_CLASSIFIER_LOAD_FFT_1024 0 #define EI_CLASSIFIER_LOAD_FFT_2048 0 #define EI_CLASSIFIER_LOAD_FFT_4096 0 #define EI_DSP_PARAMS_GENERATED 1 #define EI_CLASSIFIER_SENSOR EI_CLASSIFIER_SENSOR_CAMERA #define EI_CLASSIFIER_FUSION_AXES_STRING "image" #define EI_CLASSIFIER_CALIBRATION_ENABLED 0 #ifndef EI_CLASSIFIER_SLICES_PER_MODEL_WINDOW #define EI_CLASSIFIER_SLICES_PER_MODEL_WINDOW 4 #endif // EI_CLASSIFIER_SLICES_PER_MODEL_WINDOW #define EI_CLASSIFIER_SLICE_SIZE (EI_CLASSIFIER_RAW_SAMPLE_COUNT / EI_CLASSIFIER_SLICES_PER_MODEL_WINDOW) #if ((EI_CLASSIFIER_INFERENCING_ENGINE == EI_CLASSIFIER_TFLITE) || (EI_CLASSIFIER_INFERENCING_ENGINE == EI_CLASSIFIER_DRPAI)) && EI_CLASSIFIER_USE_FULL_TFLITE == 1 #if EI_CLASSIFIER_INFERENCING_ENGINE == EI_CLASSIFIER_TFLITE #undef EI_CLASSIFIER_INFERENCING_ENGINE #define EI_CLASSIFIER_INFERENCING_ENGINE EI_CLASSIFIER_TFLITE_FULL #endif #undef EI_CLASSIFIER_HAS_TFLITE_OPS_RESOLVER #define EI_CLASSIFIER_HAS_TFLITE_OPS_RESOLVER 0 #if EI_CLASSIFIER_COMPILED == 1 #error "Cannot use full TensorFlow Lite with EON" #endif #endif // ((EI_CLASSIFIER_INFERENCING_ENGINE == EI_CLASSIFIER_TFLITE) || (EI_CLASSIFIER_INFERENCING_ENGINE == EI_CLASSIFIER_DRPAI)) && EI_CLASSIFIER_USE_FULL_TFLITE == 1 typedef struct { uint32_t block_id; uint16_t implementation_version; int axes; float scale_axes; bool average; bool minimum; bool maximum; bool rms; bool stdev; bool skewness; bool kurtosis; } ei_dsp_config_flatten_t; typedef struct { uint32_t block_id; uint16_t implementation_version; int axes; const char * channels; } ei_dsp_config_image_t; typedef struct { uint32_t block_id; uint16_t implementation_version; int axes; int num_cepstral; float frame_length; float frame_stride; int num_filters; int fft_length; int win_size; int low_frequency; int high_frequency; float pre_cof; int pre_shift; } ei_dsp_config_mfcc_t; typedef struct { uint32_t block_id; uint16_t implementation_version; int axes; float frame_length; float frame_stride; int num_filters; int fft_length; int low_frequency; int high_frequency; int win_size; int noise_floor_db; } ei_dsp_config_mfe_t; typedef struct { uint32_t block_id; uint16_t implementation_version; int axes; float scale_axes; } ei_dsp_config_raw_t; typedef struct { uint32_t block_id; uint16_t implementation_version; int axes; float scale_axes; int input_decimation_ratio; const char * filter_type; float filter_cutoff; int filter_order; const char * analysis_type; int fft_length; int spectral_peaks_count; float spectral_peaks_threshold; const char * spectral_power_edges; bool do_log; bool do_fft_overlap; int wavelet_level; const char * wavelet; bool extra_low_freq; } ei_dsp_config_spectral_analysis_t; typedef struct { uint32_t block_id; uint16_t implementation_version; int axes; float frame_length; float frame_stride; int fft_length; int noise_floor_db; bool show_axes; } ei_dsp_config_spectrogram_t; typedef struct { uint32_t block_id; uint16_t implementation_version; int axes; float frame_length; float frame_stride; int num_filters; int fft_length; int low_frequency; int high_frequency; float pre_cof; const char * extractor; } ei_dsp_config_audio_syntiant_t; typedef struct { uint32_t block_id; uint16_t implementation_version; int axes; bool scaling; } ei_dsp_config_imu_syntiant_t; #endif // _EI_CLASSIFIER_MODEL_METADATA_H_