| | |
| | | func GetPolygons(cameraId string) []protomsg.CameraPolygon { |
| | | var cameraPolygons []protomsg.CameraPolygon |
| | | cameraPolygons = cache.GetPolygonsByCameraId(cameraId) |
| | | |
| | | logger.Debug("------=======查看下全部区域:",cameraPolygons) |
| | | return cameraPolygons |
| | | } |
| | | |
| | |
| | | // 将字符串格式的坐标序列化为Point格式 |
| | | func Json2points(areaPoints string) []Point { |
| | | var pts []Point |
| | | logger.Error("=========打印下区域数据:",areaPoints) |
| | | if areaPoints == "" { |
| | | if areaPoints == "[]" { |
| | | logger.Error("=====================此区域为全部区域") |
| | | pts = append(pts, Point{0, 0}) |
| | | pts = append(pts, Point{0, 540}) |
| | |
| | | for _, obj := range am.filterData { |
| | | for index := 0; index < len(obj.Liker); { |
| | | // 将达不到阈值的相似者从相似者数组中删除 |
| | | logger.Warn("=======================相似值:", float64(obj.Liker[index].CompareScore*100)) |
| | | logger.Debug("=======================相似值:", float64(obj.Liker[index].CompareScore*100)) |
| | | if float64(obj.Liker[index].CompareScore*100) < argValue { |
| | | // Go 语言中切片删除元素的本质是:以被删除元素为分界点,将前后两个部分的内存重新连接起来。不用怀疑,数组删除元素就这么坑爹 |
| | | obj.Liker = append(obj.Liker[:index], obj.Liker[index+1:]...) |
| | |
| | | if rule.Operator == "==" || rule.Operator == ">=" || rule.Operator == "<=" || rule.Operator == "<" || rule.Operator == ">" || rule.Operator == "!=" { |
| | | // 如果是不规矩的连接符统统返回false 规则也只能判断人脸的相似度,所以不存在别的连接符 |
| | | if rule.SdkArgAlias == "score" || rule.SdkArgAlias == "proportion" || rule.SdkArgAlias == "size" { // 判断的是相似值,占比,尺寸等过滤条件,如果再有,还可以再加 |
| | | logger.Info("---------------------------终于等到你") |
| | | //logger.Info("---------------------------终于等到你") |
| | | var args []*Arg |
| | | if rule.RuleWithPre == "&&" { |
| | | args = am.filterData |
| | |
| | | } |
| | | // 先清空过滤后的数据,再往里塞本次过滤后的数据 |
| | | am.filterData = am.filterData[0:0] |
| | | logger.Info("-----------------------人脸过滤的args里的数量:", len(args)) |
| | | //logger.Info("-----------------------人脸过滤的args里的数量:", len(args)) |
| | | for _, arg := range args { |
| | | var formula string |
| | | if rule.SdkArgAlias == "score" { |