basic版本的yolo,在yolov3版本上增加人体跟踪
xuepengqiang
2020-05-26 5966f2b095841627d62daac0159e81f83544b85c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//
// 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);
        }
    }
}