Esempio n. 1
0
 public void FirstTime()
 {
     this.Dispatcher.Invoke(() =>
     {
         if (stage == CaptureStage.Identify)
         {
             stage                      = CaptureStage.FirstTime;
             MainLabel.Text             = "Eres nuevo";
             Button1Label.Text          = "Si";
             Button1Label.Visibility    = Visibility.Visible;
             Button1.Visibility         = Visibility.Visible;
             Button2Label.Text          = "No";
             Button2Label.Visibility    = Visibility.Visible;
             Button2.Visibility         = Visibility.Visible;
             BottomPanel.Visibility     = Visibility.Visible;
             BottomPanelText.Visibility = Visibility.Visible;
             BottomPanelText.Text       = "Pienso que no te conozco. ¿Es la primera vez que te veo?";
             BottomPanel.SetValue(Grid.RowProperty, 2);
             BottomPanelText.SetValue(Grid.RowProperty, 2);
             Button1Label.SetValue(Grid.RowProperty, 3);
             Button1.SetValue(Grid.RowProperty, 3);
             Button2Label.SetValue(Grid.RowProperty, 3);
             Button2.SetValue(Grid.RowProperty, 3);
         }
     });
 }
Esempio n. 2
0
        private void PersonLeaveAnimation()
        {
            stage                      = CaptureStage.Idle;
            Button1Label.Text          = "Empezar";
            Button1Label.Visibility    = Visibility.Collapsed;
            Button1.Visibility         = Visibility.Collapsed;
            Button2Label.Text          = "No";
            Button2Label.Visibility    = Visibility.Collapsed;
            Button2.Visibility         = Visibility.Collapsed;
            BottomPanel.Visibility     = Visibility.Collapsed;
            BottomPanelText.Visibility = Visibility.Collapsed;
            BottomPanelText.Text       = "Ubícate para que tu cabeza se alinee con la imagen. Presiona continuar cuando hayas terminado.";
            SmallLabel.Text            = "Levanta tu mano y presiona el boton para empezar.";
            SmallLabel.Visibility      = Visibility.Collapsed;
            MainLabel.Text             = "Hola!\n¿Ya me conoces?";
            MainLabel.Visibility       = Visibility.Visible;
            VideoCapture.Visibility    = Visibility.Collapsed;
            TemplateImage.Visibility   = Visibility.Collapsed;
            IdentityImage.Visibility   = Visibility.Collapsed;
            ImgReference.Visibility    = Visibility.Collapsed;
            ImgReferenceBG.Visibility  = Visibility.Collapsed;
            BottomPanel.SetValue(Grid.RowProperty, 3);
            BottomPanelText.SetValue(Grid.RowProperty, 3);
            Button1Label.SetValue(Grid.RowProperty, 3);
            Button1.SetValue(Grid.RowProperty, 3);
            Button2Label.SetValue(Grid.RowProperty, 3);
            Button2.SetValue(Grid.RowProperty, 3);

            string[] fromGradient = { "#ffd52941", "#ffe45f42", "#ffee894c", "#fff6b061", "#fffcd581" };
            string[] toGradient   = { "#ff1f719b", "#ff238aad", "#ff33a3bc", "#ff4cbcc9", "#ff6bd5d3" };
            UIAnimations.GradientAnimation(1.0, fromGradient, toGradient, BGCanvas);
        }
Esempio n. 3
0
 public void Matched(int subject)
 {
     this.Dispatcher.Invoke(() =>
     {
         if (stage == CaptureStage.Identify)
         {
             stage = CaptureStage.Matched;
             IdentityImage.Source       = capture.GetIdentityBitmap(subject, 0);
             IdentityImage.Visibility   = Visibility.Visible;
             MainLabel.Visibility       = Visibility.Collapsed;
             Button1Label.Text          = "Si";
             Button1Label.Visibility    = Visibility.Visible;
             Button1.Visibility         = Visibility.Visible;
             Button2Label.Text          = "No";
             Button2Label.Visibility    = Visibility.Visible;
             Button2.Visibility         = Visibility.Visible;
             BottomPanel.Visibility     = Visibility.Visible;
             BottomPanelText.Visibility = Visibility.Visible;
             BottomPanelText.Text       = "Pienso que ya te conozco. ¿Eres tu la persona de esta foto?";
             BottomPanel.SetValue(Grid.RowProperty, 2);
             BottomPanelText.SetValue(Grid.RowProperty, 2);
             Button1Label.SetValue(Grid.RowProperty, 3);
             Button1.SetValue(Grid.RowProperty, 3);
             Button2Label.SetValue(Grid.RowProperty, 3);
             Button2.SetValue(Grid.RowProperty, 3);
         }
     });
 }
Esempio n. 4
0
        private void NextCapture()
        {
            this.Dispatcher.Invoke(() =>
            {
                if (currentCapture < 9)
                {
                    CaptureData(currentCapture, false);
                }

                currentCapture += 1;
                if (currentCapture < 9 && stage == CaptureStage.RegisterCaptures)
                {
                    ImgReference.Source = (ImageSource)FindResource("Ref_" + currentCapture);
                    Task.Delay(3000).ContinueWith(t => NextCapture());
                }
                else if (currentCapture == 9 && stage == CaptureStage.RegisterCaptures)
                {
                    stage = CaptureStage.End;
                    trainingUpdater.CheckForUpdate();
                    faceId.Process(subjectToProcess);
                    VideoCapture.Visibility    = Visibility.Collapsed;
                    ImgReference.Visibility    = Visibility.Collapsed;
                    ImgReferenceBG.Visibility  = Visibility.Collapsed;
                    MainLabel.Visibility       = Visibility.Visible;
                    MainLabel.Text             = "Muchas Gracias!";
                    BottomPanel.Visibility     = Visibility.Visible;
                    BottomPanelText.Visibility = Visibility.Visible;
                    BottomPanelText.Text       = "Regresa otro dia y te reconocere.";
                }
            });
        }
Esempio n. 5
0
 public void EndTraining()
 {
     Dispatcher.Invoke(() =>
     {
         stage          = CaptureStage.Idle;
         MainLabel.Text = "Hola!\n¿Ya me conoces?";
     });
 }
Esempio n. 6
0
 public void StartTraining()
 {
     Dispatcher.Invoke(() =>
     {
         stage          = CaptureStage.Training;
         MainLabel.Text = "Training...";
     });
     faceId.Train();
 }
Esempio n. 7
0
 private void PersonEnter()
 {
     if (!waitingToReturn && stage == CaptureStage.Idle)
     {
         stage = CaptureStage.Tracking;
         PersonEnterAnimation();
     }
     waitingToReturn = false;
 }
Esempio n. 8
0
 public void AskToRegister()
 {
     stage = CaptureStage.Register;
     IdentityImage.Visibility   = Visibility.Collapsed;
     MainLabel.Visibility       = Visibility.Visible;
     MainLabel.Text             = "Es un gusto conocerte";
     BottomPanelText.Text       = "¿Me permitirias guardar fotos de ti para poder recordarte?";
     BottomPanel.Visibility     = Visibility.Visible;
     BottomPanelText.Visibility = Visibility.Visible;
 }
Esempio n. 9
0
 private void PersonLeave()
 {
     if (stage == CaptureStage.End || stage == CaptureStage.Tracking)
     {
         stage           = CaptureStage.Idle;
         waitingToReturn = false;
         PersonLeaveAnimation();
     }
     else if (stage != CaptureStage.Idle)
     {
         waitingToReturn = true;
         Task.Delay(3500).ContinueWith(t => WaitToReturn());
     }
 }
Esempio n. 10
0
 private void OnNoButton(object sender, RoutedEventArgs e)
 {
     if (stage == CaptureStage.Matched)
     {
         stage = CaptureStage.BadMatch;
         results.Mark(true, false);
         IdentityImage.Visibility   = Visibility.Collapsed;
         MainLabel.Visibility       = Visibility.Visible;
         MainLabel.Text             = "Perdon por confundirte. ¿Es la primera vez que te veo?";
         BottomPanel.Visibility     = Visibility.Collapsed;
         BottomPanelText.Visibility = Visibility.Collapsed;
         Button1.SetValue(Grid.RowProperty, 3);
         Button1Label.SetValue(Grid.RowProperty, 3);
         Button2.SetValue(Grid.RowProperty, 3);
         Button2Label.SetValue(Grid.RowProperty, 3);
     }
     else if (stage == CaptureStage.Register)
     {
         stage = CaptureStage.End;
         MainLabel.Visibility       = Visibility.Visible;
         MainLabel.Text             = "Muchas gracias por visitarme!";
         Button1Label.Visibility    = Visibility.Collapsed;
         Button1.Visibility         = Visibility.Collapsed;
         Button2Label.Visibility    = Visibility.Collapsed;
         Button2.Visibility         = Visibility.Collapsed;
         BottomPanel.Visibility     = Visibility.Collapsed;
         BottomPanelText.Visibility = Visibility.Collapsed;
     }
     else if (stage == CaptureStage.FirstTime || stage == CaptureStage.BadMatch)
     {
         stage = CaptureStage.End;
         if (stage == CaptureStage.FirstTime)
         {
             results.Mark(false, false);
         }
         MainLabel.Visibility       = Visibility.Visible;
         MainLabel.Text             = "Lo siento :(";
         Button1Label.Visibility    = Visibility.Collapsed;
         Button1.Visibility         = Visibility.Collapsed;
         Button2Label.Visibility    = Visibility.Collapsed;
         Button2.Visibility         = Visibility.Collapsed;
         BottomPanel.Visibility     = Visibility.Visible;
         BottomPanelText.Visibility = Visibility.Visible;
         BottomPanelText.Text       = "Entrenare de nuevo para mejorar. Vuelve pronto!";
         BottomPanel.SetValue(Grid.RowProperty, 3);
         BottomPanelText.SetValue(Grid.RowProperty, 3);
     }
 }
Esempio n. 11
0
        private void NextCapture()
        {
            this.Dispatcher.Invoke(() =>
            {
                if (currentCapture < 9)
                {
                    CaptureData(currentCapture);
                }

                currentCapture += 1;
                if (currentCapture < 9 && stage == CaptureStage.ImageCaptures)
                {
                    ImgReference.Source = (ImageSource)FindResource("Ref_" + currentCapture);
                    Task.Delay(3000).ContinueWith(t => NextCapture());
                }
                else if (currentCapture == 9 && stage == CaptureStage.ImageCaptures)
                {
                    stage = CaptureStage.AudioCapture;
                    capture.StartAudioRecording("Name");
                    VideoCapture.Visibility     = Visibility.Collapsed;
                    ImgReference.Visibility     = Visibility.Collapsed;
                    ImgReferenceBG.Visibility   = Visibility.Collapsed;
                    MainLabel.Visibility        = Visibility.Visible;
                    MainLabel.Text              = "Por favor di tu nombre.";
                    MainLabel.VerticalAlignment = VerticalAlignment.Center;
                    TimerAnimation();
                    Task.Delay(8000).ContinueWith(t => NextCapture());
                }
                else if (currentCapture == 10 && stage == CaptureStage.AudioCapture)
                {
                    capture.EndAudioRecording();
                    capture.StartAudioRecording("Email");
                    MainLabel.Text = "Di tu correo electrónico si deseas ser contactado con información y avances del proyecto.";
                    TimerAnimation();
                    Task.Delay(8000).ContinueWith(t => NextCapture());
                }
                else if (currentCapture == 11 && stage == CaptureStage.AudioCapture)
                {
                    stage = CaptureStage.End;
                    capture.EndAudioRecording();
                    ButtonLabel.Text   = "Empezar";
                    SmallLabel.Text    = "Levanta tu mano y presiona el boton para empezar.";
                    MainLabel.Text     = "Muchas gracias por tu participación!";
                    Timer.Visibility   = Visibility.Collapsed;
                    TimerBG.Visibility = Visibility.Collapsed;
                }
            });
        }
Esempio n. 12
0
 void WaitToReturn()
 {
     if (waitingToReturn)
     {
         this.Dispatcher.Invoke(() =>
         {
             if (stage == CaptureStage.ImageCaptures || stage == CaptureStage.AudioCapture || stage == CaptureStage.Demo)
             {
                 capture.Incomplete(stage.ToString());
             }
             stage           = CaptureStage.Idle;
             waitingToReturn = false;
             PersonLeaveAnimation();
         });
     }
 }
Esempio n. 13
0
        private void OnStartButton(object sender, RoutedEventArgs e)
        {
            if (stage == CaptureStage.Tracking)
            {
                stage            = CaptureStage.Agreement;
                ButtonLabel.Text = "Aceptar";
                MainLabel.Text   = "Vamos a tomar una serie de fotos que ayudaran a entrenar el algoritmo";
                SmallLabel.Text  = "Debes aceptar darnos permiso de usar las imágenes capturadas en el entrenamiento del algoritmo. \n * Estas imágenes no serán publicadas ni mostradas en ninguna parte.";
            }
            else if (stage == CaptureStage.Agreement)
            {
                stage = CaptureStage.Alignment;
                SmallLabel.Visibility = Visibility.Collapsed;
                StartButton.SetValue(Grid.RowProperty, 2);
                ButtonLabel.SetValue(Grid.RowProperty, 2);
                ButtonLabel.Text           = "Continuar";
                BottomPanel.Visibility     = Visibility.Visible;
                BottomPanelText.Visibility = Visibility.Visible;
                VideoCapture.Visibility    = Visibility.Visible;
                TemplateImage.Visibility   = Visibility.Visible;
                MainLabel.Visibility       = Visibility.Collapsed;
            }
            else if (stage == CaptureStage.Alignment)
            {
                stage = CaptureStage.Demo;
                capture.NewSubject();
                CaptureData(0);
                currentCapture            = 1;
                TemplateImage.Visibility  = Visibility.Collapsed;
                BottomPanelText.Text      = "Imagenes de guia apareceran en la pantalla, por cada una intenta imitar la orientación de la cabeza mostrada en la imagen. Presiona continuar para empezar las capturas.";
                ImgReference.Visibility   = Visibility.Visible;
                ImgReferenceBG.Visibility = Visibility.Visible;
                DemoReel();
            }
            else if (stage == CaptureStage.Demo)
            {
                stage = CaptureStage.ImageCaptures;
                StartButton.Visibility     = Visibility.Collapsed;
                ButtonLabel.Visibility     = Visibility.Collapsed;
                BottomPanel.Visibility     = Visibility.Collapsed;
                BottomPanelText.Visibility = Visibility.Collapsed;
                ImgReference.Source        = (ImageSource)FindResource("Ref_1");

                Task.Delay(3000).ContinueWith(t => NextCapture());
            }
        }
Esempio n. 14
0
        public static string Resolve(TaggedString taggedStr)
        {
            if ((string)taggedStr == null)
            {
                return(null);
            }
            string rawText = taggedStr.RawText;

            if (rawText.NullOrEmpty())
            {
                return(rawText);
            }
            if (cache.TryGetValue(rawText, out var value))
            {
                return(value);
            }
            resultBuffer.Length = 0;
            if (rawText.IndexOf("(*") < 0)
            {
                resultBuffer.Append(rawText);
            }
            else
            {
                for (int i = 0; i < rawText.Length; i++)
                {
                    char c = rawText[i];
                    if (c == '(' && i < rawText.Length - 1 && rawText[i + 1] == '*' && rawText.IndexOf(')', i) > i + 1)
                    {
                        bool flag = false;
                        int  num  = i;
                        tagBuffer.Length = 0;
                        argBuffer.Length = 0;
                        capStage         = CaptureStage.Tag;
                        for (i += 2; i < rawText.Length; i++)
                        {
                            char c2 = rawText[i];
                            if (c2 == ')')
                            {
                                capStage = CaptureStage.Result;
                                if (flag)
                                {
                                    string value2 = rawText.Substring(num, i - num + 1).SwapTagWithColor(tagBuffer.ToString(), argBuffer.ToString());
                                    resultBuffer.Append(value2);
                                    break;
                                }
                            }
                            else if (c2 == '/')
                            {
                                flag = true;
                            }
                            if (capStage == CaptureStage.Arg)
                            {
                                argBuffer.Append(c2);
                            }
                            if (!flag && c2 == '=')
                            {
                                capStage = CaptureStage.Arg;
                            }
                            if (capStage == CaptureStage.Tag)
                            {
                                tagBuffer.Append(c2);
                            }
                        }
                        if (!flag)
                        {
                            resultBuffer.Append(c);
                            i = num + 1;
                        }
                    }
                    else
                    {
                        resultBuffer.Append(c);
                    }
                }
            }
            string input = resultBuffer.ToString();

            input = CurrencyRegex.Replace(input, "$&".Colorize(CurrencyColor));
            input = DaysRegex.Replace(input, "$&".Colorize(DateTimeColor));
            input = HoursRegex.Replace(input, "$&".Colorize(DateTimeColor));
            input = SecondsRegex.Replace(input, "$&".Colorize(DateTimeColor));
            input = ColonistCountRegex.Replace(input, "$&".Colorize(ColonistCountColor));
            cache.Add(rawText, input);
            return(input);
        }
Esempio n. 15
0
 private void OnStartButton(object sender, RoutedEventArgs e)
 {
     if (stage == CaptureStage.Tracking)
     {
         stage = CaptureStage.Capture;
         SmallLabel.Visibility = Visibility.Collapsed;
         Button1.SetValue(Grid.RowProperty, 2);
         Button1Label.SetValue(Grid.RowProperty, 2);
         Button1Label.Text          = "Continuar";
         BottomPanel.Visibility     = Visibility.Visible;
         BottomPanelText.Visibility = Visibility.Visible;
         VideoCapture.Visibility    = Visibility.Visible;
         TemplateImage.Visibility   = Visibility.Visible;
         MainLabel.Visibility       = Visibility.Collapsed;
     }
     else if (stage == CaptureStage.Capture)
     {
         stage = CaptureStage.Identify;
         MainLabel.Visibility = Visibility.Visible;
         MainLabel.Text       = "Identificando...";
         int sbj = capture.NewSubjectIdentify();
         CaptureData(0, true);
         faceId.Identify(sbj);
         TemplateImage.Visibility   = Visibility.Collapsed;
         VideoCapture.Visibility    = Visibility.Collapsed;
         BottomPanel.Visibility     = Visibility.Collapsed;
         BottomPanelText.Visibility = Visibility.Collapsed;
         Button1.Visibility         = Visibility.Collapsed;
         Button1Label.Visibility    = Visibility.Collapsed;
     }
     else if (stage == CaptureStage.Matched)
     {
         stage = CaptureStage.End;
         results.Mark(true, true);
         IdentityImage.Visibility = Visibility.Collapsed;
         MainLabel.Visibility     = Visibility.Visible;
         MainLabel.Text           = "Genial!";
         Button1Label.Visibility  = Visibility.Collapsed;
         Button1.Visibility       = Visibility.Collapsed;
         Button2Label.Visibility  = Visibility.Collapsed;
         Button2.Visibility       = Visibility.Collapsed;
         BottomPanelText.Text     = "Me alegra volver a verte. Muchas gracias por ayudarme a aprender.";
     }
     else if (stage == CaptureStage.BadMatch)
     {
         AskToRegister();
     }
     else if (stage == CaptureStage.FirstTime)
     {
         results.Mark(false, true);
         AskToRegister();
     }
     else if (stage == CaptureStage.Register)
     {
         stage = CaptureStage.Demo;
         MainLabel.Visibility      = Visibility.Collapsed;
         TemplateImage.Visibility  = Visibility.Collapsed;
         BottomPanelText.Text      = "Imagenes de guia apareceran en la pantalla, por cada una intenta imitar la orientación de la cabeza mostrada en la imagen. Presiona continuar para empezar las capturas.";
         ImgReference.Visibility   = Visibility.Visible;
         ImgReferenceBG.Visibility = Visibility.Visible;
         Button2.Visibility        = Visibility.Collapsed;
         Button2Label.Visibility   = Visibility.Collapsed;
         BottomPanel.SetValue(Grid.RowProperty, 3);
         BottomPanelText.SetValue(Grid.RowProperty, 3);
         Button1Label.SetValue(Grid.RowProperty, 2);
         Button1.SetValue(Grid.RowProperty, 2);
         Button2Label.SetValue(Grid.RowProperty, 2);
         Button2.SetValue(Grid.RowProperty, 2);
         VideoCapture.Visibility  = Visibility.Visible;
         TemplateImage.Visibility = Visibility.Visible;
         DemoReel();
     }
     else if (stage == CaptureStage.Demo)
     {
         stage            = CaptureStage.RegisterCaptures;
         subjectToProcess = capture.NewSubjectRegistry();
         CaptureData(0, false);
         currentCapture             = 1;
         Button1.Visibility         = Visibility.Collapsed;
         Button1Label.Visibility    = Visibility.Collapsed;
         BottomPanel.Visibility     = Visibility.Collapsed;
         BottomPanelText.Visibility = Visibility.Collapsed;
         TemplateImage.Visibility   = Visibility.Collapsed;
         ImgReference.Source        = (ImageSource)FindResource("Ref_1");
         Task.Delay(3000).ContinueWith(t => NextCapture());
     }
 }