Пример #1
0
        public async Task <IList <Head> > Run()
        {
            var credentials = new FaceServiceCredentials(
                _config.SubscriptionKey,
                _config.EndpointUrl);
            var faceService = new FaceService(credentials);

            faceService.Authenticate();
            var detector = faceService.GetFaceDetector();

            var attributeTypes = new List <FaceAttributeType?>
            {
                FaceAttributeType.Accessories, FaceAttributeType.Age,
                FaceAttributeType.Blur, FaceAttributeType.Emotion, FaceAttributeType.Exposure,
                FaceAttributeType.FacialHair,
                FaceAttributeType.Gender, FaceAttributeType.Glasses, FaceAttributeType.Hair, FaceAttributeType.HeadPose,
                FaceAttributeType.Makeup, FaceAttributeType.Noise, FaceAttributeType.Occlusion, FaceAttributeType.Smile
            };

            using var fileStream = File.OpenRead(_filePath);
            var faces = await detector.Detect(fileStream, attributeTypes);

            var results = new List <Head>();

            for (var i = 0; i < faces.Count; i++)
            {
                var face = faces[i];
                results.Add(new Head(new Rectangle(
                                         face.FaceRectangle.Left,
                                         face.FaceRectangle.Top,
                                         face.FaceRectangle.Width,
                                         face.FaceRectangle.Height),
                                     face.GetAttributeText($"Face id: {i}", faces.Count == 1)));
            }

            return(results);
        }