sujinwen
2017-07-25 c7caa54d8d58af6159f2c758ad5d6687d461a333
FaceServer/STFaceCache.h
@@ -4,15 +4,21 @@
#include <string>
#include "face_daemon_proto.h"
struct STFaceImage
#define FDP_FDR_INVALID FDP_FaceDetectResult(STFS_DBID_INVALID, 0, 0)
#define ENABLE_AUTO_CREATE_STFACEDB
#define ENABLE_DETECT_IN_NEGATIVE_DBID
//#define ENABLE_ADD_TO_TEMPDB_WHEN_NOT_DETECT
#define RESULT_CONFIDENCE 0.70
#define TEMPDB_FACE_COUNT_MAX 10
enum STFSpecialDBID
{
   int32_t db_id;
   int16_t mb_type; // MB_Frame::MBFType
   int16_t width;
   int16_t height;
   uint32_t size;
   const uint8_t* buff;
   STFS_DBID_INVALID = 0,
   STFS_DBID_VISITOR_1 = -1,
   STFS_DBID_TEMPDB_1 = -1000
};
struct STFaceImage;
class STFaceCache
{
@@ -20,14 +26,30 @@
   STFaceCache(const std::string& _stfacedbPath);
   ~STFaceCache();
   
   bool load_dbs();
   FDP_FaceDetectResult detect(const STFaceImage& img);
   FDP_FaceDetectResult save(const STFaceImage& img);
   bool init();
   void finit();
   
   bool load_dbs();
   void close_dbs();
   FDP_FaceDetectResult detect(const STFaceImage& img);
   FDP_FaceDetectResult add(const STFaceImage& img);
   void search(const STFaceImage& img, fdr_vec_t& topResult);
   FDP_FaceDetectResult compare(const STFaceImage& img1, const STFaceImage& img2);
   void delete_db(int dbid);
   //#todo need a delete img, if business not linked faceid and its personid
   // they can delete it and save/find again!
private:
   FDP_FaceDetectResult detect_neg(const STFaceImage& img);
private:
   const std::string stfacedbPath;
   const std::string stfaceModels;
   void* _dbContext;
   void* _cacheContext;
   int tempdbFaceCount;
};
#endif