mirror of
https://github.com/jomjol/AI-on-the-edge-device.git
synced 2026-01-27 12:50:39 +03:00
54 lines
1.2 KiB
C++
54 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#ifndef CTFLITECLASS_H
|
|
#define CTFLITECLASS_H
|
|
|
|
#include "tensorflow/lite/micro/micro_mutable_op_resolver.h"
|
|
#include "tensorflow/lite/micro/micro_interpreter.h"
|
|
#include "tensorflow/lite/schema/schema_generated.h"
|
|
|
|
#include "esp_err.h"
|
|
#include "esp_log.h"
|
|
|
|
#include "CImageBasis.h"
|
|
|
|
class CTfLiteClass
|
|
{
|
|
protected:
|
|
tflite::MicroMutableOpResolver<10> resolver;
|
|
const tflite::Model *model;
|
|
tflite::MicroInterpreter *interpreter;
|
|
TfLiteTensor *output = nullptr;
|
|
|
|
int kTensorArenaSize;
|
|
uint8_t *tensor_arena;
|
|
|
|
unsigned char *modelfile = NULL;
|
|
|
|
float *input;
|
|
int input_i;
|
|
int im_height, im_width, im_channel;
|
|
|
|
long GetFileSize(std::string filename);
|
|
bool ReadFileToModel(std::string filename);
|
|
bool MakeStaticResolver(void);
|
|
|
|
public:
|
|
CTfLiteClass();
|
|
~CTfLiteClass();
|
|
bool LoadModel(std::string filename);
|
|
bool MakeAllocate(void);
|
|
bool LoadInputImageBasis(CImageBasis *rs);
|
|
void Invoke(void);
|
|
int GetAnzOutPut(bool silent = true);
|
|
int GetOutClassification(int _von = -1, int _bis = -1);
|
|
|
|
int GetClassFromImageBasis(CImageBasis *rs);
|
|
|
|
float GetOutputValue(int nr);
|
|
void GetInputDimension(bool silent);
|
|
int ReadInputDimenstion(int _dim);
|
|
};
|
|
|
|
#endif // CTFLITECLASS_H
|