CTfLiteClass.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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 _fn);
  25. void MakeStaticResolver();
  26. public:
  27. CTfLiteClass();
  28. ~CTfLiteClass();
  29. bool LoadModel(std::string _fn);
  30. bool MakeAllocate();
  31. void GetInputTensorSize();
  32. bool LoadInputImageBasis(CImageBasis *rs);
  33. void Invoke();
  34. int GetAnzOutPut(bool silent = true);
  35. int GetOutClassification(int _von = -1, int _bis = -1);
  36. int GetClassFromImageBasis(CImageBasis *rs);
  37. std::string GetStatusFlow();
  38. float GetOutputValue(int nr);
  39. void GetInputDimension(bool silent);
  40. int ReadInputDimenstion(int _dim);
  41. };
  42. #endif //CTFLITECLASS_H