| | |
| | | videoPersonUrl = "http://" + localConfig1.AlarmIp + ":" + strconv.Itoa(int(localConfig1.AlarmPort)) + "/" + EsInfo.EsIndex.VideoPersons.IndexName + "/" + EsInfo.EsIndex.VideoPersons.IndexType |
| | | personAction = "http://" + localConfig1.AlarmIp + ":" + strconv.Itoa(int(localConfig1.AlarmPort)) + "/" + EsInfo.EsIndex.Personaction.IndexName + "/" + EsInfo.EsIndex.Personaction.IndexType |
| | | InsertFace(msg, "") |
| | | // 如果标签中含有持续时间首次报警的timeLabel的话则不需要过人体追踪,不然就没的插入了 |
| | | fk := ruleserver.TrackOrNot(msg.RuleResult) |
| | | if fk { |
| | | InsertYolo(msg, "") |
| | | //if msg.Cid == "61de081a-7ed9-4970-8432-41d642c35456" { |
| | | // logger.Warn("捕捉188摄像机的持续时间任务.....") |
| | | // os.Exit(1) |
| | | //} |
| | | } else { |
| | | flag := ruleserver.BodyIsSame(msg.SdkMessage) |
| | | if !flag { |
| | | InsertYolo(msg, "") |
| | | } |
| | | } |
| | | InsertYolo(msg, "") |
| | | } |
| | | |
| | | // 往es中插入人脸数据 |
| | |
| | | } |
| | | 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)) |
| | | resp, err := util.PostFormBufferData1(weedfsUrl, bytes, uuid.NewV4().String()) |
| | | if err != nil { |
| | | logger.Error("上传小图出错") |
| | | } |
| | | // 上传大图 |
| | | if imgMaxUrl == "" { |
| | | bigPhotoUrl := make(map[string]interface{}) |
| | | bigPhotoUrl, err = util.DrawPolygonOnImageForFace(msg.Cid, i, msg.RuleResult["face"].([]structure.FaceResult), weedfsUrl) |
| | |
| | | imgMaxUrl = bigPhotoUrl["fileUrl"].(string) |
| | | picTime = i.Timestamp |
| | | } |
| | | // 人脸检测,没有相似的底库人员 |
| | | localConfig, err := cache.GetServerInfo() |
| | | if err != nil { |
| | | logger.Error("查询本机信息失败!") |
| | | } |
| | | serverIp, err := GetLocalIP() |
| | | // 查询cameraName |
| | | camera, err := cache.GetCameraById(msg.Cid) |
| | | if err != nil { |
| | | logger.Error("查询摄像机信息失败") |
| | | } |
| | | 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)) |
| | | resp, err := util.PostFormBufferData1(weedfsUrl, bytes, uuid.NewV4().String()) |
| | | if err != nil { |
| | | logger.Error("上传小图出错") |
| | | } |
| | | //logger.Info("================小图地址:", resp["fileUrl"].(string)) |
| | | sex := "" |
| | | logger.Info(sex) |
| | | if face.ThftRes.Gender == 1 { |
| | |
| | | race := getRaceString(face.ThftRes.Race) |
| | | ageDescription := getDescription(face.ThftRes.Age) |
| | | logger.Info(ageDescription) |
| | | esDataId := uuid.NewV4().String() |
| | | //esDataId := uuid.NewV4().String() |
| | | linksId := "" |
| | | if linkId != "" { |
| | | linksId = linkId |
| | |
| | | //logger.Info("人脸的id:",strconv.FormatUint(face.Id, 10)) |
| | | logger.Info("%%%%%%%%%%%%%%%%%%%%%目标信息:",*target) |
| | | pervideo := PerVideoPicture{ |
| | | esDataId, |
| | | msg.Push.PushId, |
| | | msg.Cid, |
| | | camera.Addr, |
| | | msg.Push.Cam.Addr, |
| | | picTime, |
| | | imgMaxUrl, |
| | | msg.Tasklab.Taskid, |
| | |
| | | face.ThftRes.Beauty, |
| | | base64.StdEncoding.EncodeToString(face.Feature), |
| | | []string{resp["fileUrl"].(string)}, |
| | | "暂无集群", |
| | | localConfig.ServerId, |
| | | localConfig.ServerName, |
| | | serverIp, |
| | | "", |
| | | msg.Push.ServerId, |
| | | msg.Push.ServerName, |
| | | msg.Push.LocalIp, |
| | | "", |
| | | linksId, |
| | | face.Score, |
| | |
| | | } else { |
| | | logger.Info("插入es返回的信息:", resp1) |
| | | // 发出录像信号 |
| | | ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: esDataId, CameraId: msg.Cid, TaskId: msg.Tasklab.Taskid, ImgId: i.Id, SdkIds: []string{}, Type: 1}) |
| | | ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: msg.Push.PushId, CameraId: msg.Cid, TaskId: msg.Tasklab.Taskid, VideoUrl:msg.Push.VideoUrl,ImgId: i.Id, SdkIds: []string{}, Type: 1}) |
| | | } |
| | | } |
| | | } |
| | |
| | | // 不是报警数据不存 |
| | | return |
| | | } |
| | | // logger.Println("图片上传返回值:", resp) |
| | | // 查询本机信息 |
| | | localConfig, err := cache.GetServerInfo() |
| | | if err != nil { |
| | | logger.Error("查询本机信息失败!") |
| | | } |
| | | // 查询cameraName |
| | | camera, err := cache.GetCameraById(msg.Cid) |
| | | if err != nil { |
| | | logger.Error("查询摄像机信息失败") |
| | | } |
| | | logger.Info("摄像机信息:",camera) |
| | | serverIp, err := GetLocalIP() |
| | | logger.Info("%%%%%%%%%%%%%%%%%yolo的target信息:",targetInfos) |
| | | |
| | | if resp["fileUrl"] != nil { |
| | | url = append(url, resp["fileUrl"].(string)) |
| | | esDataId := uuid.NewV4().String() |
| | | //esDataId := uuid.NewV4().String() |
| | | linksId := "" |
| | | if linkId != "" { |
| | | linksId = linkId |
| | | } |
| | | peraction := Personaction{ |
| | | esDataId, |
| | | msg.Push.PushId, |
| | | msg.Cid, |
| | | camera.Name, |
| | | camera.Addr, |
| | | msg.Push.Cam.Name, |
| | | msg.Push.Cam.Addr, |
| | | msg.Tasklab.Taskid, |
| | | msg.Tasklab.Taskname, |
| | | sdkNames, |
| | | "", |
| | | alarmRules, |
| | | localConfig.ServerId, |
| | | localConfig.ServerName, |
| | | serverIp, |
| | | msg.Push.ServerId, |
| | | msg.Push.ServerName, |
| | | msg.Push.LocalIp, |
| | | "", |
| | | url, |
| | | i.Timestamp, |
| | |
| | | if err != nil { |
| | | logger.Info("json parse error ", err) |
| | | return |
| | | |
| | | } |
| | | resp1, err2 := EsReq("POST", personAction, requstbody) |
| | | if err2 != nil { |
| | |
| | | } else { |
| | | logger.Debug("插入es返回的数据信息是:", resp1) |
| | | // 发出录像信号 |
| | | ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: esDataId, CameraId: msg.Cid, TaskId: msg.Tasklab.Taskid, ImgId: i.Id, SdkIds: []string{}, Type: 2}) |
| | | ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: msg.Push.PushId, CameraId: msg.Cid, TaskId: msg.Tasklab.Taskid,VideoUrl:msg.Push.VideoUrl, ImgId: i.Id, SdkIds: []string{}, Type: 2}) |
| | | logger.Warn("__________________________________________往ES插入yolo数据成功") |
| | | //os.Exit(1) |
| | | } |