RtspFace/PL_SensetimeFaceDetect.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
RtspFace/PL_SensetimeFaceDetect.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
RtspFace/ev_server.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
RtspFace/ev_server.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
RtspFace/main.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
RtspFace/main_face_daemon.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
RtspFace/make.sh | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
RtspFace/PL_SensetimeFaceDetect.cpp
@@ -3,6 +3,7 @@ #include "logger.h" #include "SensetimeFaceAPIWrapper/src/FaceDBPool.h" #include "SensetimeFaceAPIWrapper/src/faceAPI.h" #include <opencv2/opencv.hpp> #include <cv_face.h> @@ -94,10 +95,10 @@ return false; } faceAPI* _faceAPI = (faceAPI*)frame->_faceAPI; if (_faceAPI == nullptr) FaceDB* _faceDB = (FaceDB*)frame->_faceDB; if (_faceDB == nullptr) { LOG_ERROR << "faceAPI is null"; LOG_ERROR << "FaceDB is null"; return false; } @@ -109,9 +110,9 @@ } cv::Mat yuvMat(cv::Size(frame->width,frame->height), CV_8UC3, frame->buffer); //cv_feature_t* feature = _faceAPI->extract_feature(yuvMat); //in->lastResult.st_id = _faceAPI->search_db(feature); in->lastResult.st_id = _faceAPI->do_reasch(yuvMat); cv_feature_t* feature = _faceDB->extract_feature(yuvMat); in->lastResult.st_id = _faceDB->search_db(feature); //in->lastResult.st_id = _faceDB->do_reasch(yuvMat); //#todo release feature in->lastResult.school_id = frame->school_id; RtspFace/PL_SensetimeFaceDetect.h
@@ -8,9 +8,9 @@ struct SensetimeFaceDetectDbFrame : public MB_Frame { int school_id; void* _faceAPI; void* _faceDB; SensetimeFaceDetectDbFrame() : MB_Frame(), school_id(-1), _faceAPI(nullptr) SensetimeFaceDetectDbFrame() : MB_Frame(), school_id(-1), _faceDB(nullptr) { } }; RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.cpp
@@ -40,7 +40,7 @@ { int dbid; pthread_mutex_t db_mutex; faceAPI* api; FaceDB* api; ThreadSafeFaceDB() : dbid(-1), db_mutex(), api(nullptr) { @@ -69,7 +69,7 @@ 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(); iter->second->api->finally(); delete iter->second->api; delete iter->second; } @@ -81,7 +81,7 @@ pool_mutex = nullptr; } void FaceDBPool::manage(int dbid, faceAPI* db) void FaceDBPool::manage(int dbid, FaceDB* db) { if (dbid < 0 || db == nullptr) return; @@ -109,14 +109,14 @@ if (iter == _face_db_map->end()) return; iter->second->api->db_save(); iter->second->api->finally(); delete iter->second->api; delete iter->second; _face_db_map->erase(iter); } faceAPI* FaceDBPool::get_free(int dbid) FaceDB* FaceDBPool::get_free(int dbid) { ThreadSafeFaceDB* tsfdb = nullptr; { RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.h
@@ -9,10 +9,10 @@ FaceDBPool(); ~FaceDBPool(); void manage(int dbid, faceAPI* db); void manage(int dbid, FaceDB* db); void unmanage(int dbid); faceAPI* get_free(int dbid); FaceDB* get_free(int dbid); void release(int dbid); bool wait_free() { return true; } RtspFace/ev_server.cpp
@@ -42,6 +42,10 @@ { } }; #ifndef USER_DEFINE_EVCLIENT_PROC evclient_proc_t evclient_proc = nullptr; #endif // Set a socket to non-blocking mode. static int setnonblock(int fd) { RtspFace/ev_server.h
@@ -38,6 +38,8 @@ typedef bool (*evclient_proc_t)(EVClientStub& client); extern evclient_proc_t evclient_proc; //#define USER_DEFINE_EVCLIENT_PROC int server_main(int argc, char **argv); void ev_send_packet(EVClientStub& client); RtspFace/main.cpp
@@ -71,25 +71,25 @@ } } { PL_Scale_Config config; config.toWidth = 800; config.toHeight = 600; PL_Scale* ple = (PL_Scale*)pipeLine.push_elem("PL_Scale"); bool ret = ple->init(&config); if (!ret) { LOG_ERROR << "PL_Scale.init error"; exit(EXIT_FAILURE); } } //{ // PL_Scale_Config config; // config.toWidth = 800; // config.toHeight = 600; // PL_Scale* ple = (PL_Scale*)pipeLine.push_elem("PL_Scale"); // bool ret = ple->init(&config); // if (!ret) // { // LOG_ERROR << "PL_Scale.init error"; // exit(EXIT_FAILURE); // } //} { SensetimeFaceTrackConfig config; //config.generate_face_feature = true; PL_SensetimeFaceTrack* ple = (PL_SensetimeFaceTrack*)pipeLine.push_elem("PL_SensetimeFaceTrack"); ple->init(&config); } //{ // SensetimeFaceTrackConfig config; // //config.generate_face_feature = true; // PL_SensetimeFaceTrack* ple = (PL_SensetimeFaceTrack*)pipeLine.push_elem("PL_SensetimeFaceTrack"); // ple->init(&config); //} //PipeLine pipeLine2; //{ @@ -124,26 +124,26 @@ // } //} { PL_H264Encoder_Config config; PL_H264Encoder* h264Encoder = (PL_H264Encoder*)pipeLine.push_elem("PL_H264Encoder"); bool ret = h264Encoder->init(&config); if (!ret) { LOG_ERROR << "PL_H264Encoder.init error"; exit(EXIT_FAILURE); } } { PL_RTSPServer* rtspServer = (PL_RTSPServer*)pipeLine.push_elem("PL_RTSPServer"); bool ret = rtspServer->init(nullptr); if (!ret) { LOG_ERROR << "rtspServer.init error"; exit(EXIT_FAILURE); } } //{ // PL_H264Encoder_Config config; // PL_H264Encoder* h264Encoder = (PL_H264Encoder*)pipeLine.push_elem("PL_H264Encoder"); // bool ret = h264Encoder->init(&config); // if (!ret) // { // LOG_ERROR << "PL_H264Encoder.init error"; // exit(EXIT_FAILURE); // } //} // //{ // PL_RTSPServer* rtspServer = (PL_RTSPServer*)pipeLine.push_elem("PL_RTSPServer"); // bool ret = rtspServer->init(nullptr); // if (!ret) // { // LOG_ERROR << "rtspServer.init error"; // exit(EXIT_FAILURE); // } //} while(true) { RtspFace/main_face_daemon.cpp
@@ -22,6 +22,7 @@ #include "face_daemon_proto.h" #include "SensetimeFaceAPIWrapper/src/FaceDBPool.h" #include "SensetimeFaceAPIWrapper/src/faceAPI.h" #include "logger.h" @@ -102,8 +103,8 @@ FDP_Image* fdpImage = (FDP_Image*)(client.recvBuff + sizeof(EVPHeader)); faceAPI* _faceAPI = g_faceAPIPool.get_free(fdpImage->school_id); if (_faceAPI == nullptr) FaceDB* _faceDB = g_faceAPIPool.get_free(fdpImage->school_id); if (_faceDB == nullptr) { LOG_WARN << "can't get face db"; ev_send_status_packet(client, EVPStatus::EVPS_PARAMETER_ERROR); @@ -132,7 +133,7 @@ dbFrame.width = fdpImage->width; dbFrame.height = fdpImage->height; dbFrame.school_id = fdpImage->school_id; dbFrame._faceAPI = _faceAPI; dbFrame._faceDB = _faceDB; PipeMaterial pm; pm.type = PipeMaterial::PMT_FRAME; RtspFace/make.sh
@@ -38,17 +38,21 @@ LIBLOG4CPP_LIB="-L$LIBLOG4CPP_BASE/lib -llog4cpp" # -O3 CPPFLAGS+="-g -mavx -c -std=c++11 -pthread $LIVEMEDIA_INC $FFMPEG_INC $LIBBASE64_INC $LIBYUV_INC $SENSETIMEFACESDK_INC $LIBLOG4CPP_INC $DLIB_INC" LDFLAGS+="-pthread -levent $LIVEMEDIA_LIB $FFMPEG_LIB $LIBBASE64_LIB $LIBYUV_LIB $LIBX264_LIB $SENSETIMEFACESDK_LIB $OPENCV_LIB $LIBLOG4CPP_LIB $DLIB_LIB" CPPFLAGS+="-g -mavx -c -std=c++11 -pthread $LIVEMEDIA_INC $FFMPEG_INC $LIBBASE64_INC $LIBYUV_INC $SENSETIMEFACESDK_INC $LIBLOG4CPP_INC $DLIB_INC " LDFLAGS+="-pthread -levent $LIVEMEDIA_LIB $FFMPEG_LIB $LIBBASE64_LIB $LIBYUV_LIB $LIBX264_LIB $SENSETIMEFACESDK_LIB $OPENCV_LIB $LIBLOG4CPP_LIB $DLIB_LIB " CFLAGS+="-D__STDC_CONSTANT_MACROS" rm rtsp_face rm *.o #g++ main.cpp $CFLAGS $CPPFLAGS -o main.o g++ main.cpp $CFLAGS $CPPFLAGS -o main.o #g++ main_dump_st_face.cpp $CFLAGS $CPPFLAGS -o main.o g++ main_face_daemon.cpp $CFLAGS $CPPFLAGS -o main.o #CPPFLAGS+="-DUSER_DEFINE_EVCLIENT_PROC " #g++ main_face_daemon.cpp $CFLAGS $CPPFLAGS -o main.o g++ ev_server.cpp $CFLAGS $CPPFLAGS g++ PipeLine.cpp $CFLAGS $CPPFLAGS g++ PipeLinePool.cpp $CFLAGS $CPPFLAGS @@ -75,6 +79,7 @@ g++ $FFMPEGRTSPSERVER_BASE/LiveServerMediaSubsession.cpp $CFLAGS $CPPFLAGS g++ ./SensetimeFaceAPIWrapper/src/FaceDBPool.cpp $CFLAGS $CPPFLAGS g++ ./SensetimeFaceAPIWrapper/src/faceAPI.cpp $CFLAGS $CPPFLAGS g++ -g -std=c++11 \ main.o PipeLine.o PipeLinePool.o \ @@ -83,7 +88,7 @@ PL_SensetimeFaceTrack.o PL_SensetimeFaceDetect.o \ PL_DlibFaceTrack.o \ $FFMPEGRTSPSERVER_OBJ PL_RTSPServer.o \ FaceDBPool.o \ FaceDBPool.o faceAPI.o \ $LDFLAGS -o rtsp_face #export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBX264_BASE/lib:$FFMPEG_BASE/lib:$SENSETIMEFACESDK_BASE/libs/linux-x86_64:$LIBLOG4CPP_BASE/lib:$DLIB_BASE/build/dlib