// // Created by Scheaven on 2019/11/19. // #include "detecter_manager.h" #include #include #include DetecterManager* DetecterManager::instance = NULL; DetecterManager* DetecterManager::getInstance() { if(instance==NULL) { instance = new DetecterManager(); } return instance; } DetecterManager::DetecterManager() { std::cout << "loading detector model......" << std::endl; } DetecterManager::~DetecterManager() { } void DetecterManager::release() { Detector::getInstance()->release(); delete DetecterManager::instance; DetecterManager::instance = NULL; } void DetecterManager::detecter_main(const cv::Mat &mat_image, DETECTIONS& detection) { std::vector result_vec; result_vec = Detector::getInstance()->detect(mat_image); encoder_features(result_vec, detection); } void DetecterManager::encoder_features(std::vector boxes, DETECTIONS &detection) { std::vector confidences; for (const auto &result_box:boxes) { if(result_box.obj_id == 0) { DETECTION_ROW tmpRow; tmpRow.tlwh = DETECTBOX(result_box.x,result_box.y,result_box.w,result_box.h); tmpRow.confidence = result_box.prob; detection.push_back(tmpRow); } } }