panlei
2019-07-01 3b67420a888523f51e65ac40bb57a5a55c126b9a
ruleserver/ruleToformula.go
@@ -64,7 +64,7 @@
   Location   Rect    // 记下每个目标的位置参数,最后给结果装配人脸数据的时候用的到
   SdkName    string
   ThftRes    protomsg.ThftResult
   Liker      []LikePerson
   Liker      []*protomsg.Baseinfo
}
type LikePerson struct {
@@ -98,7 +98,7 @@
   IsYolo  bool    // 是否是yolo数据
   SdkName string
   ThftRes protomsg.ThftResult
   Liker   []LikePerson // 如果是人脸的话尤其是比对,应存下他跟底库的人员的相似情况 yolo的话给nil就行
   Liker   []*protomsg.Baseinfo // 如果是人脸的话尤其是比对,应存下他跟底库的人员的相似情况 yolo的话给nil就行
}
// 每个算法对于当前帧画面自己提取的数据
@@ -521,7 +521,7 @@
            for _, obj := range am.filterData {
               for index := 0; index < len(obj.Liker); {
                  // 将达不到阈值的相似者从相似者数组中删除
                  if obj.Liker[index].Score < argValue {
                  if float64(obj.Liker[index].CompareScore) < argValue {
                     // Go 语言中切片删除元素的本质是:以被删除元素为分界点,将前后两个部分的内存重新连接起来。不用怀疑,数组删除元素就这么坑爹
                     obj.Liker = append(obj.Liker[:index], obj.Liker[index+1:]...)
                  } else {
@@ -589,7 +589,6 @@
      }
   } 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