pansen
2018-12-19 687078116c5103ccd8bc668c0f0e84f9dd6af20c
save code
wait test
wait init param
11个文件已修改
89 ■■■■■ 已修改文件
QiaoJiaSystem/FaceDetectServer/CMakeLists.txt 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/StructureApp/CMakeLists.txt 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/StructureApp/FaceRpcElement.cpp 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/StructureApp/FaceRpcElement.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/StructureApp/FaceTrackingWrapper.cpp 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/StructureApp/FaceTrackingWrapper.h 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/VideoAnalysFromHC/CMakeLists.txt 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/build/FaceDetectServer 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/build/StructureApp 补丁 | 查看 | 原始文档 | blame | 历史
QiaoJiaSystem/build/VideoAnalysFromHC 补丁 | 查看 | 原始文档 | blame | 历史
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
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}
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());
QiaoJiaSystem/StructureApp/FaceRpcElement.h
@@ -54,6 +54,7 @@
    TriggerElement m_triggerElement;
//    是否使用sdk跟踪
    bool m_trackingRet;
    int m_channel;
};
#endif // FACERPCELEMENT_H
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() {
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
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}
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;
        }
QiaoJiaSystem/build/FaceDetectServer
Binary files differ
QiaoJiaSystem/build/StructureApp
Binary files differ
QiaoJiaSystem/build/VideoAnalysFromHC
Binary files differ