SSCMA-Micro CPP SDK  v2.0.0
SSCMA-Micro is a cross-platform machine learning inference framework designed for embedded devices.
ma_model_yolov8_pose.h
Go to the documentation of this file.
1 #ifndef _MA_MODEL_YOLOV8_POSE_H_
2 #define _MA_MODEL_YOLOV8_POSE_H_
3 
4 #include <cstddef>
5 #include <cstdint>
6 #include <utility>
7 #include <vector>
8 
10 
11 namespace ma::model {
12 
13 class YoloV8Pose : public PoseDetector {
14  private:
15  static constexpr size_t num_outputs_ = 7;
16  static constexpr size_t anchor_variants_ = 3;
17 
18  ma_tensor_t outputs_[num_outputs_];
19 
20  std::vector<ma_anchor_stride_t> anchor_strides_;
21  std::vector<std::vector<ma_pt2f_t>> anchor_matrix_;
22 
23  size_t output_scores_ids_[anchor_variants_];
24  size_t output_bboxes_ids_[anchor_variants_];
25  size_t output_keypoints_id_;
26 
27  protected:
28  ma_err_t postprocess() override;
29 
31 #ifdef MA_MODEL_POSTPROCESS_FP32_VARIANT
32  ma_err_t postProcessF32();
33 #endif
34 
35  public:
36  YoloV8Pose(Engine* engine);
37  ~YoloV8Pose();
38 
39  static bool isValid(Engine* engine);
40 
41  static const char* getTag();
42 };
43 
44 } // namespace ma::model
45 
46 #endif // _MA_MODEL_YOLO_H
Definition: ma_engine_base.h:17
Definition: ma_model_pose_detector.h:10
Definition: ma_model_yolov8_pose.h:13
ma_err_t postprocess() override
Definition: ma_model_yolov8_pose.cpp:159
ma_err_t postProcessI8()
Definition: ma_model_yolov8_pose.cpp:192
~YoloV8Pose()
Definition: ma_model_yolov8_pose.cpp:68
YoloV8Pose(Engine *engine)
Definition: ma_model_yolov8_pose.cpp:27
static bool isValid(Engine *engine)
Definition: ma_model_yolov8_pose.cpp:70
static const char * getTag()
Definition: ma_model_yolov8_pose.cpp:155
ma_err_t
Definition: ma_types.h:21
Definition: ma_model_classifier.cpp:5
Definition: ma_types.h:74