Yüz tanıma işlemi yapılırken EmguCV ’de(OpenCV ’de de) Eigenfaces, Fisherfaces ve LBPH gibi algoritmalar kullanılır. Bunlardan kısaca bahsedecek olursak;
Eigenfaces ;
Hafızadaki tüm resimlerin ortalamasını alarak ortaya çıkan görüntünün ortalamadan farkını alır. Böylece her görüntü aslında bir diferansiyel görüntü gibi değerlendirilir.
Fisherfaces ;
Yukarıdakine kıyasla daha gelişmiş bir yüz tanıma algoritmasıdır. Bir kişiye ait birden fazla fotoğrafı bir sınıfın üyeleri olarak kabul edip sınıflar arası tanıma işlemi yapmaya dayanır.
LBPH ;
Bir noktanın etrafındaki piksellerin yoğunluk değerlerine göre oluşan ikili(binary) örüntülerden yaratılır ve bu örüntüler üzerinde işlemler gerçekleştirerek nesneyi arar.
Makale sahibi yüz tanıma çalışmaları neticesinde Classifier Train & Business Recognition olmak üzere iki sınıf yani class kodlamış. Bunlardan Classifier Train isimli olan sınıfımız yüz eğitiminden ve yüz tanıma algoritmasını barındırıyor diğeri ise Classifiew Train sınıfını refere etmekte ve eğitim süreciyle birlikte diğer tüm durumları kontrol ediyor. Projeyi en son kaynak olarak incelemeniz için paylaşacağım. 3 adımda gerçekleşen olaylara şöyle bir göz atalım;
İlk Adım
Yüzlere Yazılımın Eğitilmesi --> Business Recognition sınıfındaki SaveTrainingData metodunu çağırmış. Bu metot tanımlanan yüzleri belirtilen kaynağa aktarma ve bunların yanında gerekli XML formatındaki veri setine ekleme görevinden sorumludur. Tanımlanan yüzler formda bulunan PictureBox2 nesnesine atanmaktadır. Neticede yakalanan bu yüz resimleri SaveTrainingData metoduna gönderilmekte ve program yüzlere özel eğitilmektedirler.
İkinci Adım
Son Adım
Tanımlanan ve Tanınan Yüzün Vurgulanıp İsminin Yazılması --> İşlem burada Form Load olayında gerçekleşiyor yani uygulama başlar başlamaz. Kısaca kamera görüntüsü alma, yüz tanımlama ve vurgulama işlemlerinin yanında yüz tanıma algoritmalarını başlatan kodlamanın gerçekleştiği yer.
Eigenfaces ;
Hafızadaki tüm resimlerin ortalamasını alarak ortaya çıkan görüntünün ortalamadan farkını alır. Böylece her görüntü aslında bir diferansiyel görüntü gibi değerlendirilir.
Fisherfaces ;
Yukarıdakine kıyasla daha gelişmiş bir yüz tanıma algoritmasıdır. Bir kişiye ait birden fazla fotoğrafı bir sınıfın üyeleri olarak kabul edip sınıflar arası tanıma işlemi yapmaya dayanır.
LBPH ;
Bir noktanın etrafındaki piksellerin yoğunluk değerlerine göre oluşan ikili(binary) örüntülerden yaratılır ve bu örüntüler üzerinde işlemler gerçekleştirerek nesneyi arar.
Makale sahibi yüz tanıma çalışmaları neticesinde Classifier Train & Business Recognition olmak üzere iki sınıf yani class kodlamış. Bunlardan Classifier Train isimli olan sınıfımız yüz eğitiminden ve yüz tanıma algoritmasını barındırıyor diğeri ise Classifiew Train sınıfını refere etmekte ve eğitim süreciyle birlikte diğer tüm durumları kontrol ediyor. Projeyi en son kaynak olarak incelemeniz için paylaşacağım. 3 adımda gerçekleşen olaylara şöyle bir göz atalım;
İlk Adım
Yüzlere Yazılımın Eğitilmesi --> Business Recognition sınıfındaki SaveTrainingData metodunu çağırmış. Bu metot tanımlanan yüzleri belirtilen kaynağa aktarma ve bunların yanında gerekli XML formatındaki veri setine ekleme görevinden sorumludur. Tanımlanan yüzler formda bulunan PictureBox2 nesnesine atanmaktadır. Neticede yakalanan bu yüz resimleri SaveTrainingData metoduna gönderilmekte ve program yüzlere özel eğitilmektedirler.
İkinci Adım
Eğitilen Yüzlerle Tanımlanan Yüzü Kıyaslama --> Bu adımda devreye Classifier_Train sınıfının Recognise metodu çağrılıyor. Bu metot, gönderilen image nesnesini hafızadakilerle kıyaslayarak eşleşen kaydın bilgilerini döndürüyor.
Son Adım
Tanımlanan ve Tanınan Yüzün Vurgulanıp İsminin Yazılması --> İşlem burada Form Load olayında gerçekleşiyor yani uygulama başlar başlamaz. Kısaca kamera görüntüsü alma, yüz tanımlama ve vurgulama işlemlerinin yanında yüz tanıma algoritmalarını başlatan kodlamanın gerçekleştiği yer.



