panlei
2019-07-03 1af27cee5a419bcd445375693f9bc437e6483b6f
ruleserver/ruleToformula.go
@@ -4,7 +4,6 @@
   "encoding/json"
   "fmt"
   "log"
   "os"
   "ruleprocess/cache"
   "sort"
   "strconv"
@@ -253,11 +252,20 @@
   for _, sdkData := range args.Sdkdata {
      for _, areaMap := range sdkData.AreaMapList {
         for j := 0; j < len(groupRule.Rules); j++ {
            putFaceToResult(groupRule.Rules[j], &areaMap, faces)
            faces = append(faces,putFaceToResult(groupRule.Rules[j], &areaMap)...)
         }
      }
   }
   args.RuleResult["face"] = faces
   // 配了人脸的算法才把人脸的数据甩出来打标签
   flag := false
   for j := 0; j < len(groupRule.Rules); j++ {
      if groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a97e" || groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a971" {
         flag = true
      }
   }
   if flag {
      args.RuleResult["face"] = faces
   }
   // 再过其他数据 这步直接得到结果(真或假) 过目标数量
   for j := 0; j < len(groupRule.Rules); j++ {
      for _, sdkData := range args.Sdkdata {
@@ -339,9 +347,8 @@
               args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkName, groupRule.GroupId, groupRule.AlarmLevel, groupRule.GroupText})
               log.Println("-------------------yolo结果标签",args.RuleResult["yolo"].([]Result))
            }
            if args.RuleResult["faces"] != nil {
               log.Println("-------------------face结果标签",args.RuleResult["faces"].([]Arg))
               os.Exit(1)
            if args.RuleResult["face"] != nil {
               log.Println("-------------------face结果标签",args.RuleResult["face"].([]Arg))
            }
            return true
         } else {
@@ -353,14 +360,17 @@
   }
}
func putFaceToResult(rule *protomsg.Rule, am *AreaMap, faces []Arg) {
   if rule.SdkId == am.sdkId {
func putFaceToResult(rule *protomsg.Rule, am *AreaMap) []Arg {
   faces := []Arg{}
   if rule.SdkId == am.sdkId && rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a97e" || rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a971"{
      if len(am.filterData) > 0 {
         for _, data := range am.filterData {
            faces = append(faces, data)
         }
      }
   }
   //log.Println("-----------------------------------------------听说你是空的?",faces)
   return faces
}
// 计算区域内的目标数量以及将相似度、占比、尺寸等打包