From 6495701d221972e7c780415ab1ba4c092f669dfa Mon Sep 17 00:00:00 2001 From: pansen <pansen626@sina.com> Date: 星期三, 26 十二月 2018 13:59:47 +0800 Subject: [PATCH] save code wait test wait init param --- QiaoJiaSystem/StructureApp/FaceRpcElement.h | 1 QiaoJiaSystem/StructureApp/FaceTrackingWrapper.cpp | 29 -------------- QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp | 18 ++++++++ QiaoJiaSystem/VideoAnalysFromHC/CMakeLists.txt | 4 ++ QiaoJiaSystem/FaceDetectServer/CMakeLists.txt | 1 QiaoJiaSystem/StructureApp/CMakeLists.txt | 6 ++ QiaoJiaSystem/StructureApp/FaceTrackingWrapper.h | 27 +++++++++++++ QiaoJiaSystem/StructureApp/FaceRpcElement.cpp | 3 + 8 files changed, 56 insertions(+), 33 deletions(-) diff --git a/QiaoJiaSystem/FaceDetectServer/CMakeLists.txt b/QiaoJiaSystem/FaceDetectServer/CMakeLists.txt index 918457d..6e56914 100644 --- a/QiaoJiaSystem/FaceDetectServer/CMakeLists.txt +++ b/QiaoJiaSystem/FaceDetectServer/CMakeLists.txt @@ -26,7 +26,6 @@ ../../../BasicPlatForm/libs/jsoncpp/include ../../../BasicPlatForm/libs/Ice-3.7.0/include ../../../BasicPlatForm/libs/ffmpeg/include - ../../../BasicPlatForm/wrapper/casia/include ../../../BasicPlatForm/libs/Casia_Face/FaceSdk/include /usr/include/x86_64-linux-gnu/qt5 #glog diff --git a/QiaoJiaSystem/StructureApp/CMakeLists.txt b/QiaoJiaSystem/StructureApp/CMakeLists.txt index af6e988..1369f65 100644 --- a/QiaoJiaSystem/StructureApp/CMakeLists.txt +++ b/QiaoJiaSystem/StructureApp/CMakeLists.txt @@ -12,7 +12,7 @@ NewRecordVideoElement.cpp JudgmentRetrogradeTool.cpp PerimeterElement.cpp - + FaceTrackingWrapper.cpp TrackingTrigger.cpp FaceRpcElement.cpp @@ -64,6 +64,8 @@ curl fastcommon fdfsclient + THFaceTracking + pthread ) include_directories( @@ -86,6 +88,7 @@ ../../../BasicPlatForm/libs/FastDFS/include/fastdfs ../../../BasicPlatForm/libs/FastDFS/include/fastcommon + ../../../BasicPlatForm/libs/Casia_Face/FaceSdk/include ../../../BasicPlatForm/basic/pipe/ ../../../BasicPlatForm/libs/crul/include ../../../BasicPlatForm/basic/util/curl/ @@ -107,6 +110,7 @@ ../../../BasicPlatForm/libs/glog/lib ../../../BasicPlatForm/libs/crul/lib + ../../../BasicPlatForm/libs/Casia_Face/FaceSdk/lib/gpu ) add_executable(${PROJECT_NAME} diff --git a/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp b/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp index 3bc1d6c..d1ed983 100644 --- a/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp +++ b/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp @@ -67,6 +67,8 @@ trackingTrigger = new TrackingTrigger(t_score); m_trackingRet = appPref.getIntData("FaceTrackingRet"); +//#todo get key +// m_channel = g_channelCache.find() } FaceRpcElement::~FaceRpcElement() { @@ -93,7 +95,6 @@ if (!server) ERR("server is null"); if (m_trackingRet) { -// #todo xxxx.detectFace faces = faceTrackingFunc(m_channel, image); } else { faces = server->faceDetect(image.cols, image.rows, sharedMemory->key().toStdString()); diff --git a/QiaoJiaSystem/StructureApp/FaceRpcElement.h b/QiaoJiaSystem/StructureApp/FaceRpcElement.h index d1799bd..be832fd 100644 --- a/QiaoJiaSystem/StructureApp/FaceRpcElement.h +++ b/QiaoJiaSystem/StructureApp/FaceRpcElement.h @@ -54,6 +54,7 @@ TriggerElement m_triggerElement; // 鏄惁浣跨敤sdk璺熻釜 bool m_trackingRet; + int m_channel; }; #endif // FACERPCELEMENT_H diff --git a/QiaoJiaSystem/StructureApp/FaceTrackingWrapper.cpp b/QiaoJiaSystem/StructureApp/FaceTrackingWrapper.cpp index 90d75ab..b552b08 100644 --- a/QiaoJiaSystem/StructureApp/FaceTrackingWrapper.cpp +++ b/QiaoJiaSystem/StructureApp/FaceTrackingWrapper.cpp @@ -3,38 +3,9 @@ // #include "FaceTrackingWrapper.h" -#include "Debug.h" #include <FaceDetectServer/rpc/FaceServer.h> #include <opencv2/opencv.hpp> - -static FaceTrackingWrapper g_faceTrackingWrapper; -static std::map<std::string, int> g_channelCache; - -static ::FaceDetect::Faces faceTrackingFunc(int channel, cv::Mat &image) { - FaceDetect::Faces faces; - int channel = 0; - BasicFace::FaceImage faceImage{image.cols, image.rows, image.step, image.data}; - - THFT_FaceInfo facePos[MAX_DETECT_FACE]; - int faceNum = THFT_FaceTracking(channel, image.data, facePos); - - if (faceNum > 0) { - for (int i = 0; i < faceNum; i++) { - FaceDetect::FacePos face; - auto &pos = facesPos[i]; - memcpy(&face, &pos, sizeof(pos) - sizeof(pos.pFacialData) - sizeof(pos.nFaceID)); - face.pFacialData.resize(sizeof(pos.pFacialData)); - memcpy(face.pFacialData.data(), pos.pFacialData, sizeof(pos.pFacialData)); - face.pfaceId = pos.nFaceID; -// DBG(face.fAngle.confidence); - faces.push_back(face); - } - } else { - DBG("Face num is 0"); - } - -} FaceTrackingWrapper::FaceTrackingWrapper() { diff --git a/QiaoJiaSystem/StructureApp/FaceTrackingWrapper.h b/QiaoJiaSystem/StructureApp/FaceTrackingWrapper.h index a220dcd..8b950b4 100644 --- a/QiaoJiaSystem/StructureApp/FaceTrackingWrapper.h +++ b/QiaoJiaSystem/StructureApp/FaceTrackingWrapper.h @@ -11,11 +11,13 @@ #include <sys/time.h> #include <time.h> #include <list> +#include <basic/debug/Debug.h> #include <opencv2/opencv.hpp> #include <FiStdDefEx.h> #include <THFaceTracking_i.h> +#include <FaceDetectServer/rpc/FaceServer.h> #include "FaceDefine.h" @@ -52,5 +54,30 @@ // std::map<int, ObjectList> m_objListCache; }; +static FaceTrackingWrapper g_faceTrackingWrapper; +static std::map<std::string, int> g_channelCache; + +static ::FaceDetect::Faces faceTrackingFunc(int channel, cv::Mat &image) { + FaceDetect::Faces faces; + BasicFace::FaceImage faceImage{image.cols, image.rows, image.step, image.data}; + + THFT_FaceInfo facePos[MAX_DETECT_FACE]; + int faceNum = THFT_FaceTracking(channel, image.data, facePos); + + if (faceNum > 0) { + for (int i = 0; i < faceNum; i++) { + FaceDetect::FacePos face; + auto &pos = facePos[i]; + memcpy(&face, &pos, sizeof(pos) - sizeof(pos.pFacialData) - sizeof(pos.nFaceID)); + face.pFacialData.resize(sizeof(pos.pFacialData)); + memcpy(face.pFacialData.data(), pos.pFacialData, sizeof(pos.pFacialData)); + face.pfaceId = pos.nFaceID; +// DBG(face.fAngle.confidence); + faces.push_back(face); + } + } else { + DBG("Face num is 0"); + } +} #endif //TESTCODE_FACETRACKINGWRAPPER_H diff --git a/QiaoJiaSystem/VideoAnalysFromHC/CMakeLists.txt b/QiaoJiaSystem/VideoAnalysFromHC/CMakeLists.txt index 1caec38..a1b5357 100644 --- a/QiaoJiaSystem/VideoAnalysFromHC/CMakeLists.txt +++ b/QiaoJiaSystem/VideoAnalysFromHC/CMakeLists.txt @@ -158,6 +158,7 @@ jsoncpp curl uuid + THFaceTracking pthread ) include_directories( @@ -172,6 +173,7 @@ ../RecordVideo/rpc ../StructureApp/rpc + ../StructureApp/ ../YoloServer/rpc ../FaceDetectServer/rpc ../FaceSearchServer/rpc @@ -196,6 +198,7 @@ ../../../BasicPlatForm/libs/hcTool/HCNetSDK64/incCn ../../../BasicPlatForm/libs/libboost/include + ../../../BasicPlatForm/libs/Casia_Face/FaceSdk/include /usr/include/x86_64-linux-gnu/qt5 /usr/include/x86_64-linux-gnu/qt5/QtCore/ @@ -216,6 +219,7 @@ ../../../BasicPlatForm/libs/hcTool/HCNetSDK64/lib/ ../../../BasicPlatForm/libs/hcTool/HCNetSDK64/lib/HCNetSDKCom/ ../../../BasicPlatForm/libs/libboost/lib + ../../../BasicPlatForm/libs/Casia_Face/FaceSdk/lib/gpu ) add_executable(${PROJECT_NAME} diff --git a/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp b/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp index db732c6..ab98b69 100644 --- a/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp +++ b/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp @@ -3,6 +3,7 @@ // #include "RtspAnalysElement.h" +#include <FaceTrackingWrapper.h> #include <basic/http_server/HttpSrvRetRecieve.hpp> @@ -108,6 +109,7 @@ vector<int> sdkComCoVec = chnString2Vec(en_sdk.str_cmp_thr.toStdString()); int camId = item.str_cam_dev_id.toInt(); + int channel = 0; int t_size = sdkVec.size(); for (int i = 0; i < t_size; i++) { switch (sdkVec[i]) { @@ -116,6 +118,16 @@ json["face.enable"] = "1"; SETSCORE(sdkDetCoVec, i, t_camIdex + "face.det"); SETSCORE(sdkComCoVec, i, t_camIdex + "face.cmp"); + BasicFace::InitParam t_initParam; +// t_initParam.nDeviceID = 0; +// t_initParam.nImageWidth = nWidth; +// t_initParam.nImageHeight = nHeight; +// t_initParam.nMaxFaceNum = 50; +// t_initParam.nSampleSize = nWidth / 2; +// t_initParam.nDetectionIntervalFrame = 12; + g_faceTrackingWrapper.setChannelParam(channel, t_initParam); + g_channelCache.insert(std::make_pair(t_camIdex, channel)); + channel++; DBG(" TESTCODE " << sdkDetCoVec[i] << " " << sdkComCoVec[i]); // #todo add param @@ -170,6 +182,10 @@ appPref.getLongData("gpu.index"); addCamera(t_camIdex, json.toStyledString()); } + g_faceTrackingWrapper.initHandle(); + for (auto &item :controllers) { + item.second->start(); + } } else { ERR("searchCamDevTableAll size is 0"); } @@ -198,7 +214,7 @@ // controllers[index] = new AppPipeController(index, std::move(value), false); controllers[index]->setfdfsClient(&fdfsClient); - controllers[index]->start(); +// controllers[index]->start(); currentCount++; return 0; } -- Gitblit v1.8.0