panlei
2019-06-29 56ac18c15694a8a355d826ae990c96bff53a9316
ruleserver/ruleToformula.go
@@ -125,7 +125,6 @@
   ImageWidth  int        // 摄像机拍摄的图像宽 像素
   ImageHeight int        // 摄像机拍摄的图像高 像素
   AreaMapList []AreaMap  // 本sdk提取的数据按照区域划分后的数据集合
   RuleResult  []Result   // 过完规则后打的标签
}
// 从算法模块儿拿来的对一帧图像各个算法提取的数据集合
@@ -212,6 +211,7 @@
      // 跑本摄像机的所有规则组 一组一组跑
      taskRuleList := GetRuleGroup(args.CameraId) // 本摄像机下所有任务组
      // 得到属于该摄像机的若干组任务的完整规则(跟每一条完整规则比较之后得出本张图像对于某个规则是否报警的结果。放进map,比如本帧图像的id,所碰撞成功的规则id)
      args.RuleResult = make(map[string]interface{})
      args.RuleResult["yolo"] = []Result{}
      args.RuleResult["face"] = []Arg{}
      if len(taskRuleList) > 0 {
@@ -374,7 +374,7 @@
         // 这步要备齐表达式里所需要的所有参数
         a.targetNum++
         arg1 := Arg{obj.Score, PgsInterPercent(areaPoints, obj.Rects, widthScale, heigthScale), float64(obj.Rects.Width * obj.Rects.Height), obj.IsYolo, obj.Rects, obj.SdkName, obj.ThftRes, obj.Liker}
         log.Println("放进去的arg:-------", arg1)
         //log.Println("放进去的arg:-------", arg1)
         a.args = append(a.args, arg1)
         a.filterData = append(a.filterData, arg1)
      }
@@ -591,6 +591,7 @@
      }
   } else {
      // 处理的都是yolo数据
      log.Println("规则中的sdkId为:",rule.SdkId,"--区域数据集合中的sdkId为:",am.sdkId,"--规则中的区域Id为:",rule.PolygonId,"--区域数据集合中的区域Id为:",am.areaId,)
      if rule.SdkId == am.sdkId && rule.PolygonId == am.areaId { // 首先这条规则得是这个算法的规则,其次规则所对应的区域id要跟区域数据的id对的上
         if rule.SdkArgAlias == "score" || rule.SdkArgAlias == "proportion" || rule.SdkArgAlias == "size" { // 判断的是相似值,占比,尺寸等过滤条件,如果再有,还可以再加
            var args []Arg