save code
wait test
wait init param
| | |
| | | ../../../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 |
| | |
| | | NewRecordVideoElement.cpp |
| | | JudgmentRetrogradeTool.cpp |
| | | PerimeterElement.cpp |
| | | |
| | | FaceTrackingWrapper.cpp |
| | | |
| | | TrackingTrigger.cpp |
| | | FaceRpcElement.cpp |
| | |
| | | curl |
| | | fastcommon |
| | | fdfsclient |
| | | THFaceTracking |
| | | pthread |
| | | ) |
| | | |
| | | include_directories( |
| | |
| | | ../../../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/ |
| | |
| | | |
| | | ../../../BasicPlatForm/libs/glog/lib |
| | | ../../../BasicPlatForm/libs/crul/lib |
| | | ../../../BasicPlatForm/libs/Casia_Face/FaceSdk/lib/gpu |
| | | ) |
| | | |
| | | add_executable(${PROJECT_NAME} |
| | |
| | | |
| | | trackingTrigger = new TrackingTrigger(t_score); |
| | | m_trackingRet = appPref.getIntData("FaceTrackingRet"); |
| | | //#todo get key |
| | | // m_channel = g_channelCache.find() |
| | | } |
| | | |
| | | FaceRpcElement::~FaceRpcElement() { |
| | |
| | | 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()); |
| | |
| | | TriggerElement m_triggerElement; |
| | | // 是否使用sdk跟踪 |
| | | bool m_trackingRet; |
| | | int m_channel; |
| | | }; |
| | | |
| | | #endif // FACERPCELEMENT_H |
| | |
| | | // |
| | | |
| | | #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() { |
| | |
| | | #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" |
| | | |
| | |
| | | // 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 |
| | |
| | | jsoncpp |
| | | curl |
| | | uuid |
| | | THFaceTracking |
| | | pthread |
| | | ) |
| | | include_directories( |
| | |
| | | |
| | | ../RecordVideo/rpc |
| | | ../StructureApp/rpc |
| | | ../StructureApp/ |
| | | ../YoloServer/rpc |
| | | ../FaceDetectServer/rpc |
| | | ../FaceSearchServer/rpc |
| | |
| | | ../../../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/ |
| | |
| | | ../../../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} |
| | |
| | | // |
| | | |
| | | #include "RtspAnalysElement.h" |
| | | #include <FaceTrackingWrapper.h> |
| | | |
| | | #include <basic/http_server/HttpSrvRetRecieve.hpp> |
| | | |
| | |
| | | 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]) { |
| | |
| | | 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 |
| | | |
| | |
| | | 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"); |
| | | } |
| | |
| | | // controllers[index] = new AppPipeController(index, std::move(value), false); |
| | | |
| | | controllers[index]->setfdfsClient(&fdfsClient); |
| | | controllers[index]->start(); |
| | | // controllers[index]->start(); |
| | | currentCount++; |
| | | return 0; |
| | | } |