| | |
| | | |
| | | import ( |
| | | "encoding/json" |
| | | "github.com/gogo/protobuf/proto" |
| | | "fmt" |
| | | "ruleprocess/cache" |
| | | "ruleprocess/logger" |
| | | "sort" |
| | |
| | | // 看看是否有只配人脸比对算法但没有配对比库的规则,如果有,则比对对象为全部底库 |
| | | 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 |
| | | } |
| | | } |
| | |
| | | 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) |
| | | } |
| | | } |