派生自 development/c++

pansen
2019-01-10 59408e43480b48b6acd6e76641ff1a97811e7ab5
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
#ifndef YOLODETECTSERVERI_H
#define YOLODETECTSERVERI_H
#define GPU
 
#include "YoloServer.h"
#include <thread>
#include <darknet.h>
#include <opencv2/opencv.hpp>
#include <basic/util/resource/ResourcesManager.h>
 
#include "DnDetect.h"
#include <atomic>
 
struct DnDetectRes {
public:
    DnDetectRes() : i(3) {
    }
 
    DnDetect::DnDetect *dnDetect;
//    序号及线程id
    std::unordered_map<int, std::thread::id> map_pid;
//    接受的线程个数
    int i;
};
 
class YoloDetectServerI : public YoloDetect::YoloDetectServer {
public:
    YoloDetectServerI();
 
    virtual ~YoloDetectServerI();
    // FaceDetectServer interface
public:
    virtual ::YoloDetect::ObjInfos
    YoloDetect(::Ice::Int, ::Ice::Int, const ::std::string &, const ::Ice::Current & = ::Ice::emptyCurrent) override;
 
    virtual YoloDetect::stringData getCocoData(const Ice::Current &) override;
 
private:
    network *m_net;
    float m_thresh;
    float m_hier_thresh;
    float m_nms;
    char **names;
    image **alphabet;
    bool m_bInitThd;
    std::thread m_thdInit;
 
    std::map<int, DnDetectRes> map_dnDetRes;
 
    //  ResourcesManager<int> resourcesManager;
 
private:
 
    static int init(void *arg);
 
    cv::Mat bufferToMat(const int w, const int h, const int channels, const void *buffer);
 
 
};
 
 
#endif