From f08948b36e73de524a8177f64dab91afd33fe8fd Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期三, 09 十月 2019 17:07:01 +0800 Subject: [PATCH] 把分值和id以及坐标都预备存上 --- ruleserver/ruleToformula.go | 67 +++++++++++++++------------------ 1 files changed, 31 insertions(+), 36 deletions(-) diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go index a3f3354..da722fc 100644 --- a/ruleserver/ruleToformula.go +++ b/ruleserver/ruleToformula.go @@ -2,7 +2,7 @@ import ( "ruleprocess/cache" - "ruleprocess/logger" + "basic.com/valib/logger.git" "sort" "strconv" "strings" @@ -82,6 +82,11 @@ RuleResult map[string]interface{} // 杩囧畬瑙勫垯鍚庢墦鐨勬爣绛� face: []FaceResult, yolo: []Result } +type TargetInfo struct { + Rect + TargetId uint64 + TargetScore float64 +} // 杩囪鍒欏簱鎵撲笂鐨勬爣绛� type Result struct { TaskId string // 浠诲姟id @@ -90,7 +95,7 @@ DefenceState bool // 鏄惁甯冮槻 AlarmLevel int32 // 鎶ヨ绛夌骇 RuleText string // 鏂囧瓧鐗堣鍒欑粍 - Location []Rect // 鐩爣鐨勫潗鏍� + Location []TargetInfo // 鐩爣鐨勫潗鏍� AlarmPolygon string // 瑙﹀彂鐨勬姤璀︽ IsLink bool // 鏄惁鏄仈鍔ㄤ换鍔� Others @@ -205,9 +210,8 @@ // 濡傛灉姝ょ粨鏋滀负鐪熶笖褰撳墠杩囩殑鏄痽olo绠楁硶锛屽簲璁颁笅姝よ鍒欐墍瀵瑰簲鐨剆dkName,鍙﹀锛岃繕瑕佸幓閲� (鍚庡姞锛氭妸姝ゆ潯瑙︾鐨勫尯鍩焛d涔熻褰曚笅鏉�) if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(sdkNames, sdkName) { sdkNames = sdkName + "," - polygonId = groupRule.Rules[j].PolygonId + "," } - if strings.Contains(ruleResult.Result, "true") && ipcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && !strings.Contains(polygonId, groupRule.Rules[j].PolygonId) { + if strings.Contains(ruleResult.Result, "true") && !strings.Contains(polygonId, groupRule.Rules[j].PolygonId) { polygonId = groupRule.Rules[j].PolygonId + "," } resultSplice = append(resultSplice, &ruleResult) @@ -216,7 +220,6 @@ } } } - // 鍐嶈繃鍏朵粬鏁版嵁 杩欐鐩存帴寰楀埌缁撴灉锛堢湡鎴栧亣锛� 杩囩洰鏍囨暟閲� for j := 0; j < len(groupRule.Rules); j++ { for _, sdkData := range args.Sdkdata { @@ -350,7 +353,7 @@ //} logger.Warn("___________________________________________________________________________缁堜簬璧板畬涓囬噷闀垮緛") // 鎶婁粬浠殑浣嶇疆鏁版嵁涔熶紶涓嬪幓 - locations := []Rect{} + locations := []TargetInfo{} for _, sdkData := range args.Sdkdata { if sdkData.IpcId == "02D54B61-0F16-C604-8567-FC4BE493C523" && sdkNames != "" { // 鎶妝olo鏁版嵁鐨勫悇涓洰鏍囩殑鍧愭爣杈撳嚭鏂逛究鍚庨潰鐢绘 for _, areaMap := range sdkData.AreaMapList { @@ -372,7 +375,7 @@ //logger.Info("-------------------yolo缁撴灉鏍囩闀垮害", len(args.RuleResult["yolo"].([]Result))) } if faceFlag { - args.RuleResult["face"] = append(args.RuleResult["face"].([]FaceResult), FaceResult{Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, []Rect{}, polygonId, islink,label,}, faces}) + args.RuleResult["face"] = append(args.RuleResult["face"].([]FaceResult), FaceResult{Result{taskId, sdkNames, groupRule.GroupId, groupRule.DefenceState, groupRule.AlarmLevel, groupRule.GroupText, []TargetInfo{}, polygonId, islink,label,}, faces}) //logger.Info("-------------------face缁撴灉鏍囩", len(args.RuleResult["face"].([]FaceResult))) labelTypes = append(labelTypes,1) } @@ -411,11 +414,15 @@ return faces } -func putYolosToResult(am *AreaMap) []Rect { - locations := []Rect{} +func putYolosToResult(am *AreaMap) []TargetInfo { + locations := []TargetInfo{} if len(am.filterData) > 0 { for _, data := range am.filterData { - locations = append(locations, data.Location) + location := TargetInfo{} + location.Rect = data.Location + location.TargetId = data.Id + location.TargetScore = data.Score + locations = append(locations, location) } } //logger.Println("-----------------------------------------------鍚浣犳槸绌虹殑锛�",faces) @@ -580,7 +587,7 @@ //logger.Info("瑙勫垯鐨勭畻娉昳d鍜屽尯鍩熺殑绠楁硶id锛�", rule.SdkId, "===", am.sdkId) if rule.PolygonId == am.areaId { // 绠楁硶鍜屽尯鍩熼兘寰楀鐨勪笂 - if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a972" && rule.SdkArgAlias != "time_rule"{ + if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a972" && rule.SdkArgAlias != "time_rule" { if rule.RuleWithPre == "||" { return LittleRuleResult{} } else { @@ -648,17 +655,15 @@ } else { return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + "false", rule.Sort} } - } else { - return LittleRuleResult{} } - } else { - return LittleRuleResult{} + } else if rule.SdkArgAlias == "" { // 浠�涔堝弬鏁伴兘涓嶉厤鐨勬儏鍐� + if am.targetNum > 0 { + return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + "true", rule.Sort} + } else { + return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + "false", rule.Sort} + } } - } else { - return LittleRuleResult{} } - } else { - return LittleRuleResult{} } } else { // 澶勭悊鐨勯兘鏄痽olo鏁版嵁 @@ -698,14 +703,16 @@ return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + "false", rule.Sort} } - } else { - return LittleRuleResult{} + } else if rule.SdkArgAlias == "" { + if am.targetNum > 0 { + return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + "true", rule.Sort} + } else { + return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + "false", rule.Sort} + } } - - } else { - return LittleRuleResult{} } } + return LittleRuleResult{} } // 濡傛灉鏈夋寔缁椂闂存潯浠剁淮鎶ゅ紑鍚竴涓畾鏃跺櫒 @@ -756,18 +763,6 @@ result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋� return LittleRuleResult{am.sdkName, rule.RuleWithPre + " " + strconv.FormatBool(result.(bool)), rule.Sort} // 鍔犱笂鍏充簬绠楁硶鐨勫垽鏂潯浠讹紝涓嶈兘鍙湁鍏充簬瑙勫垯鐨勶紝鏈夌殑绠楁硶鏈韩灏辨槸涓�涓鍒欙紝濡備釜浣撻潤姝紝闈犲彸琛�,鎵�浠ワ紝鎷垮埌褰撳墠瀛愯鍒欑殑sdkid鏉ュ垽鏂槸鍚︽槸閭d簺鐗规畩鐨勮鍒� - } else if rule.SdkId == "IsStatic" { // 闈欐绠楁硶 - if am.isStatic { - return LittleRuleResult{} - } else { - return LittleRuleResult{} - } - } else if rule.SdkId == "KeepRight" { // 闈犲彸琛岀畻娉� - if am.keepRight { - return LittleRuleResult{} - } else { - return LittleRuleResult{} - } } } return LittleRuleResult{} -- Gitblit v1.8.0