CTfLiteClass.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #pragma once
  2. #ifndef CTFLITECLASS_H
  3. #define CTFLITECLASS_H
  4. #include "tensorflow/lite/micro/micro_mutable_op_resolver.h"
  5. #include "tensorflow/lite/micro/micro_interpreter.h"
  6. #include "tensorflow/lite/schema/schema_generated.h"
  7. #include "esp_err.h"
  8. #include "esp_log.h"
  9. #include "CImageBasis.h"
  10. class CTfLiteClass
  11. {
  12. protected:
  13. tflite::MicroMutableOpResolver<10> resolver;
  14. const tflite::Model *model;
  15. tflite::MicroInterpreter *interpreter;
  16. TfLiteTensor *output = nullptr;
  17. int kTensorArenaSize;
  18. uint8_t *tensor_arena;
  19. unsigned char *modelfile = NULL;
  20. float *input;
  21. int input_i;
  22. int im_height, im_width, im_channel;
  23. long GetFileSize(std::string filename);
  24. bool ReadFileToModel(std::string filename);
  25. bool MakeStaticResolver(void);
  26. public:
  27. CTfLiteClass();
  28. ~CTfLiteClass();
  29. bool LoadModel(std::string filename);
  30. bool MakeAllocate(void);
  31. bool LoadInputImageBasis(CImageBasis *rs);
  32. void Invoke(void);
  33. int GetAnzOutPut(bool silent = true);
  34. int GetOutClassification(int _von = -1, int _bis = -1);
  35. int GetClassFromImageBasis(CImageBasis *rs);
  36. float GetOutputValue(int nr);
  37. void GetInputDimension(bool silent);
  38. int ReadInputDimenstion(int _dim);
  39. };
  40. #endif // CTFLITECLASS_H