From 6ec2cc5ab6bb2ef338461604636f5bd7dbb6ebbc Mon Sep 17 00:00:00 2001
From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期三, 11 一月 2017 18:27:15 +0800
Subject: [PATCH] face daemon develop finish
---
RtspFace/main_face_daemon.cpp | 10 ++--
RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.cpp | 50 ++++++++++++------------
RtspFace/PL_SensetimeFaceDetect.h | 4 +-
RtspFace/SensetimeFaceAPIWrapper/src/faceAPI.h | 2 +
RtspFace/PL_SensetimeFaceDetect.cpp | 11 +++--
5 files changed, 40 insertions(+), 37 deletions(-)
diff --git a/RtspFace/PL_SensetimeFaceDetect.cpp b/RtspFace/PL_SensetimeFaceDetect.cpp
index 12f68ff..3707b9f 100644
--- a/RtspFace/PL_SensetimeFaceDetect.cpp
+++ b/RtspFace/PL_SensetimeFaceDetect.cpp
@@ -94,10 +94,10 @@
return false;
}
- faceDB* _faceDB = (faceDB*)frame->_faceDB;
- if (_faceDB == nullptr)
+ faceAPI* _faceAPI = (faceAPI*)frame->_faceAPI;
+ if (_faceAPI == nullptr)
{
- LOG_ERROR << "faceDB is null";
+ LOG_ERROR << "faceAPI is null";
return false;
}
@@ -109,8 +109,9 @@
}
cv::Mat yuvMat(cv::Size(frame->width,frame->height), CV_8UC3, frame->buffer);
- cv_feature_t* feature = _faceDB->extract_feature(yuvMat);
- in->lastResult.st_id = _faceDB->search_db(feature);
+ //cv_feature_t* feature = _faceAPI->extract_feature(yuvMat);
+ //in->lastResult.st_id = _faceAPI->search_db(feature);
+ in->lastResult.st_id = _faceAPI->do_reasch(yuvMat);
//#todo release feature
in->lastResult.school_id = frame->school_id;
diff --git a/RtspFace/PL_SensetimeFaceDetect.h b/RtspFace/PL_SensetimeFaceDetect.h
index 7a3fd0c..8454ad7 100644
--- a/RtspFace/PL_SensetimeFaceDetect.h
+++ b/RtspFace/PL_SensetimeFaceDetect.h
@@ -8,9 +8,9 @@
struct SensetimeFaceDetectDbFrame : public MB_Frame
{
int school_id;
- void* _faceDB;
+ void* _faceAPI;
- SensetimeFaceDetectDbFrame() : MB_Frame(), school_id(-1), _faceDB(nullptr)
+ SensetimeFaceDetectDbFrame() : MB_Frame(), school_id(-1), _faceAPI(nullptr)
{ }
};
diff --git a/RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.cpp b/RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.cpp
index 9a39a6f..147d4e1 100644
--- a/RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.cpp
+++ b/RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.cpp
@@ -1,5 +1,5 @@
#include "FaceDBPool.h"
-#include "logger.h"
+#include "../../logger.h"
#include "faceAPI.h"
#include <pthread.h>
@@ -26,7 +26,7 @@
struct MutexLocker
{
pthread_mutex_t* mut;
- MutexLocker(pthread_mutex_t* _mut) : mut(_mut)
+ MutexLocker(void* _mut) : mut((pthread_mutex_t*)_mut)
{
PLP_MUTEX_LOCK(mut,);
}
@@ -44,12 +44,12 @@
ThreadSafeFaceDB() : dbid(-1), db_mutex(), api(nullptr)
{
- pthread_mutex_init(db_mutex, NULL);
+ pthread_mutex_init(&db_mutex, NULL);
}
~ThreadSafeFaceDB()
{
- pthread_mutex_destroy(db_mutex);
+ pthread_mutex_destroy(&db_mutex);
}
};
@@ -69,12 +69,12 @@
facedb_map_t* _face_db_map = (facedb_map_t*)face_db_map;
for (facedb_map_t::iterator iter = _face_db_map->begin(); iter != _face_db_map->end(); ++iter)
{
- iter->second.api->db_save();
- delete iter->second.api;
+ iter->second->api->db_save();
+ delete iter->second->api;
delete iter->second;
}
- _face_db_map.clear();
+ _face_db_map->clear();
pthread_mutex_destroy((pthread_mutex_t*)pool_mutex);
delete (pthread_mutex_t*)pool_mutex;
@@ -90,14 +90,14 @@
facedb_map_t* _face_db_map = (facedb_map_t*)face_db_map;
- if (_face_db_map.find(dbid) != _face_db_map.end())
+ if (_face_db_map->find(dbid) != _face_db_map->end())
return;
ThreadSafeFaceDB* tsfdb = new ThreadSafeFaceDB;
- tsfdb.dbid = dbid;
- tsfdb.api = db;
+ tsfdb->dbid = dbid;
+ tsfdb->api = db;
- _face_db_map.insert(std::make_pair(dbid, tsfdb));
+ _face_db_map->insert(std::make_pair(dbid, tsfdb));
}
void FaceDBPool::unmanage(int dbid)
@@ -105,15 +105,15 @@
MutexLocker _ml(pool_mutex);
facedb_map_t* _face_db_map = (facedb_map_t*)face_db_map;
- facedb_map_t::iterator iter = _face_db_map.find(dbid);
- if (iter == _face_db_map.end())
+ facedb_map_t::iterator iter = _face_db_map->find(dbid);
+ if (iter == _face_db_map->end())
return;
- iter->second.api->db_save();
- delete iter->second.api;
+ iter->second->api->db_save();
+ delete iter->second->api;
delete iter->second;
- _face_db_map.erase(iter);
+ _face_db_map->erase(iter);
}
faceAPI* FaceDBPool::get_free(int dbid)
@@ -124,11 +124,11 @@
MutexLocker _ml(pool_mutex);
facedb_map_t* _face_db_map = (facedb_map_t*)face_db_map;
- if (_face_db_map.empty())
+ if (_face_db_map->empty())
return nullptr;
- facedb_map_t::iterator iter = _face_db_map.find(dbid);
- if (iter == _face_db_map.end())
+ facedb_map_t::iterator iter = _face_db_map->find(dbid);
+ if (iter == _face_db_map->end())
return nullptr;
tsfdb = iter->second;
@@ -136,7 +136,7 @@
if (tsfdb != nullptr)
{
- PLP_MUTEX_LOCK(tsfdb->db_mutex, nullptr);
+ PLP_MUTEX_LOCK(&(tsfdb->db_mutex), nullptr);
return tsfdb->api;
}
}
@@ -149,18 +149,18 @@
MutexLocker _ml(pool_mutex);
facedb_map_t* _face_db_map = (facedb_map_t*)face_db_map;
- if (_face_db_map.empty())
+ if (_face_db_map->empty())
return;
- facedb_map_t::iterator iter = _face_db_map.find(dbid);
- if (iter == _face_db_map.end())
- return nullptr;
+ facedb_map_t::iterator iter = _face_db_map->find(dbid);
+ if (iter == _face_db_map->end())
+ return;
tsfdb = iter->second;
}
if (tsfdb != nullptr)
{
- PLP_MUTEX_UNLOCK(tsfdb->db_mutex,);
+ PLP_MUTEX_UNLOCK(&(tsfdb->db_mutex),);
}
}
diff --git a/RtspFace/SensetimeFaceAPIWrapper/src/faceAPI.h b/RtspFace/SensetimeFaceAPIWrapper/src/faceAPI.h
index c41b0d8..75894c1 100644
--- a/RtspFace/SensetimeFaceAPIWrapper/src/faceAPI.h
+++ b/RtspFace/SensetimeFaceAPIWrapper/src/faceAPI.h
@@ -22,6 +22,8 @@
int do_reasch(cv::Mat image);
//注册 后台另一进程调用
int do_register(cv::Mat image);
+
+ bool db_save();
private:
diff --git a/RtspFace/main_face_daemon.cpp b/RtspFace/main_face_daemon.cpp
index ad8df4d..b614719 100644
--- a/RtspFace/main_face_daemon.cpp
+++ b/RtspFace/main_face_daemon.cpp
@@ -57,7 +57,7 @@
PipeLinePool g_PipeLinePool;
-FaceDBPool g_FaceDBPool;//#todo config
+FaceDBPool g_faceAPIPool;//#todo config
evclient_proc_t evclient_proc;
@@ -102,15 +102,15 @@
FDP_Image* fdpImage = (FDP_Image*)(client.recvBuff + sizeof(EVPHeader));
- faceAPI* _faceDB = g_FaceDBPool.get_free(fdpImage->school_id);
- if (_faceDB == nullptr)
+ faceAPI* _faceAPI = g_faceAPIPool.get_free(fdpImage->school_id);
+ if (_faceAPI == nullptr)
{
LOG_WARN << "can't get face db";
ev_send_status_packet(client, EVPStatus::EVPS_PARAMETER_ERROR);
return false;
}
- PoolElemLocker<FaceDBPool*, int> _lock_faceDB(&g_FaceDBPool, fdpImage->school_id);
+ PoolElemLocker<FaceDBPool*, int> _lock_faceAPI(&g_faceAPIPool, fdpImage->school_id);
PipeLine* pipeLine = g_PipeLinePool.get_free();
if (pipeLine == nullptr)
@@ -132,7 +132,7 @@
dbFrame.width = fdpImage->width;
dbFrame.height = fdpImage->height;
dbFrame.school_id = fdpImage->school_id;
- dbFrame._faceDB = _faceDB;
+ dbFrame._faceAPI = _faceAPI;
PipeMaterial pm;
pm.type = PipeMaterial::PMT_FRAME;
--
Gitblit v1.8.0