//
|
// Created by Scheaven on 2019/11/19.
|
//
|
|
#include "detecter_manager.h"
|
#include <thread>
|
#include <unistd.h>
|
#include <cstdlib>
|
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<bbox_t> result_vec;
|
|
result_vec = Detector::getInstance()->detect(mat_image);
|
|
encoder_features(result_vec, detection);
|
|
}
|
|
void DetecterManager::encoder_features(std::vector<bbox_t> boxes, DETECTIONS &detection)
|
{
|
std::vector<float> 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);
|
}
|
}
|
}
|