| | |
| | | type Target struct { |
| | | TargetId string `json:"targetId"` |
| | | TargetScore float64 `json:"targetScore"` |
| | | FaceFeature string `json:"feature"` |
| | | TargetType string `json:"targetType"` |
| | | Feature string `json:"feature"` |
| | | PicSmUrl string `json:"picSmUrl"` |
| | | TargetLocation Points `json:"targetLocation"` |
| | | } |
| | |
| | | faces = PutFace(faces, results.([]structure.Result)) |
| | | //logger.Info("整理后的数据:",faces) |
| | | if faces != nil { |
| | | logger.Warn("face不为nil") |
| | | var imgMaxUrl []string = []string{} |
| | | var picTime string = "" |
| | | for _, face := range faces { |
| | |
| | | panic("解压缩图片时出现错误") |
| | | } |
| | | alarmRules := []AlarmRule{} |
| | | logger.Info("循环每一个目标") |
| | | for _, faceResult := range face.rules { |
| | | alarm := ChangeToString(faceResult.DefenceState, faceResult.AlarmLevel) |
| | | alarmRules = append(alarmRules, AlarmRule{faceResult.RuleGroupId, alarm, faceResult.RuleText, faceResult.DefenceState, ""}) |
| | |
| | | i := protomsg.Image{} |
| | | err = proto.Unmarshal(bdata, &i) |
| | | // 先传小图,再传大图,防止脸上有线 |
| | | bytes := util.SubImg(i, int(face.Location.X), int(face.Location.Y), int(face.Location.X+face.Location.Width), int(face.Location.Y+face.Location.Height)) |
| | | bytes := util.SubImg(i, int(face.Location.X), int(face.Location.Y), int(face.Location.X+face.Location.Width), int(face.Location.Y+face.Location.Height),face.Type) |
| | | resp, err := util.PostFormBufferData1(weedfsUrl, bytes, uuid.NewV4().String()) |
| | | if err != nil { |
| | | logger.Error("上传小图出错") |
| | |
| | | var target = new(Target) |
| | | target.TargetId = face.Id |
| | | target.TargetScore = face.Score |
| | | target.FaceFeature = base64.StdEncoding.EncodeToString(face.Feature) |
| | | target.TargetType = face.Type |
| | | target.Feature = base64.StdEncoding.EncodeToString(face.Feature) |
| | | target.PicSmUrl = resp["fileUrl"].(string) |
| | | target.TargetLocation = Points{TopLeft: Point{face.Location.X, face.Location.Y}, BottomRight: Point{face.Location.X + face.Location.Width, face.Location.Y + face.Location.Height}} |
| | | var targetInfos []Target |
| | |
| | | case "plate": |
| | | sdkname = "车牌识别" |
| | | } |
| | | logger.Info("人脸目标target:",targetInfos) |
| | | pervideo := PerVideoPicture{ |
| | | face.Uuid, |
| | | msg.Cid, |
| | |
| | | if err1 != nil { |
| | | logger.Error("上传ES出错!---", err1) |
| | | } else { |
| | | logger.Info("插入es返回的信息:", sdkname,"---",resp1) |
| | | logger.Info("插入es返回的信息:", sdkname, "---", resp1) |
| | | // 发出录像信号 |
| | | ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: face.Uuid, CameraId: msg.Cid, TaskId: msg.Tasklab.Taskid, VideoUrl: msg.Push.VideoUrl, ImgId: i.Id, SdkIds: []string{"-1"}, Type: 1}) |
| | | } |
| | |
| | | var target1 = new(Target) |
| | | target1.TargetId = target.Id |
| | | target1.TargetScore = target.Score |
| | | target1.TargetType = "action" |
| | | target1.TargetLocation = Points{TopLeft: Point{target.Location.X, target.Location.Y}, BottomRight: Point{target.Location.X + target.Location.Width, target.Location.Y + target.Location.Height}} |
| | | targetInfos = append(targetInfos, *target1) |
| | | } |
| | |
| | | var target1 = new(Target) |
| | | target1.TargetId = target.Id |
| | | target1.TargetScore = target.Score |
| | | target1.TargetType = "action" |
| | | target1.TargetLocation = Points{TopLeft: Point{target.Location.X, target.Location.Y}, BottomRight: Point{target.Location.X + target.Location.Width, target.Location.Y + target.Location.Height}} |
| | | targetInfos = append(targetInfos, *target1) |
| | | } |
| | |
| | | false, |
| | | false, |
| | | nil, |
| | | nil, |
| | | targetInfos, |
| | | linkTag, |
| | | linkTagInfos, |
| | | } |
| | |
| | | } |
| | | race := getRaceString(obj.ThftRes.Race) |
| | | ageDescription := getDescription(obj.ThftRes.Age) |
| | | lable = sex + "/" + ageDescription + "/" + race + "/" |
| | | lable = sex + "/" + ageDescription + "/" + race |
| | | lableAttach = strconv.Itoa(int(obj.ThftRes.Age)) + "岁" + "/" + "微笑值:" + strconv.Itoa(int(obj.ThftRes.Smile)) + "/" + "颜值:" + strconv.Itoa(int(obj.ThftRes.Beauty)) |
| | | |
| | | case "plate": |
| | | // 车牌运动方向,0 unknown, 1 left, 2 right, 3 up, 4 down |
| | | logger.Info("车辆车牌信息:",obj.Car.NColor,obj.Car.NCarColor,obj.Car.NCarLogo,obj.Car.NCarType,obj.Car.NDirection) |
| | | lable = obj.Car.License + "/" + cache.GetDic("nColor"+strconv.Itoa(int(obj.Car.NColor))) + "车牌" + "/" + |
| | | cache.GetDic("nCarColor"+strconv.Itoa(int(obj.Car.NCarColor))) + "车辆" + "/" + "品牌:"+cache.GetDic("nCarLogo"+strconv.Itoa(int(obj.Car.NCarLogo))) + "/" + "型号:"+cache.GetDic("nCarType"+strconv.Itoa(int(obj.Car.NCarType))) |
| | | lableAttach = "运动方向:"+cache.GetDic("nDirection"+strconv.Itoa(int(obj.Car.NDirection))) + "/" + "车牌置信度:" + strconv.Itoa(int(obj.Car.NConfidence)) + "/" + |
| | | "车牌亮度:" + strconv.Itoa(int(obj.Car.NBright)) + "/" + "车的亮度:" + strconv.Itoa(int(obj.Car.NCarBright)) + "/" + "识别时间:" + strconv.Itoa(int(obj.Car.NTime)) |
| | | lable = obj.Car.License + "/" + cache.GetDic("nVehicleColor1"+strconv.Itoa(int(obj.Car.NVehicleColor1))) + "车辆" + "/" + |
| | | cache.GetDic("nColor"+strconv.Itoa(int(obj.Car.NColor))) + "车牌" |
| | | lableAttach = "车牌置信度:" + strconv.Itoa(int(obj.Car.NConfidence)) + "/" + "车的亮度:" + strconv.Itoa(int(obj.Car.NVehicleBright)) +"/"+ "车牌类型"+cache.GetDic("nType"+strconv.Itoa(int(obj.Car.NType)))+ |
| | | "车身辅颜色:"+cache.GetDic("nVehicleColor2"+strconv.Itoa(int(obj.Car.NVehicleColor2)))+"/"+"是否识别到车牌:"+cache.GetDic("nVehicleColor1"+strconv.Itoa(int(obj.Car.NVehicleColor1)))+"/"+ |
| | | "车辆置信度"+strconv.Itoa(int(obj.Score))+"/"+"品牌:" +obj.Car.VehicleType1 |
| | | } |
| | | return lable, lableAttach |
| | | } |