Kategoriler
C#

Azure Face Api Kullanımı

Bu yazımda Azure Face Api kullanarak gönderdiğimiz fotoğraftaki kişininin;

  • Yaşını
  • Cinsiyetini
  • Gözlüğü olup olmadığını varsa ne tip gözlük kullandığını
  • Gülümseyip gülümsemediğini öğreneceğiz

Öncelikle Azure Portal>New>Cognitive Services Api yolunu izleyerek yeni bir face api oluşturuyoruz.

Daha sonra ise api keylerimizi alıyoruz. İleride lazım olacak.

 Şimdi yeni bir form app oluşturuyoruz ve projemize aşağıdaki dll’i nuget aracılığıyla ekliyoruz.

class Attributes
    {
        private Guid id;
        private int age;
        private string gender;
        private string glasses;
        private double smile;
        

        public int Age
        {
            get
            {
                return age;
            }

            set
            {
                age = value;
            }
        }

        public string Gender
        {
            get
            {
                return gender;
            }

            set
            {
                gender = value;
            }
        }

        public string Glasses
        {
            get
            {
                return glasses;
            }

            set
            {
                glasses = value;
            }
        }

        public Guid Id
        {
            get
            {
                return id;
            }

            set
            {
                id = value;
            }
        }

        public double Smile
        {
            get
            {
                return smile;
            }

            set
            {
                smile = value;
            }
        }
    }
class FacesAttr
    {
        private string imgUrl;
        private Attributes attr = new Attributes();
        private readonly IFaceServiceClient fsClient = new FaceServiceClient("Yukarıda aldığımız keyimizi buraya yazacağız");

        public FacesAttr(string imageUrl)
        {
            imgUrl = imageUrl;
            
        }

        
        async public  Task<Attributes> retriveFaceAttributes()
        {
            try
            {
                var requiredFaceAttributes = new FaceAttributeType[] {
            FaceAttributeType.Age, FaceAttributeType.Gender, FaceAttributeType.Glasses,FaceAttributeType.Smile,FaceAttributeType.FacialHair,FaceAttributeType.HeadPose
        };
                var faces = await fsClient.DetectAsync(imgUrl, returnFaceLandmarks: true, returnFaceAttributes: requiredFaceAttributes);
                foreach (var face in faces)
                {
                    var attributes = face.FaceAttributes;
                    int roundedAge = (int)Math.Round(attributes.Age);
                    attr.Id = face.FaceId;
                    attr.Age = roundedAge;
                    attr.Gender = attributes.Gender;
                    attr.Glasses = attributes.Glasses.ToString();
                    attr.Smile = attributes.Smile;
                }
                
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }
            return attr;
        }
    }

Ve aşağıdaki gibi bir form tasarımı yapalım. Çeşitli fotoğraflar ile api’den gelen sonuçları ekranda gösterelim.(Fotoğrafların üzerine tıklayarak büyük hallerine ulaşabilirsiniz)

Projeyi buradan indirebilirsiniz

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.