panlei
2019-06-29 211dcd46f074f49017c8512cb8562c7959ab8855
ruleserver/ruleToformula.go
@@ -112,7 +112,7 @@
   IsStatic    bool       // 是否静止
   ImageWidth  int        // 摄像机拍摄的图像宽 像素
   ImageHeight int        // 摄像机拍摄的图像高 像素
   AreaMapList []AreaMap  // 本sdk提取的数据按照区域划分后的数据集合
   AreaMapList []*AreaMap  // 本sdk提取的数据按照区域划分后的数据集合
}
// 从算法模块儿拿来的对一帧图像各个算法提取的数据集合
@@ -180,7 +180,7 @@
   // cameraPolygons := GetPolygons(arg.CameraId)
   // list := AreaMapList{}
   for _, polygon := range cameraPolygons {
      areaMap := AreaMap{cameraId: cameraId, areaId: polygon.Id, areaJson: polygon.Polygon, triggerLine: polygon.TriggerLine, directionLine: polygon.DirectionLine}
      areaMap := &AreaMap{cameraId: cameraId, areaId: polygon.Id, areaJson: polygon.Polygon, triggerLine: polygon.TriggerLine, directionLine: polygon.DirectionLine}
      // 为每个摄像机区域填充数据
      areaMap.CountAreaObjs(arg)
      arg.AreaMapList = append(arg.AreaMapList, areaMap)
@@ -230,8 +230,11 @@
   log.Println("---------------------看下这个组规则:",groupRule.Rules)
   for j := 0; j < len(groupRule.Rules); j++ {
      for _, sdkData := range args.Sdkdata {
         if sdkData.SdkId == "812b674b-2375-4589-919a-5c1c3278a975" {
            log.Println("入侵的算法数据",sdkData)
         }
         for _, areaMap := range sdkData.AreaMapList {
            ruleResult := filterRule(groupRule.Rules[j], &areaMap)
            ruleResult := filterRule(groupRule.Rules[j], areaMap)
            if ruleResult.Result != "" {
               log.Println("条件规则结果:", ruleResult.Result)
               resultSplice = append(resultSplice, &ruleResult)
@@ -244,7 +247,7 @@
   for _, sdkData := range args.Sdkdata {
      for _, areaMap := range sdkData.AreaMapList {
         for j := 0; j < len(groupRule.Rules); j++ {
            putFaceToResult(groupRule.Rules[j], &areaMap, faces)
            putFaceToResult(groupRule.Rules[j], areaMap, faces)
         }
      }
   }
@@ -253,7 +256,7 @@
   for j := 0; j < len(groupRule.Rules); j++ {
      for _, sdkData := range args.Sdkdata {
         for _, areaMap := range sdkData.AreaMapList {
            ruleResult := transferParameters(groupRule.Rules[j], &areaMap)
            ruleResult := transferParameters(groupRule.Rules[j], areaMap)
            if ruleResult.Result != "" {
               log.Println("数量规则结果:", ruleResult.Result)
               resultSplice = append(resultSplice, &ruleResult)
@@ -265,7 +268,7 @@
   for j := 0; j < len(groupRule.Rules); j++ {
      for _, sdkData := range args.Sdkdata {
         for _, areaMap := range sdkData.AreaMapList {
            ruleResult := timeRuleResult(groupRule.Rules[j], &areaMap)
            ruleResult := timeRuleResult(groupRule.Rules[j], areaMap)
            if ruleResult.Result != "" {
               log.Println("时间规则结果:", ruleResult.Result)
               resultSplice = append(resultSplice, &ruleResult)
@@ -277,7 +280,7 @@
   for j := 0; j < len(groupRule.Rules); j++ {
      for _, sdkData := range args.Sdkdata {
         for _, areaMap := range sdkData.AreaMapList {
            duration(groupRule.Rules[j], &areaMap)
            duration(groupRule.Rules[j], areaMap)
         }
      }
   }
@@ -361,11 +364,13 @@
   // }
   for _, obj := range arg.Photo {
      log.Println("-------------------看看areajson-------------", a.areaJson)
      log.Println("------------------看看sdkData的Photo数据----------------",obj,"----顺便看看占比-----:",PgsInterPercent(areaPoints, obj.Rects, widthScale, heigthScale))
      if threshold <= obj.Score && size <= float64(obj.Rects.Width*obj.Rects.Height) && intersectionper <= PgsInterPercent(areaPoints, obj.Rects, widthScale, heigthScale) {
         // 这步要备齐表达式里所需要的所有参数
         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)
      }