| | |
| | | for _, sdkData := range args.Sdkdata { |
| | | for _, areaMap := range sdkData.AreaMapList { |
| | | for j := 0; j < len(groupRule.Rules); j++ { |
| | | putFaceToResult(groupRule.Rules[j], &areaMap, faces) |
| | | faces = append(faces,putFaceToResult(groupRule.Rules[j], &areaMap)...) |
| | | } |
| | | } |
| | | } |
| | |
| | | for j := 0; j < len(groupRule.Rules); j++ { |
| | | for _, sdkData := range args.Sdkdata { |
| | | if groupRule.Rules[j].SdkId == sdkData.SdkId && sdkData.IsYolo && !strings.Contains(sdkName,sdkData.SdkName) { // 只记录yolo符合规则的sdk 同时要避免重复拼接 |
| | | sdkName = sdkName + "," + sdkData.SdkName |
| | | sdkName = sdkData.SdkName + " " |
| | | } |
| | | } |
| | | } |
| | | args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkName, groupRule.GroupId, groupRule.AlarmLevel, groupRule.GroupText}) |
| | | log.Println("-------------------yolo结果标签",args.RuleResult["yolo"].([]Result)) |
| | | if args.RuleResult["faces"] != nil { |
| | | log.Println("-------------------face结果标签",args.RuleResult["faces"].([]Arg)) |
| | | if sdkName != "" { |
| | | args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, sdkName, groupRule.GroupId, groupRule.AlarmLevel, groupRule.GroupText}) |
| | | log.Println("-------------------yolo结果标签",args.RuleResult["yolo"].([]Result)) |
| | | } |
| | | if args.RuleResult["face"] != nil { |
| | | log.Println("-------------------face结果标签",args.RuleResult["face"].([]Arg)) |
| | | os.Exit(1) |
| | | } |
| | | return true |
| | |
| | | } |
| | | } |
| | | |
| | | func putFaceToResult(rule *protomsg.Rule, am *AreaMap, faces []Arg) { |
| | | func putFaceToResult(rule *protomsg.Rule, am *AreaMap) []Arg { |
| | | faces := []Arg{} |
| | | if rule.SdkId == am.sdkId { |
| | | if len(am.filterData) > 0 { |
| | | for _, data := range am.filterData { |
| | | log.Println("---------------------------------------------------------------------有这个data",data) |
| | | faces = append(faces, data) |
| | | } |
| | | } |
| | | } |
| | | log.Println("-----------------------------------------------听说你是空的?",faces) |
| | | return faces |
| | | } |
| | | |
| | | // 计算区域内的目标数量以及将相似度、占比、尺寸等打包 |