DeepFace: Python için Yüz Tanıma ve Demografi Analizi İskeleti

0 137

deepface, python için geliştirilmiş basit bir yüz tanıma ve demografi analizi (yaş, cinsiyet, duygu durumu ve ırk/etnisite) yazılım iskeletidir. Bir kaç satır kod yazarak yüzsel analizleri gerçekleştirmenizi sağlamaktadır. Bu sayede yazılım mühendisliği ve makine öğrenimi çalışmaları arasındaki boşluğun doldurulması amaçlanmıştır.

 

deepface

Kurulum

İskeletin kurulumu için en kolay yöntem PyPI üzerinden indirilmesidir.

Alternatif olarak kaynak kodu doğrudan GitHub reposundan indirerek kurulumu gerçekleştirebilirsiniz.

Yüz Tanıma

Yüz tanıma işlemi için deepface arayüzünün sağladığı doğrulama (verify) fonksiyonunu kullanacağız.

deepface ile yüz tanıma

Modern yüz tanıma sistemleri 4 adımdan oluşmaktadır: yüzü algıla, yüzün hizalaması, yüz resminin vektör olarak ifade edilmesi ve doğrulama. deepface tüm bu ortak adımları arkaplanda halletmektedir.

Doğrulama fonksiyonunun her çağırılması arkaplanda maliyetli bir işlem olan bir yüz tanıma modelini ayağa kaldırmaktadır. Sıralı şekilde çok sayıda yüzü doğrulama ihtiyacınız varsa yüzleri dizi olarak beslemeniz halinde operasyon ciddi şekilde hızlanacaktır. Bu şekilde kompleks yüz tanıma modelleri tek bir kez kurulacaktır.

Yüz tanıma modelleri

İskelet bugün için en güçlü yüz tanıma modelleri olan VGG-Face, Google FaceNet, OpenFace ve Facebook DeepFace modellerini içermektedir. Varsayılan konfigürasyon model belirtilmemesi halinde VGG-Face ile çalışmaktadır. Kullanmak istediğiniz baz modeli doğrulama fonksiyonunda parametre olarak belirtebilirsiniz.

Başarı ve hız çalışan modele göre değişiklik gösterecektir. Örneğin OpenFace diğer modellere göre daha düşük başarı gösterirken (%1 – %2 aralığında) model kompleksitesinin düşüklüğü (VGG-Face’e göre 38 kat daha ufak) sebebiyle çok hızlı çalışmaktadır. Bu sebeple gerçek zamanlı çalışmalarınızda OpenFace kullanılabilecekken batch işlemlerinizde diğer modelleri tercih edebilirsiniz.

Benzerlik metriği

Yüz tanıma modelleri yüz resimlerini vektör olarak ifade etmekten sorumludur. İki farklı yüz resminin aynı kişiye ait olup olmadığı ise bu vektörlerin arasındaki benzerliğine göre karar verilmektedir. Vektörlerin benzerliğine kösinüs benzerliği, öklid uzaklığı, l2 normu gibi farklı metrikler ile karar verilebilir. Varsayılan konfigürasyon metriğin belirtilmemesi halinde kosinüs benzerliği karar vermektedir. Alternatif olarak benzerlik metriğini doğrulama fonksiyonunda parametre olarak belirtebilirsiniz.

Yüz özelliği analizi

deepface ayrıca yaş, cinsiyet, duygu durumu (kızgın, korkmuş, doğal, üzgün, tiksinmiş, mutlu ve şaşırmış) ve ırk / etnisite (asya, siyah, beyaz, orta doğulu, hintli, latin) gibi yüz özelliklerinin analizini de sunmaktadır. deepface arayüzünün sunduğu analiz (analyze) fonksiyonu ile bu işlemi gerçekleştireceğiz.

deepface ile yüz özelliği analizi

Lisans

Yazılım iskeleti MIT ile lisanslansa da kullanılacak referans modeller farklı tiplerde lisanslanmıştır. Dolayısıyla referans modelin lisansı iskelete miras olarak geçmektedir.

Örneğin VGG-Face ticari olmayan creative commons ile lisanslanmıştır. Öte yandan OpenFace Apache License 2.0 ile, Facebook DeepFace ve Google FaceNet ise MIT ile lisanslanmıştır. Dolayısıyla VGG-Face hariç diğer yüz tanıma modelleri ticari kullanıma izin vermektedir.

Bitirirken…

Yazılım iskeleti tamamen açık kaynaklı olup kaynak koduna GitHub üzerinden ulaşabilirsiniz. Çalışmayı yıldızlayarak destek verebileceğinizi lütfen unutmayın.

Yorum yaz

Email adresiniz yayınlanmayacaktır.