Ejemplo n.º 1
0
        private async Task <IPersistedRecognition> PersistRecognition(IRecognition recognition, ILogger logger)
        {
            var tag = recognition.Tags.OrderByDescending(tag => tag.Confidence).FirstOrDefault();

            var name       = tag?.Name;
            var confidence = tag?.Confidence ?? 0f;

            var uri = await _persistenceProvider.Save(recognition);

            return(new PersistedRecognition(name, confidence, uri.ToString()));
        }
Ejemplo n.º 2
0
        public async Task <(Guid, Uri)> Save(IRecognition recognition)
        {
            var id       = Guid.NewGuid();
            var fileName = "{id}.png";

            using (var stream = new MemoryStream(recognition.Data))
            {
                var face = await _facesClient.AddAsync(new Director.Client.FileParameter(stream, fileName), recognition.Meta.Location);

                var tag = recognition.Tags.OrderByDescending(tag => tag.Confidence).FirstOrDefault();

                if (tag != null)
                {
                    var persisted = await _facesClient.AddRecognitionAsync(face.Id, Director.Client.Recognisers.MLNET, tag.Name, tag.Confidence);
                }

                return(face.Id, new Uri(face.Uri));
            }
        }
Ejemplo n.º 3
0
        public Task HandleAsync(AuthorizationHandlerContext context)
        {
            string siteId = (context.Resource as HttpContext).Request.Query["siteId"];

            foreach (var requirement in context.PendingRequirements)
            {
                IRecognition recognizer = null;
                double       score      = 1.0d;

                switch (requirement)
                {
                case FaceRecognitionRequirement r:
                    recognizer = new FaceRecognition();
                    score      = r.ConfidenceScore;
                    break;

                case BodyRecognitionRequirement r:
                    recognizer = new BodyRecognition();
                    score      = r.ConfidenceScore;
                    break;

                case FaceRecognitionRequirement r:
                    recognizer = new VoiceRecognition();
                    score      = r.ConfidenceScore;
                    break;
                }

                if (recognizer != null && recognizer.Recognize(siteId, out string name) >= score)
                {
                    context.User.AddIdentity(new ClaimsIdentity(new GenericIdentity(name)));
                    context.Succeed(requirement);
                }
                else
                {
                    context.Fail();
                }
            }

            return(Task.CompletedTask);
        }
Ejemplo n.º 4
0
 public SegmentationImages(IRecognition recognition, ISettingsRecognition settings)
 {
     _recognition = recognition;
     _settings    = settings;
 }
Ejemplo n.º 5
0
 private void ShowRecognition(IRecognition recognition)
 {
     _recognition             = recognition;
     panelPhotoUpload.Visible = true;
 }
Ejemplo n.º 6
0
 public Task <IPersistedRecognition> PersistRecognition(IRecognition recognition)
 {
     return(_persistRecognition(recognition));
 }