panlei
2019-06-25 43f1e57c6c8c0acf2fd92cdd07b7d15852ba6011
ruleserver/ruleToformula.go
@@ -60,6 +60,12 @@
   score      float64 // 区域内的目标的相似度
   proportion float64 // 区域内的目标的占比
   size       float64 // 区域内的目标的尺寸
   liker      []LikePerson
}
type LikePerson struct {
   Id    string  // 与之相似的底库人员的id
   Score float64 // 与底库人员的相似值
}
// 每个区域内的图片数据集合
@@ -83,7 +89,8 @@
// sdk输出的图片上单个目标的数据
type PhotoMap struct {
   Rects Rect    // 矩形区域参数
   Score float64 // 相似度得分
   Score float64 // 相似度得分(有多大程度像一个目标。人脸,人体或车等等)
   Liker []LikePerson // 如果是人脸的话尤其是比对,应存下他跟底库的人员的相似情况 yolo的话给nil就行
}
// 从通道中获取的sdk输出的图像数据(目前主要是yolo算法的数据)
@@ -452,6 +459,7 @@
      }
   }
}
// 冗余拼接
func splice1 (am *AreaMap) string {
   args := am.targetNum
@@ -460,6 +468,7 @@
   result, _ := expression.Evaluate(nil)                      // 得到数学公式的结果
   return strconv.FormatBool(result.(bool))
}
// 给数据库的规则表达式代参 args: 一条子规则,区域数据
func transferParameters(rule *protomsg.Rule, am *AreaMap) string {
   if rule.PolygonId == am.areaId { // 首先规则所对应的区域id要跟区域数据的id对的上
@@ -489,11 +498,12 @@
      } else if rule.SdkId == "FaceDetect" { // 人脸检测
         if rule.Operator == "==" || rule.Operator == ">=" || rule.Operator == "<=" || rule.Operator == "<" || rule.Operator == ">" || rule.Operator == "!=" {
            // 如果是不规矩的连接符统统返回false 规则也只能判断人脸的相似度,所以不存在别的连接符
            return "false"
         } else {
            return "false"
         }
      } else {
      } else if rule.SdkId == "FaceCompare"{
      }