Beispiel #1
0
        private async void ExecuteConfirmedCommand()
        {
            try
            {
                IsRunning = true;
                var result = await FaceServiceHelper.DetectAsync(GetStream, true);

                if (result == null || result.Count() == 0)
                {
                    return;
                }
                await FaceServiceHelper.AddPersonFaceAsync(SelectedGroup.PersonGroupId, SelectedPerson.PersonId, GetStream,
                                                           null, result.FirstOrDefault().FaceRectangle);

                await FaceServiceHelper.TrainPersonGroupAsync(SelectedGroup.PersonGroupId);

                ImageUrl = string.Empty;
                await _mvvmService.MessageMvvm("Mensagem", "Rosto cadastrado com sucesso", "Ok");
            }
            catch (Exception ex) { }
            finally
            {
                IsRunning = false;
            }
        }
Beispiel #2
0
        private async void ExecuteCheckFaceCommand()
        {
            IsRunning = true;
            await CrossMedia.Current.Initialize();

            var mediaFile = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions());

            ImageUrl = mediaFile?.Path;

            try
            {
                var func   = new Func <Task <Stream> >(() => Task.Factory.StartNew <Stream>(() => mediaFile.GetStream()));
                var result = await FaceServiceHelper.DetectAsync(func, true, false, null);

                var resultIdentify = await FaceServiceHelper.IdentifyAsync("2", result.Select(p => p.FaceId).ToArray());

                if (resultIdentify.Any())
                {
                    var candidate = resultIdentify.FirstOrDefault().Candidates
                                    .OrderBy(p => p.Confidence)
                                    .FirstOrDefault();
                    StatusResult = "Rosto Cadastrado";
                    TextColor    = Color.Green;

                    var person = await FaceServiceHelper.GetPersonAsync("2", candidate.PersonId);

                    Text      = person.Name;
                    IsChecked = true;
                }
                else
                {
                    StatusResult = "Rosto Não Cadastrado";
                    TextColor    = Color.Red;
                    IsChecked    = false;
                }
            }
            catch (Exception ex)
            {
                await _mvvmService.MessageMvvm("Error", ex.Message, "ok");
            }
            finally
            {
                IsRunning = false;
            }
        }