| | |
| | | |
| | | //} |
| | | AppPipeController::AppPipeController(std::string folderPath, const SdkRuleMap &ruleMap) : |
| | | m_rpcClient("RtspAnalysServer", "127.0.0.1",appPref.getIntData("RpcServerPort"),"tcp"), |
| | | videoCaptureElement("filePath", 25, -1, appPref.getLongData("gpu.index")), |
| | | // videoCaptureElement(40), |
| | | m_index(0), |
| | |
| | | faceRpcElement(folderPath + "faceRpc", ruleMap[FaceSdk]), |
| | | faceExtractElement(folderPath + "faceExtract", ruleMap[FaceSdk]), |
| | | triggerElement(25, 10), |
| | | recordVideoElement(-1, ""), |
| | | // recordVideoElement(-1, ""), |
| | | bRecordVideoEnable(false), |
| | | rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp"), |
| | | |
| | | m_bSetWH(false) |
| | | { |
| | | |
| | |
| | | // intKeepRight(); |
| | | //} |
| | | AppPipeController::AppPipeController(std::string camId, const SdkRuleMap &ruleMap, bool RecordVideoEnable) : |
| | | 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), |
| | |
| | | faceRpcElement(camId + "faceRpc", ruleMap[FaceSdk]), |
| | | faceExtractElement(camId + "faceExtract", ruleMap[FaceSdk]), |
| | | triggerElement(25, 4), |
| | | recordVideoElement(camId, appPref.getStringData(camId + "rtsp")), |
| | | newRecordVideoElement(camId), |
| | | // recordVideoElement(camId, appPref.getStringData(camId + "rtsp")), |
| | | // newRecordVideoElement(camId), |
| | | perimeterElement(ruleMap[PerimeterSdk]), |
| | | crowdElement(ruleMap[CrowdSdk]), |
| | | perStaticElement(ruleMap[PerStaticSdk]), |
| | |
| | | rightJudgment(ruleMap[KeepRightSdk]), |
| | | bRecordVideoEnable(RecordVideoEnable), |
| | | m_sdkRuleMap(ruleMap), |
| | | rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp"), |
| | | m_bSetWH(false) |
| | | |
| | | { |
| | |
| | | |
| | | string test_str; |
| | | |
| | | |
| | | void AppPipeController::RecordVideo() { |
| | | /*std::string imgKeyYolo = yoloRpcElement.getProperty("imgKey"); |
| | | |
| | | std::string imgKeyFace = faceRpcElement.getProperty("imgKey"); |
| | | if(faceRpcElement.getTriggerState() || |
| | | personElement.getTriggerState() || |
| | | leftJudgment.getTriggerState() || |
| | | rightJudgment.getTriggerState() || |
| | | perimeterElement.getTriggerState() || |
| | | crowdElement.getTriggerState() || |
| | | perHubElement.getTriggerState() || |
| | | perStaticElement.getTriggerState()) |
| | | { |
| | | try { |
| | | auto server = rpcClient.getServer(); |
| | | if (!server) |
| | | { |
| | | ERR("server is null"); |
| | | return; |
| | | } |
| | | |
| | | if(imgKeyFace != imgKeyYolo) |
| | | { |
| | | server->recordVideo(imgKeyFace); |
| | | server->recordVideo(imgKeyYolo); |
| | | INFO("Record Video Face: "<<imgKeyFace); |
| | | INFO("Record Video Yolo: "<<imgKeyYolo); |
| | | } else { |
| | | INFO("Record Video: "<<imgKeyYolo); |
| | | server->recordVideo(imgKeyFace); |
| | | } |
| | | } |
| | | catch (std::exception &e) |
| | | { |
| | | ERR("Record Video ImgKeyFace: "<<imgKeyFace <<" ImgKeyYolo :"<<imgKeyYolo <<" Message: "<<e.what()); |
| | | return ; |
| | | } |
| | | } |
| | | else { |
| | | INFO("ImageNoFace Yolo:"<<imgKeyYolo<<" Face:"<<imgKeyFace); |
| | | INFO("faceRpcElement: "<< faceRpcElement.getTriggerState() <<" "<< |
| | | "personElement: "<<personElement.getTriggerState() <<" "<< |
| | | "leftJudgment: "<<leftJudgment.getTriggerState() <<" "<< |
| | | "leftJudgment: "<<rightJudgment.getTriggerState() <<" "<< |
| | | "perimeterElement: "<<perimeterElement.getTriggerState()<<" "<< |
| | | "crowdElement: "<<crowdElement.getTriggerState()<<" "<< |
| | | "perHubElement: "<<perHubElement.getTriggerState()<<" "<< |
| | | "perStaticElement: "<<perStaticElement.getTriggerState()); |
| | | }*/ |
| | | } |
| | | void AppPipeController::init() { |
| | | |
| | | unsigned char ip_old[15] = {0}; |
| | |
| | | m_hiredisTool.listRpop(m_camId,imgKey); |
| | | if(imgKey.empty()) |
| | | { |
| | | ERR("imgKey.empty() "<<imgKey); |
| | | ERR("CamId "<<m_camId<<" No ImgKey"); |
| | | return; |
| | | } |
| | | |
| | |
| | | m_hiredisTool.delKey(imgKey); |
| | | if(imageTemp.empty()) |
| | | { |
| | | ERR("No Image Data In: "<<imgKey); |
| | | ERR("No Image Data In: "<<m_camId<<" ImgKey:"<<imgKey); |
| | | return; |
| | | } |
| | | std::string strNewTime = AppUtil::getTimeUSecString(); |
| | |
| | | imageDrawElement.setImage(imageTemp); |
| | | imageDrawElement.submit(); |
| | | } |
| | | |
| | | if(faceRpcElement.getTriggerState() || |
| | | //this->RecordVideo(); |
| | | /*if(faceRpcElement.getTriggerState() || |
| | | personElement.getTriggerState() || |
| | | leftJudgment.getTriggerState() || |
| | | rightJudgment.getTriggerState() || |
| | |
| | | "crowdElement: "<<crowdElement.getTriggerState()<<" "<< |
| | | "perHubElement: "<<perHubElement.getTriggerState()<<" "<< |
| | | "perStaticElement: "<<perStaticElement.getTriggerState()); |
| | | } |
| | | }*/ |
| | | } |
| | | }); |
| | | |
| | |
| | | personElement.setObjsResults(yoloRpcElement.getLastScoreRects()); |
| | | personElement.submit(); |
| | | } |
| | | //INFO("Record Video By Yolo"); |
| | | //this->RecordVideo(); |
| | | }); |
| | | |
| | | faceRpcElement.registerConnector([&] { |
| | | imageDrawElement.setFaces(faceRpcElement.getLastScoreRects()); |
| | | //INFO("Record Video By Face"); |
| | | //this->RecordVideo(); |
| | | }); |
| | | |
| | | yoloRpcElement.registerConnector("YoloTrigger", [&] { |
| | | // auto images = yoloRpcElement.getTriggerMats(); |
| | | //INFO("Record Video By Yolo"); |
| | | //this->RecordVideo(); |
| | | }); |
| | | |
| | | faceRpcElement.registerConnector("FaceTrigger", [&] { |
| | |
| | | faceRpcElement.getTriggerFaces(), |
| | | faceRpcElement.getTriggerScoreRects(), |
| | | faceRpcElement.getTriggerMats()}); |
| | | //INFO("Record Video By Face"); |
| | | //this->RecordVideo(); |
| | | }); |
| | | |
| | | imageDrawElement.registerConnector([&] { |
| | |
| | | } |
| | | |
| | | // registerElement(newRecordVideoElement); |
| | | videoCaptureElement.setOutPutInterval(3); |
| | | //videoCaptureElement.setOutPutInterval(3); |
| | | faceExtractElement.setProperty("index", to_string(m_index)); |
| | | registerElement(yoloRpcElement); |
| | | //#todo setProperty |