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