#ifndef INFER_HPP_ #define INFER_HPP_ #include #include #include #include #include // Структура обнаружения struct Detection { short class_id; // Идентификатор класс float probability; // Вероятность обнаружения cv::Rect box; // Размеры объекта }; // Класс обнаружения class Inf { public: Inf() {}; Inf(const std::string &model_path, const float &model_probability, const float &model_NMS); Inf(const std::string &model_path, const cv::Size model_input_shape, const float &model_probability, const float &model_NMS); ~Inf() {}; void inference(cv::Mat &frame); private: void init(const std::string &model_path); void pre(const cv::Mat &frame); void post( cv::Mat &frame); cv::Rect GetBoundingBox(const cv::Rect &src) const; void DrawDetectedObject(cv::Mat &frame, const Detection &detections) const; cv::Point2f scale_factor; cv::Size2f input_shape; cv::Size output_shape; ov::InferRequest inference_request; ov::CompiledModel compiled_model; float probability; float NMS; }; #endif // INFER_HPP_