Face-and-Name-Recognition-in-Real-Time

OpenCV ile yüz tanıma

Proje Nasıl Çalışıyor?

3 betikten oluşan bu projede;

  1. betikte yüz taraması yapılıp kişilerin ayrı ayrı yüz fotoğrafları çekilir ve "dataset" klasöründe toplanır.
  2. betikte toplanan fotoğraflar ile veri kümemizin eğitimi yapılır.
  3. betikte ise yüz tanıması gerçekleşir.

Kod İçeriği

1.Betik:

•Görüntüleri webcam üzerinden elde edeceğiz. Görüntülerimizin eni 640, yüksekliği 480 piksel olarak tanımlandı.(6 ve 7. satır)
•Yüz sınıflandırıcısı 8. satırda bulunmaktadır.
•ID, ad, soyad, tcno kısmından aldığımız veriler ise veritabanına veri ekliyormuş ve çekiyormuş gibi simule etmek amacıyla txt dosyasına kayıt yapmaktadır.
•While döngüsünde webcam yüzü algılanan kişinin fotoğraflarını çeker ve kayıt yeri ise dataset klasörüdür.
•While dongüsü içerisindeki count değeri ne kadar ise kaydedilen fotoğraf sayısı o kadar olur ve bu değer artıkça eğitim oranı da artar. Yüz tanıma işleminde kesinlik artar.

2.Betik:

•Veri setinin eğitimi yapılıp bu betik çalıştıktan sonra oluşacak olan trainer.yml dosyasına kaydedilir.

3.Betik:

•Yüz tanıma nesnemiz recognizer‘a trainer.yml dosyası aracılığıyla eğitilmiş verisetimizi yüklüyoruz.
•Canlı kamera görüntülerindeki yüzleri de yine haarcascade_frontalface_default.xml filtresi aracılığıyla yakalayacağız. Filtre değişkenimiz faceCascade.
•Txt dosyasından isin verilerini çekiyoruz.(isimler fotoğraflar ile eşleşiyor)
recognizer.predict() metodu id ve confidence değerlerini döndürüyor. id kişi numarası; confidence ise yapılan saptamanın tahmini doğruluk oranıdır.