//
|
// Created by Scheaven on 2020/3/23.
|
//
|
|
#ifndef ARI_MANAGER_H
|
#define ARI_MANAGER_H
|
#include "std_target.h"
|
#include "config.h"
|
#include "class_detector.h"
|
#include "../utils/draw_util.h"
|
#include "../tracker_tools/tracker.h"
|
#include "detecter_manager.h"
|
// #include "../utils/result_util.h"
|
|
|
using namespace std;
|
using namespace cv;
|
|
class AriManager{
|
public:
|
std::vector<cv::Rect> boxes;
|
int cam_id; //指定待追踪摄像机编号
|
Mat frame;
|
|
std::vector<std::shared_ptr<tracker>> CAMERAS_VCT;
|
std::vector<DETECTIONS> DETECTION_VCT;
|
|
private:
|
std::shared_ptr<Detector> detector;
|
static void init_target(Target *t);
|
void switch_SDK_TResult(int cam_id, cv::Mat img, DETECTIONS detections, TResult *t_result);
|
void switch_SDK_TResult(DETECTIONS detections, TResult *t_result);
|
void single_tracker(int cam_id, DETECTIONS& detections, char* img_time);
|
|
public:
|
AriManager();
|
~AriManager();
|
void release();
|
void init_load_model();
|
bool add_cam(int cam_id);
|
// void single_detect_tracking(int cam_id, cv::Mat frame, FRAME_RESULT result_vec); // 检测+追踪 接口
|
void single_SDK(const int cam_id, const void *img, TResult *t_result, char* img_time, const char* mode);
|
void single_SDK(const int cam_id, const void *img, TResult* t_result);
|
// void mul_detect_tracking(std::vector<int> cam_ids, std::vector<cv::Mat> frame_vec, std::vector<FRAME_RESULT>& results_vec); // 多摄像头追踪
|
};
|
|
#endif //INC_01_CPP_SORT_TRACKER_MANAGER_H
|
|