| | |
| | | } |
| | | } |
| | | } |
| | | // 作弊,直接让其比对全部底库 |
| | | // 为了测试作下弊,直接让其比对全部底库 |
| | | compareFlag = 1 |
| | | if compareFlag == 0 { |
| | | logger.Info("没有配置对比底库参数") |
| | | return |
| | | } |
| | | logger.Info("============================================进入compare") |
| | | for j := 0; j < len(groupRule.Rules); j++ { |
| | | if groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a972" { |
| | | for _, sdkData := range args.Sdkdata { |
| | | if sdkData.IpcId == "812b674b-2375-4589-919a-5c1c3278a97e" { // 搜索到人脸检测的sdkdata 现在关于人脸的只有他一个sdk,全找他 |
| | | if sdkData.IpcId == "A8B73405-373D-4F23-CED2-A617EBD7EC55" { // 搜索到人脸检测的sdkdata 现在关于人脸的只有他一个sdk,全找他 |
| | | logger.Info("============================================第一关") |
| | | for _, areaMap := range sdkData.AreaMapList { |
| | | // 拿区域中每个人脸特征值去对比,填充其liker |
| | |
| | | if err1 != nil { |
| | | logger.Error("getBaseInfo解压错误", err1) |
| | | } |
| | | logger.Info("----------------------------------------map是",m) |
| | | for key, val := range m { |
| | | logger.Info("_______________________________________对比库的返回值",key,val) |
| | | baseinfo, err1 := esutil.Dbpersoninfosbyid(key) |
| | |
| | | timeEle.N = timeEle.InitN // 重置定时器 |
| | | } |
| | | } |
| | | logger.Info("-------------------重置可能存在的定时器并返回false---------------") |
| | | logger.Info("-------------------重置相关的定时器并返回false---------------") |
| | | return false |
| | | } else { |
| | | // 最后成功报警才把符合条件的人脸数据塞进结果标签里 |
| | | faces := []Arg{} |
| | | faceFlag := false |
| | | for j := 0; j < len(groupRule.Rules); j++ { |
| | | if groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a97e" || groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a972" { |
| | | faceFlag = true |
| | | } |
| | | } |
| | | for _, sdkData := range args.Sdkdata { |
| | | if sdkData.IpcId == "A8B73405-373D-4F23-CED2-A617EBD7EC55" && faceFlag { // sdkData里有人脸数据且配置了算法才把符合条件的数据塞进标签里去 |
| | | for _, areaMap := range sdkData.AreaMapList { |
| | | faces = append(faces, putFaceToResult(&areaMap)...) |
| | | } |
| | | } |
| | | } |
| | | // 配了人脸的算法才把人脸的数据甩出来打标签 |
| | | if faceFlag { |
| | | args.RuleResult["face"] = faces |
| | | } |
| | | // 去看池子里是否有与本帧数据有关的定时器,如果有,看此时是否走到0,没有此定时器或有定时器走到0的话返回成功报警 |
| | | // 判断持续时间条件,去看池子里是否有与本帧数据有关的定时器,如果有,看此时是否走到0,没有此定时器或有定时器走到0的话返回成功报警 |
| | | var flag bool = true |
| | | logger.Info("flag 是:",flag) |
| | | for k, timeEle := range TimeEleList { |
| | | if strings.Contains(k, taskId) { |
| | | if timeEle.N != 0 { // 跟这个任务有关的定时器要全部等于0 |
| | |
| | | } |
| | | } |
| | | } |
| | | if flag { |
| | | if true { |
| | | // 最后成功报警才把符合条件的人脸数据塞进结果标签里 |
| | | // 配了人脸的算法才把人脸的数据甩出来打标签 |
| | | logger.Info("------------------------------最后一关") |
| | | faces := []Arg{} |
| | | faceFlag := false |
| | | for j := 0; j < len(groupRule.Rules); j++ { |
| | | if groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a97e" || groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a972" { |
| | | faceFlag = true |
| | | } |
| | | } |
| | | for _, sdkData := range args.Sdkdata { |
| | | if sdkData.IpcId == "A8B73405-373D-4F23-CED2-A617EBD7EC55" && faceFlag { // sdkData里有人脸数据且配置了算法才把符合条件的数据塞进标签里去 |
| | | for _, areaMap := range sdkData.AreaMapList { |
| | | faces = append(faces, putFaceToResult(&areaMap)...) |
| | | } |
| | | } |
| | | } |
| | | if faceFlag { |
| | | args.RuleResult["face"] = faces |
| | | } |
| | | logger.Warn("___________________________________________________________________________终于走完万里长征") |
| | | // 把他们的位置数据也传下去 |
| | | locations := []Rect{} |
| | |
| | | } |
| | | } |
| | | |
| | | // 都过滤完条件之后看看是否要创建一个定时器元素 创建定时器的条件:是否有靠右行,个体静止等自带定时器含义的算法以及是否有持续时间 |
| | | // 都过滤完条件之后看看是否满足持续时间条件 |
| | | func duration(rule *protomsg.Rule, am *AreaMap, args *SdkDatas) { |
| | | if rule.PolygonId == am.areaId { // 首先规则所对应的区域id要跟区域数据的id对的上 配置的算法要对的上 |
| | | if rule.SdkArgAlias == "duration" { // |
| | | // 先看看定时器元素队列中是否有这个摄像机这个区域的定时器,如果有就不能再次创建了 |
| | | var flag bool = true |
| | | for k, _ := range TimeEleList { |
| | | for k,_ := range TimeEleList { |
| | | if k == am.taskId+" "+am.sdkId+" "+am.areaId { |
| | | flag = false // 有就置为false |
| | | logger.Info("有这个定时器,不再创建了:") |