From e2aab518eddae165b9a7c517fbaddaf692ac4070 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期二, 10 九月 2019 18:49:05 +0800 Subject: [PATCH] merge labelFilter --- ruleserver/ruleToformula.go | 41 ++++++++++++++++++++++++++++------------- 1 files changed, 28 insertions(+), 13 deletions(-) diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go index 2253962..b07e33d 100644 --- a/ruleserver/ruleToformula.go +++ b/ruleserver/ruleToformula.go @@ -20,7 +20,7 @@ // 鎷垮埌鏈憚鍍忔満鐨勫尯鍩� cameraPolygons := GetPolygons(args.CameraId) // 鎶婃墍鏈夌殑sdk鎻愬彇鐨勬暟鎹兘鎸夋墍灞炴憚鍍忔満鐨勫尯鍩熷綊缃� - //logger.Debug("褰撳墠鎽勫儚鏈篿d涓猴細",message.Cid,"褰撳墠鎽勫儚鏈烘墽琛岀殑浠诲姟鏄細",message.Tasklab.Taskname) + logger.Debug("褰撳墠鎽勫儚鏈篿d涓猴細",message.Cid,"褰撳墠鎽勫儚鏈烘墽琛岀殑浠诲姟鏄細",message.Tasklab.Taskname,"--浠诲姟id涓猴細",message.Tasklab.Taskid) for _, arg := range args.Sdkdata { SdkDataFormat(args.CameraId, arg, cameraPolygons) } @@ -64,7 +64,7 @@ } } -func RunRule1(args *structure.SdkDatas, groupRule *protomsg.GroupRule, taskId string, message *protomsg.SdkMessage, label structure.Others) bool { +func RunRule(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string, message *protomsg.SdkMessage, label Others) (bool,[]int) { defer func() { if err := recover(); err != nil { logger.Error("姣斿瑙勫垯鏈夎", err) @@ -140,7 +140,7 @@ } func CallMiddleware(args *structure.SdkDatas,rule protomsg.GroupRule) ([]*structure.LittleRuleResult, string, string){ - p,err := plugin.Open("./algorithm/middleware") + p,err := plugin.Open("./algorithm/middleware.so") if err != nil { panic(err) } @@ -231,6 +231,7 @@ } } } + logger.Info("face鏍囩鐨勯暱搴︼細",len(faces)) //for _,face := range faces { // //logger.Debug("鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�擾_______________鐪嬬湅浜鸿劯鐨勫潗鏍�:",face.Location) //} @@ -251,27 +252,30 @@ } else { islink = false } + var labelTypes []int // 0涓簓olo鏍囩锛�1涓篺ace鏍囩 2涓轰袱鑰呮爣绛� if sdkNames != "" { - args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]structure.Result), structure.Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, locations, polygonId, islink, label,}) + args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, locations, polygonId, islink,label,}) + labelTypes = append(labelTypes,0) //logger.Info("-------------------yolo缁撴灉鏍囩闀垮害", len(args.RuleResult["yolo"].([]Result))) } if faceFlag { args.RuleResult["face"] = append(args.RuleResult["face"].([]structure.FaceResult), structure.FaceResult{structure.Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, []structure.Rect{}, polygonId, islink, label,}, faces}) //logger.Info("-------------------face缁撴灉鏍囩", len(args.RuleResult["face"].([]FaceResult))) + labelTypes = append(labelTypes,1) } - return true + return true,labelTypes } else { - return false + return false,[]int{} } } else { - // 缁撴灉涓哄亣鏃朵篃瑕佽蛋锛屾湁鏃跺�欎负鍋囩殑鐘舵�佸弽杞暟鎹篃闇�瑕佽褰曚笅鏉� + // 缁撴灉涓哄亣鏃朵篃瑕佽蛋锛屾湁鏉�姝诲畾鏃跺櫒鐨勬搷浣� TimerAlarm(&label, groupRule.GroupId, result.(bool)) //fmt.Println(timeFlag) - return false + return false,[]int{} } } else { - return false + return false,[]int{} } } @@ -336,7 +340,7 @@ } } // 寰�鏁扮粍閲岃祴鍊� - isOk := RunRule(args, groupRule, taskId, message, label) + isOk,labelTypes := RunRule(args, groupRule, taskId, message, label) if isOk { logger.Info("杩欏抚鍥惧儚鍦ㄤ换鍔′笅鐨勪竴鏁存潯瑙勫垯涓嬶紙鑱斿姩浠诲姟涓嬪氨鏄窡鏈憚鍍忔満鍍忕浉鍏崇殑灏忚鍒欙級鐨勫垽鏂粨鏋滀负true") // 鏍规嵁cameraId鍘绘洿鏂版垨鑰呮彃鍏ョ粨鏋�,鐒跺悗鍒ゆ柇鏄惁鏁扮粍鏄惁鍙互寰楀嚭鎶ヨ鐨勭粨璁� @@ -409,8 +413,20 @@ } else { logger.Warn("鏁扮粍涓嶅渾婊′笉鎵撴爣绛�") // 鍊掓槸鎶婃墦鐨勭粍瑙勫垯鏍囩缁欏幓鎺変簡鍟� - lens := len(args.RuleResult["yolo"].([]structure.Result)) - 1 - args.RuleResult["yolo"] = args.RuleResult["yolo"].([]structure.Result)[0:lens] + for _,val := range labelTypes { + if val == 0 { + if len(args.RuleResult["yolo"].([]Result)) >= 1 { + lens := len(args.RuleResult["yolo"].([]Result))-1 + args.RuleResult["yolo"] = args.RuleResult["yolo"].([]Result)[0:lens] + } + } + if val == 1 { + if len(args.RuleResult["face"].([]FaceResult)) >= 1 { + lens := len(args.RuleResult["face"].([]FaceResult))-1 + args.RuleResult["face"] = args.RuleResult["face"].([]FaceResult)[0:lens] + } + } + } } } else { // 娌℃湁鎶ヨ锛� //logger.Info("杩欏抚鍥惧儚鍦ㄤ换鍔′笅鐨勪竴鏁存潯瑙勫垯涓嬶紙鑱斿姩浠诲姟涓嬪氨鏄窡鏈憚鍍忔満鍍忕浉鍏崇殑灏忚鍒欙級鐨勫垽鏂粨鏋滀负false") @@ -430,7 +446,6 @@ } } - // 濡傛灉鏈夋寔缁椂闂存潯浠剁淮鎶ゅ紑鍚竴涓畾鏃跺櫒 func duration(rule *protomsg.Rule, groupId string, am *structure.AreaMap, args *structure.SdkDatas, message *protomsg.SdkMessage) { if rule.PolygonId == am.AreaId { // 棣栧厛瑙勫垯鎵�瀵瑰簲鐨勫尯鍩焛d瑕佽窡鍖哄煙鏁版嵁鐨刬d瀵圭殑涓� 閰嶇疆鐨勭畻娉曡瀵圭殑涓� -- Gitblit v1.8.0