#pragma once #include #include #include #include class AiEngineRectangle { public: int left; int top; int right; int bottom; }; class AiEngineObject { public: AiEngineRectangle rectangle; float propability; int classId; }; class AiEngineInferenceResult { public: cv::Mat frame; QVector objects; }; class AiEngineInference : public QObject { Q_OBJECT public: explicit AiEngineInference(QString modelPath, QObject *parent = nullptr); bool isActive(void); protected: QString mModelPath; bool mActive; public slots: virtual void performInferenceSlot(cv::Mat frame) = 0; signals: void resultsReady(AiEngineInferenceResult results); };