C++ & OpenVINO
This commit is contained in:
46
projects/OpenVINO/C++/infer.hpp
Normal file
46
projects/OpenVINO/C++/infer.hpp
Normal file
@@ -0,0 +1,46 @@
|
||||
#ifndef INFER_HPP_
|
||||
#define INFER_HPP_
|
||||
|
||||
#include <opencv2/dnn/dnn.hpp>
|
||||
#include <opencv2/highgui/highgui.hpp>
|
||||
#include <opencv2/imgproc/imgproc.hpp>
|
||||
#include <opencv2/opencv.hpp>
|
||||
#include <openvino/openvino.hpp>
|
||||
|
||||
// Структура обнаружения
|
||||
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_
|
||||
Reference in New Issue
Block a user