SSCMA-Micro CPP SDK  v2.0.0
SSCMA-Micro is a cross-platform machine learning inference framework designed for embedded devices.
ma_model_yolov8_seg_hailo.h
Go to the documentation of this file.
1 #ifndef _MA_MODEL_YOLOV8_SEG_HAILO_H_
2 #define _MA_MODEL_YOLOV8_SEG_HAILO_H_
3 
4 #include "ma_model_segmentor.h"
5 
6 #if MA_USE_ENGINE_HAILO
7 
8 #include <cstddef>
9 #include <cstdint>
10 #include <utility>
11 #include <vector>
12 
13 #include <xtensor/xtensor.hpp>
14 #include <xtensor/xarray.hpp>
15 
16 namespace ma::model {
17 
18 namespace _internal {
19 
20 struct Quadruple {
21  std::vector<ma_tensor_t> boxes;
22  xt::xarray<float> scores;
23  std::vector<ma_tensor_t> masks;
24  xt::xarray<float> proto_data;
25 };
26 
27 } // namespace _internal
28 
29 class YoloV8SegHailo : public Segmentor {
30 private:
31  std::vector<xt::xarray<double>> centers_;
32  static std::vector<int> strides_;
33  std::vector<int> network_dims_;
34  std::vector<ma_tensor_t> outputs_;
35  _internal::Quadruple boxes_scores_masks_mask_matrix_;
36  int classes_ = 0;
37  int32_t route_ = 0;
38 
39 protected:
40  ma_err_t postprocess();
41 
42 public:
43  YoloV8SegHailo(Engine* engine);
44  ~YoloV8SegHailo();
45 
46  static bool isValid(Engine* engine);
47 
48  static const char* getTag();
49 };
50 
51 } // namespace ma::model
52 
53 #endif
54 
55 #endif // _MA_MODEL_YOLO_H
ma_err_t
Definition: ma_types.h:21
Definition: ma_model_classifier.cpp:5