//
|
// Created by ps on 18-12-18.
|
//
|
|
#ifndef TESTCODE_FACETRACKINGWRAPPER_H
|
#define TESTCODE_FACETRACKINGWRAPPER_H
|
|
#include <stdio.h>
|
#include <stdlib.h>
|
#include <string.h>
|
#include <sys/time.h>
|
#include <time.h>
|
#include <list>
|
|
#include <opencv2/opencv.hpp>
|
#include <FiStdDefEx.h>
|
|
#include <THFaceTracking_i.h>
|
|
#include "FaceDefine.h"
|
|
|
//typedef std::list<FaceTrackingInfo> ObjectList;
|
#define MAX_DETECT_FACE 50
|
|
|
class FaceTrackingWrapper {
|
public:
|
explicit FaceTrackingWrapper();
|
|
virtual ~FaceTrackingWrapper();
|
|
void setChannelParam(int channel, const BasicFace::InitParam &);
|
|
bool initHandle();
|
|
std::vector<BasicFace::FaceDetectResult> detectFace(const BasicFace::FaceImage &image);
|
|
std::vector<BasicFace::FaceDetectResult> trackingFace(int channel, const BasicFace::FaceImage &image);
|
|
vector<BasicFace::FaceFeatureResult> extractFace(const BasicFace::FaceImage &image);
|
|
static float compareFeature(BasicFace::Feature &feature1, BasicFace::Feature &feature2);
|
|
private:
|
int nGPUDeviceID = 0;
|
|
//sdk 初始化参数
|
std::map<int, BasicFace::InitParam> m_mapParam;
|
|
//保存上次跟踪的目标
|
// std::map<int, ObjectList> m_objListCache;
|
};
|
|
|
#endif //TESTCODE_FACETRACKINGWRAPPER_H
|