PPYOLOE.hpp 865 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #ifndef RKNNMANAGER_HPP
  2. #define RKNNMANAGER_HPP
  3. #include <rknn_api.h>
  4. #include <opencv2/opencv.hpp>
  5. #include <string>
  6. #include <vector>
  7. static unsigned char *load_model(const char *filename, int *model_size);
  8. class PPYOLOE
  9. {
  10. public:
  11. PPYOLOE();
  12. ~PPYOLOE();
  13. int get_index() const { return index; }
  14. bool initialize(const std::string &model_path);
  15. bool infer(int index, unsigned char *input_data, int width, int height);
  16. void release();
  17. int width, height, channel;
  18. rknn_input_output_num io_num;
  19. rknn_tensor_attr *input_attrs;
  20. rknn_tensor_attr *output_attrs;
  21. bool is_quant;
  22. private:
  23. PPYOLOE(const PPYOLOE &) = delete;
  24. PPYOLOE &operator=(const PPYOLOE &) = delete;
  25. rknn_context ctx;
  26. unsigned char *model_data;
  27. int model_data_size;
  28. void *resize_buf;
  29. int index{0};
  30. };
  31. #endif // RKNNMANAGER_HPP