panlei
2019-07-08 c09d942e31a0a855a8690a69cc157b3ed7b5efc8
ruleserver/ruleToformula.go
@@ -2,7 +2,7 @@
import (
   "encoding/json"
   "github.com/gogo/protobuf/proto"
   "fmt"
   "ruleprocess/cache"
   "ruleprocess/logger"
   "sort"
@@ -235,7 +235,7 @@
   // 看看是否有只配人脸比对算法但没有配对比库的规则,如果有,则比对对象为全部底库
   for j := 0; j < len(groupRule.Rules); j++ {
      if groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a972"{
         if groupRule.Rules[j].SdkArgAlias == "对比底库" {
         if groupRule.Rules[j].SdkArgAlias == "compareBase" {
            compareFlag = true
         }
      }
@@ -246,17 +246,23 @@
      logger.Info("没有配置对比底库参数")
   }
   for j := 0; j < len(groupRule.Rules); j++ {
      if groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a972" && groupRule.Rules[j].SdkArgAlias == "对比底库"{
      // 只有是人脸对比并且配置的参数是对比底库才走(若配的对比阈值则不走)
      if groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a972" && groupRule.Rules[j].SdkArgAlias == "compareBase" {
         for _, sdkData := range args.Sdkdata {
            if sdkData.SdkId == "812b674b-2375-4589-919a-5c1c3278a97e" { // 搜索到人脸检测的sdkdata 现在关于人脸的只有他一个sdk,全找他
               for _, areaMap := range sdkData.AreaMapList {
                  // 拿区域中每个人脸特征值去对比,填充其liker
                  if groupRule.Rules[j].PolygonId == areaMap.areaId {
                     for _,arg := range areaMap.args {
                        bytes := bigCache.Getdbpersonmsg(string(arg.Feature),true)
                        binfos := protomsg.Binfos{}
                        proto.Unmarshal(bytes,&binfos)
                        arg.Liker = binfos.Infos
                        bytes := bigCache.Getdbpersonmsg("", arg.Feature, true)
                        var m map[string]float32
                        json.Unmarshal(bytes, &m)
                        for key, val := range m {
                           fmt.Println(key)
                           baseinfo := protomsg.Baseinfo{}
                           baseinfo.CompareScore = val
                           arg.Liker = append(arg.Liker, &baseinfo)
                        }
                        logger.Info("-------------------成功给liker赋值:",arg.Liker)
                     }
                  }