From c8e6fb13202d18e3c1ada38578d2a5cc3c184198 Mon Sep 17 00:00:00 2001 From: miyanhui <dennismi1024@gmail.com> Date: 星期一, 18 二月 2019 17:15:45 +0800 Subject: [PATCH] VideoToImageMulth和VideoAnalyFromHC支持RPC的端口设置 --- QiaoJiaSystem/StructureApp/PerimeterElement.cpp | 2 QiaoJiaSystem/DataManagerServer/AppPipeController.cpp | 2 QiaoJiaSystem/VideoToImageMulth/main.cpp | 3 + QiaoJiaSystem/VideoAnalysFromHC/main.cpp | 3 + QiaoJiaSystem/StructureApp/FaceRpcElement.cpp | 10 +++++ QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.h | 3 + QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp | 28 ++++++++++++-- QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.cpp | 4 ++ QiaoJiaSystem/StructureApp/AppPipeController.cpp | 4 +- QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp | 2 QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.cpp | 2 + QiaoJiaSystem/StructureApp/PerimeterElement.h | 3 + QiaoJiaSystem/FaceDetectServer/FaceExtractServerI.cpp | 1 QiaoJiaSystem/VideoToImageMulth/RtspImageRedis.cpp | 8 +++ QiaoJiaSystem/StructureApp/FaceExtractElement.cpp | 11 ++++- 15 files changed, 69 insertions(+), 17 deletions(-) diff --git a/QiaoJiaSystem/DataManagerServer/AppPipeController.cpp b/QiaoJiaSystem/DataManagerServer/AppPipeController.cpp index a8cf2f7..8d00d0e 100644 --- a/QiaoJiaSystem/DataManagerServer/AppPipeController.cpp +++ b/QiaoJiaSystem/DataManagerServer/AppPipeController.cpp @@ -15,7 +15,7 @@ } videoCaptureElement.registerConnector([&]{ //if(!videoPublishElement.isBusy()){ - //videoPublishElement.setImage(videoCaptureElement.getImage()); + videoPublishElement.setImage(videoCaptureElement.getImage()); //videoPublishElement.submit(); //} diff --git a/QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.cpp b/QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.cpp index a52e916..6380718 100644 --- a/QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.cpp +++ b/QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.cpp @@ -44,6 +44,7 @@ FaceDetect::Faces FaceDetectServerI::faceDetect(Ice::Int width, Ice::Int height, const std::string &shareMemoryName, const Ice::Current &) { ClockTimer ct("FaceDetectServerI::faceDetect"); + INFO("Face Detect"); FaceDetect::Faces faces; QSharedMemory shareMemory(QString(shareMemoryName.c_str())); if (shareMemory.attach()) { @@ -72,6 +73,7 @@ FaceDetect::ThftResult FaceDetectServerI::faceProperty(Ice::Int width, Ice::Int height, const FaceDetect::FacePos &pos, const std::string &shareMemoryName, const Ice::Current &) { + INFO("faceProperty"); QSharedMemory shareMemory(QString(shareMemoryName.c_str())); if (shareMemory.attach()) { FaceDetect::ThftResult thftResult; diff --git a/QiaoJiaSystem/FaceDetectServer/FaceExtractServerI.cpp b/QiaoJiaSystem/FaceDetectServer/FaceExtractServerI.cpp index 1b83824..33d6ec5 100644 --- a/QiaoJiaSystem/FaceDetectServer/FaceExtractServerI.cpp +++ b/QiaoJiaSystem/FaceDetectServer/FaceExtractServerI.cpp @@ -31,6 +31,7 @@ FaceDetect::Data FaceExtractServerI::faceExtract(Ice::Int width, Ice::Int height, const FaceDetect::FacePos &pos, const std::string &shareMemoryName, const Ice::Current &) { ClockTimer ct("FaceExtractServerI::faceExtract"); + INFO("faceExtract"); QSharedMemory shareMemory(QString(shareMemoryName.c_str())); FaceDetect::Data feature; if (shareMemory.attach()) { diff --git a/QiaoJiaSystem/StructureApp/AppPipeController.cpp b/QiaoJiaSystem/StructureApp/AppPipeController.cpp index c3d0998..7b38b75 100644 --- a/QiaoJiaSystem/StructureApp/AppPipeController.cpp +++ b/QiaoJiaSystem/StructureApp/AppPipeController.cpp @@ -19,7 +19,7 @@ //} AppPipeController::AppPipeController(std::string folderPath, const SdkRuleMap &ruleMap) : - m_rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp"), + m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcServerPort"),"tcp"), videoCaptureElement("filePath", 25, -1, appPref.getLongData("gpu.index")), // videoCaptureElement(40), m_index(0), @@ -70,7 +70,7 @@ // intKeepRight(); //} AppPipeController::AppPipeController(std::string camId, const SdkRuleMap &ruleMap, bool RecordVideoEnable) : - m_rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp"), + m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcServerPort"),"tcp"), videoCaptureElement(appPref.getStringData(camId + "rtsp"), 25, 3000, appPref.getLongData("gpu.index")), // videoCaptureElement(40), m_index(0), diff --git a/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp b/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp index c3f170a..5269715 100644 --- a/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp +++ b/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp @@ -38,7 +38,7 @@ appPref.getIntData("faceSear.port"), "tcp"), // faceSearchRpcClient("faceCmServer", "", 10004, "tcp") m_sdkRule(rule), - m_rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp") + m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcServerPort"),"tcp") { sharedMemory = new QSharedMemory(QString(shareMemoryName.c_str())); if (!sharedMemory->create(4608 * 2592 * 4)) { @@ -62,10 +62,15 @@ } void FaceExtractElement::timerFunc() { + INFO("MYH Run Here"); std::vector<FaceToExtract> faceExtractQueueTmp; { std::lock_guard<std::mutex> lg(imageQueueMutex); - if (faceExtractQueue.empty())return; + if (faceExtractQueue.empty()) + { + ERR("faceExtractQueue.empty "); + return; + } faceExtractQueueTmp.swap(faceExtractQueue); faceExtractQueue.clear(); } @@ -101,7 +106,7 @@ // cv::imwrite(string1, image); // } if (feature.empty()) { - ERR("feature is empty"); + INFO("No Face Find: "<<getProperty("imgKey")); continue; } features.clear(); diff --git a/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp b/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp index 8e19e77..9ab6f01 100644 --- a/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp +++ b/QiaoJiaSystem/StructureApp/FaceRpcElement.cpp @@ -82,6 +82,7 @@ } void FaceRpcElement::threadFunc() { + INFO("MYH Run Here"); // ClockTimer ct("FaceRpcElement::threadFunc"); // { // @@ -89,7 +90,10 @@ // cv::imwrite(string1, image); // } if(!isInWeek(m_sdkRule.weekRuleVec)) + { + ERR("In Week"); return; + } triggerMats.clear(); triggerFaces.clear(); triggerScoredRects.clear(); @@ -110,6 +114,7 @@ QPoint center = re.center(); if(m_bIsMask && !mPolygon.containsPoint(center,Qt::OddEvenFill)) { + ERR("m_bIsMask :"<<m_bIsMask) return; } scoredRect.rect = {x, y, w, h}; @@ -132,9 +137,14 @@ CvUtil::zoomRectEqual(scoredRect.rect, 1.5, 1.5) & cv::Rect(0, 0, image.cols, image.rows)).clone()); triggerScoredRects.push_back(trackingTrigger->getLastRect()); } else { + INFO("No Face Find: "<<getProperty("imgKey")); // DBG("trackingTrigger->triggerOnce(scoredRect) is false "); } } + if(faces.empty()) + { + INFO("No Face Find: "<<getProperty("imgKey")); + } trackingTrigger->triggerLine(); // DBG("faces.size " << faces.size()); if (getLastScoreRects().size() > 0) { diff --git a/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp b/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp index 7094791..5c3b95c 100644 --- a/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp +++ b/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp @@ -16,7 +16,7 @@ m_bSetWH(false), pointArray(nullptr), npts(0), - m_rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp") + m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcServerPort"),"tcp") { pManagerEsDB = new EsDBTool(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort")); } diff --git a/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.h b/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.h index 3d6cd76..e48fda6 100644 --- a/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.h +++ b/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.h @@ -10,6 +10,7 @@ #include <map> #include <list> #include <opencv2/opencv.hpp> +#include <basic/util/app/AppPreference.hpp> //#include <basic/pipe/TimerElement.h> #include "YoloRpcElement.h" #include <QSharedMemory> @@ -54,7 +55,7 @@ class JudgmentRetrogradeTool : public basic::PipeElement{ public: - JudgmentRetrogradeTool():m_rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp") {} + JudgmentRetrogradeTool():m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcServerPort"),"tcp") {} JudgmentRetrogradeTool(const SdkRule &rule); //JudgmentRetrogradeTool(const SdkRule &rule,SaveVideoRpcClient_t& rpcClient); diff --git a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp index d4411f1..e411855 100644 --- a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp +++ b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp @@ -25,7 +25,7 @@ m_bIsMask(true), m_bSetWH(false), pointArray(nullptr), - m_rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp") + m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcServerPort"),"tcp") { pManagerEsDB = new EsDBTool(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort")); diff --git a/QiaoJiaSystem/StructureApp/PerimeterElement.h b/QiaoJiaSystem/StructureApp/PerimeterElement.h index b9d28a2..7f90643 100644 --- a/QiaoJiaSystem/StructureApp/PerimeterElement.h +++ b/QiaoJiaSystem/StructureApp/PerimeterElement.h @@ -8,6 +8,7 @@ #include "TrackingTrigger.h" #include <QJsonArray> #include <RapidStructureApp/TriggerElement.h> +#include <basic/util/app/AppPreference.hpp> #include <basic/util/fastdfs/FastFds.hpp> #include "DBStruct.h" #include <basic/db/Elasticsearch/EsDBTool.h> @@ -16,7 +17,7 @@ class PerimeterElement : public basic::PipeElement { public: - PerimeterElement():m_rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp"){} + PerimeterElement():m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcServerPort"),"tcp"){} PerimeterElement(const SdkRule& rule); public: ~PerimeterElement(); diff --git a/QiaoJiaSystem/VideoAnalysFromHC/main.cpp b/QiaoJiaSystem/VideoAnalysFromHC/main.cpp index 3a46ebf..a82bf09 100644 --- a/QiaoJiaSystem/VideoAnalysFromHC/main.cpp +++ b/QiaoJiaSystem/VideoAnalysFromHC/main.cpp @@ -71,12 +71,13 @@ ENABLEGLOG(GET_STR_CONFIG("logPath").c_str()); #endif - appPref.setLongData("gpu.index", 1); + appPref.setLongData("gpu.index", 0); appPref.setIntData("show.image", 0); //todo appPref.setIntData("CamStart", atoi(argv[1])); appPref.setIntData("CamStep", atoi(argv[2])); + appPref.setIntData("RpcServerPort",atoi(argv[3])); //#todo get from config File // appPref.setStringData("ipAdd", "192.168.1.185"); diff --git a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp index 7d6a0af..6166a4f 100644 --- a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp +++ b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp @@ -9,6 +9,7 @@ using std::string; RtspAnalysManager::RtspAnalysManager(LDBTool *_dbTool) : m_lDBTool(nullptr), m_maxCount(50), m_currentCount(0) { + INFO("MYH DEBUG HERE"); m_lDBTool=new LDBTool; init(); @@ -39,7 +40,7 @@ //鍒濆鍖栧嚱鏁� void RtspAnalysManager::init() { - + INFO("MYH DEBUG HERE") auto lst = m_lDBTool->searchCamDevTableAll(); Record_Config lst_dev = m_lDBTool->searchConfigTableWithinServerInfo(); @@ -47,9 +48,9 @@ appPref.setIntData("n_cut_max_duration", lst_dev.n_cut_max_duration); appPref.setIntData("n_cut_min_duration", lst_dev.n_cut_min_duration); if (lst.size() > 0) { - int startCamNO = appPref.getIntData("CamStart") * appPref.getIntData("CamStep"); int CamCount = appPref.getIntData("CamStep"); + INFO("StartCamNO: "<<startCamNO<<" CamStep: "<<CamCount); auto itor = lst.begin(); if(startCamNO >= lst.size()) @@ -59,6 +60,11 @@ } for(int i=0; i < startCamNO; i++){ + + std::string t_camIdex = itor->str_cam_dev_id.toStdString(); + std::string rtsp_url = rtspAddrBuild(itor->str_ip.toStdString(), 554, itor->str_username.toStdString(), + itor->str_password.toStdString(), itor->str_brand.toStdString()); + INFO("JumpCam: "<<t_camIdex<<" URL: "<<rtsp_url); itor++; } @@ -94,7 +100,9 @@ } RtspAnalysManager::~RtspAnalysManager() { + INFO("Program Exit"); for (auto controller: m_controllers) { + INFO("Delete Controller: "<<controller.first); delete controller.second; } m_controllers.clear(); @@ -113,11 +121,12 @@ Record_Config lst_dev = m_lDBTool->searchConfigTableWithinServerInfo(); if (m_controllers.find(index) == m_controllers.end()) { + INFO("MYH DEBUG HERE"); if (m_currentCount >= m_maxCount) { ERR("addCamera faild, camera's num is full!") return -1; } - DBG("RTSP: "<<rtsp<<" INDEX:"<<index); + INFO("RTSP: "<<rtsp<<" INDEX:"<<index); m_imgRedisControllers[index] = new RtspImageRedisElement(index); m_imgRedisControllers[index]->start(); @@ -129,7 +138,8 @@ } else { removeCamera(index); - DBG("removeCamera " << index); + INFO("removeCamera " << index); + //DBG("removeCamera " << index); return addCamera(index, rtsp); } } @@ -140,6 +150,7 @@ * @return 鎬绘槸0 */ int RtspAnalysManager::removeCamera(const std::string &index) { + INFO("MYH DEBUG HERE"); if (m_controllers.find(index) == m_controllers.end())return -1; auto controller = m_controllers[index]; controller->stop(); @@ -153,6 +164,7 @@ imgRedis->wait(); delete imgRedis; m_imgRedisControllers.erase(index); + INFO("MYH DEBUG HERE"); return 0; } @@ -161,6 +173,7 @@ * @return */ int RtspAnalysManager::removeAll() { + INFO("MYH DEBUG HERE"); for (auto controller: m_controllers) { controller.second->stop(); } @@ -169,6 +182,7 @@ delete controller.second; } m_controllers.clear(); + INFO("MYH DEBUG HERE"); for (auto controller: m_imgRedisControllers) { @@ -182,6 +196,7 @@ m_currentCount = 0; + INFO("MYH DEBUG HERE"); return 0; } @@ -220,11 +235,16 @@ //淇濆瓨瑙嗛鍒癛tspImageRedis鐨勯槦鍒�,鐢盧tspCaptureElement璋冪敤 bool RtspAnalysManager::SaveImageToRedis(const std::string& camId,const std::string& imageName,const cv::Mat& img) { + INFO("MYH DEBUG HERE"); auto item = m_imgRedisControllers.find(camId); if(item!=m_imgRedisControllers.end()) { + INFO("Save Succeed Cam: "<<camId<<" ImageKey: "<<imageName); item->second->SaveImage(imageName,img); + } else { + ERR("Save Failed Cam: "<<camId<<" ImageKey: "<<imageName); } + INFO("MYH DEBUG HERE"); return true; } diff --git a/QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.cpp b/QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.cpp index 16aafb7..048999e 100644 --- a/QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.cpp +++ b/QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.cpp @@ -82,6 +82,7 @@ } void RtspCaptureElement::SaveVideo(const std::string &strImageName) { + INFO("SaveVideo: "<<strImageName); std::string strTimeStamp= AppUtil::getTimeUSecString(); std::string strPath=MakeDir(strTimeStamp); m_capture->SaveVideoByImageName(strPath,strImageName); @@ -93,16 +94,19 @@ if(m_gpuIndex>=0){ setenv("CUDA_VISIBLE_DEVICES", std::to_string(m_gpuIndex).c_str(),0); } + INFO("Open Video "<<m_path<<" GPU_Index: "<<m_gpuIndex); m_capture->open(m_path.c_str(),m_gpuIndex>=0); } void RtspCaptureElement::threadInitial() { + INFO("MYH DEBUG"); openVideo(); } void RtspCaptureElement::threadClosing() { + INFO("MYH DEBUG"); m_capture->close(); delete m_capture; m_capture = nullptr; diff --git a/QiaoJiaSystem/VideoToImageMulth/RtspImageRedis.cpp b/QiaoJiaSystem/VideoToImageMulth/RtspImageRedis.cpp index 4f74d16..d70de75 100644 --- a/QiaoJiaSystem/VideoToImageMulth/RtspImageRedis.cpp +++ b/QiaoJiaSystem/VideoToImageMulth/RtspImageRedis.cpp @@ -23,18 +23,20 @@ m_redisTool.setKeyImage(item.m_imgName,item.m_image); m_redisTool.listLpush(m_camId, item.m_imgName); m_imageQueue.pop(); + INFO("SaveImage To Redis Succeed CamID:"<<m_camId<<" ImageName:"<<item.m_imgName); } } //缁ф壙鑷埗绫�,绾跨▼鍒濆鍖栫殑涓�浜涘伐浣� void RtspImageRedisElement::threadInitial() { - + INFO("MYH DEBUG HERE"); } //缁ф壙鑷埗绫�,绾跨▼缁撴潫鐨勬椂鍊欒皟鐢� void RtspImageRedisElement::threadClosing() { + INFO("MYH DEBUG HERE"); } //淇濆瓨鍥剧墖鍒伴槦鍒椾腑, @@ -44,7 +46,11 @@ //淇濊瘉闃熷垪涓殑鍥剧墖涓嶈杩囧 if(m_imageQueue.size() < M_CAM_PIC_MAX_COUNT) { + INFO("SaveImage Succeed ImgName:"<<imageName); m_imageQueue.push(NameImagePair_s_t(imageName,img)); } + else{ + ERR("SaveImage Failed ImgName:"<<imageName); + } return true; } diff --git a/QiaoJiaSystem/VideoToImageMulth/main.cpp b/QiaoJiaSystem/VideoToImageMulth/main.cpp index 684fd82..b45f104 100644 --- a/QiaoJiaSystem/VideoToImageMulth/main.cpp +++ b/QiaoJiaSystem/VideoToImageMulth/main.cpp @@ -39,9 +39,10 @@ //todo appPref.setIntData("CamStart", atoi(argv[1])); appPref.setIntData("CamStep", atoi(argv[2])); + appPref.setIntData("RpcServerPort",atoi(argv[3])); appPref.setStringData("user.loop.absolute.path", appConfig.getStringProperty("cutPath")); - IceRpcServer<RtspAnalysManager> server("RtspAnalysServer", 10009, "tcp"); + IceRpcServer<RtspAnalysManager> server("RtspAnalysServer",appPref.getIntData("RpcServerPort"), "tcp"); server.setMessageSizeMax(1024 * 1024 * 50); server.setPoolInitSize(1); server.setPoolMaxSize(1); -- Gitblit v1.8.0