#ifndef AUTO_AIM__MT_DETECTOR_HPP #define AUTO_AIM__MT_DETECTOR_HPP #include #include #include #include #include "tasks/auto_aim/yolos/yolov5.hpp" #include "tools/logger.hpp" #include "tools/thread_safe_queue.hpp" namespace auto_aim { namespace multithread { class MultiThreadDetector { public: MultiThreadDetector(const std::string & config_path, bool debug = false); void push(cv::Mat img, std::chrono::steady_clock::time_point t); std::tuple, std::chrono::steady_clock::time_point> pop(); //暂时不支持yolov8 std::tuple, std::chrono::steady_clock::time_point> debug_pop(); private: ov::Core core_; ov::CompiledModel compiled_model_; std::string device_; YOLO yolo_; tools::ThreadSafeQueue< std::tuple> queue_{16, [] { tools::logger()->debug("[MultiThreadDetector] queue is full!"); }}; }; } // namespace multithread } // namespace auto_aim #endif // AUTO_AIM__MT_DETECTOR_HPP