Пример #1
0
        public static async Task ProcessCameraCapture(ImageAnalyzer e, int imageId)
        {
            DateTime start = DateTime.Now;

            await e.DetectFacesAsync(true);

            //await e.DetectEmotionAsync();

            if (e.DetectedFaces.Any())
            {
                //var faces = e.DetectedFaces.Select(f =>
                //    new CognitiveFaceResult()
                //    {
                //        Gender = f.FaceAttributes.Gender[0].ToString().ToUpper() + f.FaceAttributes.Gender.Substring(1),
                //        Age = f.FaceAttributes.Age,
                //        Left = f.FaceRectangle.Left,
                //        Top = f.FaceRectangle.Top,
                //        Width = f.FaceRectangle.Width,
                //        Height = f.FaceRectangle.Height
                //    });

                //DisplayMessage(GetFaceAttributeString(e));

                var result = new CognitiveFaceResult();

                await e.IdentifyFacesAsync(PersonGroupId);

                result.Attributes = GetFaceAttributeString(e);

                if (e.IdentifiedPersons.Any())
                {
                    result.IdentitiedPersons = GetGreettingFromFaces(e);
                }
                else
                {
                    result.IdentitiedPersons = "No Idea, who you are... Register your face.";
                }

                FacesDetectedCallback.Invoke(result);

                //greetingsText = GetFaceAttributeString(e) + "\r\n" + greetingsText;

                //if (e.IdentifiedPersons.Any())
                //{
                //    if (GreetingsCallback != null)
                //    {
                //        DisplayMessage(greetingsText);
                //    }

                //    //Console.WriteLine(greetingsText);
                //}
                //else
                //{
                //    DisplayMessage("No Idea, who you are... Register your face.");

                //    //Console.WriteLine("No Idea");

                //}
            }
            else
            {
                // DisplayMessage("No face detected.");

                //Console.WriteLine("No Face ");
            }

            TimeSpan latency       = DateTime.Now - start;
            var      latencyString = string.Format("Face API latency: {0}ms", (int)latency.TotalMilliseconds);
            //Console.WriteLine(latencyString);
        }
Пример #2
0
        protected override async void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.FaceIdentify);

            this.cameraPreview  = this.FindViewById <CameraSourcePreview>(Resource.Id.preview);
            this.graphicOverlay = this.FindViewById <GraphicOverlay>(Resource.Id.faceOverlay);

            var button = (ImageButton)this.FindViewById(Resource.Id.flipButton);

            button.Click += (sender, args) =>
            {
                this.isFrontFacing = !this.isFrontFacing;

                if (this.cameraSource != null)
                {
                    this.cameraSource.Release();
                    this.cameraSource = null;
                }

                this.CreateCameraSource();
                this.StartCameraSource();
            };

            if (ActivityCompat.CheckSelfPermission(this, Manifest.Permission.Camera) == Permission.Granted)
            {
                this.CreateCameraSource();
                LiveCamHelper.Init();
                LiveCamHelper.GreetingsCallback     = (s) => { this.RunOnUiThread(() => Greetings = s); };
                LiveCamHelper.FacesDetectedCallback = result => { this.RunOnUiThread(() => CognitiveFacesResult = result); };

                this.faceService = new FaceService();
                await this.faceService.Initialize();

                //using (var stream = File.OpenRead("/data/user/0/CognitiveDemo.Droid/files/CognitivveFrame.png"))
                //{
                //    await this.faceService.IdentityFace(stream);
                //}
            }
            else
            {
                this.RequestCameraPermission();
            }
        }