Gönderi Fotoğrafı

Yüz Tanıma ile Yoklama Sistemi Geliştirme Sürecim

Görüntülenme: 33

Tez projem kapsamında geliştirdiğim yüz tanıma tabanlı yoklama sistemi, aslında oldukça basit bir fikirle başladı. İlk adımda, sadece kameradan alınan görüntülerdeki yüzleri algılayan temel bir sistem oluşturdum. Bu sistemi çalıştırdığımda, yüz algılamanın ne kadar tutarlı çalıştığını gözlemledim ve bu beni sonraki adıma yönlendirdi.

Arayüz geliştirme sürecine geçerek, algılanan yüzleri otomatik olarak kırpıp etiketleyerek kayıt altına alabileceğim bir sistem yazdım. Bu sistemle 10 kişiden, her biri için yaklaşık 20’şer adet olmak üzere örnek fotoğraflar topladım. 

(Oluşturduğum veriseti oluşturma programının arayüzü)

İlk model denememi TensorFlow ve Keras kullanarak yaptım. Ancak bu modelin çıktıları oldukça tutarsız ve düşük başarımlıydı. Uzun uğraşlar sonunda bu yöntemin yetersiz kaldığını kabul ettim ve yeni bir yaklaşım arayışına girdim.

Sonraki denememde PyTorch kullanarak, önceden eğitilmiş bir ResNet-18 modeli üzerinden transfer öğrenme ile yüz tanıma modelini yeniden inşa ettim. Ancak sonuç yine beklentimi karşılamadı. Bu aşamada sorunun koddan değil, veriseti kalitesinden kaynaklandığını düşünmeye başladım.

Daha çeşitli bir veri seti oluşturmak amacıyla bu kez 5 kişiden, her biri için yaklaşık 210 farklı poz içeren fotoğraflar topladım. Ancak bu kadar çeşitlendirmeye rağmen, modelin başarımı değişmedi. Bu durum ciddi bir hayal kırıklığı yaratmıştı.

Tam da umutsuzluğa kapıldığım sırada, tez danışmanımla yaptığımız araştırmalar sonucunda FaceNet ve benzeri ileri seviye yüz tanıma sistemlerini keşfettik. Şu an uygulamamda kullandığım sistemin çalışma mantığı, önceki karmaşık modellere göre inanılmaz derecede basit ama çok daha etkili.

Yeni sistem şu şekilde çalışıyor:

  1. Kamera görüntüsünden yüz algılanıyor.

  2. Bu yüz, FaceNet kullanılarak bir embedding (sayısal temsil) vektörüne dönüştürülüyor.

  3. Kayıtlı kişilere ait embeddinglerle karşılaştırma yapılıyor.

  4. En yakın embedding’e sahip kişi, tanımlanan kişi olarak kabul ediliyor.

Bu yöntem sayesinde, sadece birkaç fotoğrafla bile son derece başarılı tahminler elde edilebiliyor. Üstelik sistem oldukça hızlı çalıştığı için gerçek zamanlı yoklama senaryolarında bile rahatlıkla kullanılabiliyor.