| | |
| | | if faceParam.Faces[i].Pos.FaceID == val.Id && faceParam.Faces[i].Pos.FAngle.Confidence <= val.Score { // 在池子里并且分值更低,是要抛弃的数据 |
| | | faceFlag = true |
| | | //return "true" |
| | | //faceParam.Faces = append(faceParam.Faces[:i], faceParam.Faces[i+1:]...) |
| | | logger.Info("此数据由于在池子中且分值更低,是要被抛弃的数据") |
| | | logger.Info("分值为:",faceParam.Faces[i].Pos.FAngle.Confidence,"--缓存的分值为:",val.Score,"此数据由于在池子中且分值更低,是要被抛弃的数据") |
| | | faceParam.Faces = append(faceParam.Faces[:i], faceParam.Faces[i+1:]...) |
| | | break |
| | | } |
| | | if faceParam.Faces[i].Pos.FaceID == val.Id && faceParam.Faces[i].Pos.FAngle.Confidence <= val.Score { // 在池子里并且分值更高,更新缓存 |
| | | if faceParam.Faces[i].Pos.FaceID == val.Id && faceParam.Faces[i].Pos.FAngle.Confidence > val.Score { // 在池子里并且分值更高,更新缓存 |
| | | faceFlag = true |
| | | logger.Info("分值由", val.Score, "更新为:", faceParam.Faces[i].Pos.FAngle.Confidence, "此数据由于在池子中且分值更低,是要被传递下去的数据") |
| | | logger.Info("分值由", val.Score, "更新为:", faceParam.Faces[i].Pos.FAngle.Confidence, "此数据由于在池子中且分值更高,是要被传递下去的数据") |
| | | val.Score = faceParam.Faces[i].Pos.FAngle.Confidence |
| | | } |
| | | } |
| | |
| | | i++ |
| | | } |
| | | } |
| | | // 反向循环 ,看那些缓存有而数据没有的 |
| | | logger.Info("反序列化重新装配之前人脸的个数:",len(faceParam.Faces)) |
| | | sdkinfor.Sdkdata, err = proto.Marshal(&faceParam) |
| | | if err != nil { |
| | | logger.Error("yolo序列化错误", err) |
| | | } |
| | | logger.Info("跟之前相同,清空yolo数据") |
| | | // 反向循环 ,看那些缓存有而数据没有的就删除数据更新缓存 |
| | | for i := 0; i < len(TrackPond[cameraId].Faces); { |
| | | flag := false |
| | | for _, temp := range facesTemp { |