İnsanların yüzleri tanıma yeteneğine eşit olan otomatik bir sistem oluşturmak gerçek bir meydan okumadır. İnsanlar bildikleri yüzleri belirleme konusunda oldukça başarılı olsalar da, çok sayıda bilinmeyen yüzle uğraşmaları gerektiğinde yeterli değillerdir. Neredeyse sınırsız bir belleğe ve hesaplama hızına sahip bilgisayarlar, insanın yetemediği alanların üstesinden gelmektedir.
Yüz tanıma, bir kişinin yüzünü kullanarak kimliğini tanımlama veya doğrulama yöntemidir. Makinelerin insanlara yaklaşma şeklidir ve dünyayı otomasyona bir adım daha yaklaştırır. Yüz tanıma sistemleri insanları fotoğraflarda, videolarda veya gerçek zamanlı olarak tanımlamak için kullanılmaktadır.
Yüz tanıma çalışmalarının tarihçesine baktığımızda uzun zamandan beri çalışmaların yürütüldüğünü görürüz. 1960’larda Woody Bledsoe kılavuz çizgileri kullanarak yüzleri sınıflandırmak için bir yöntem geliştirmiştir. Günümüzde ise evrişimsel sinir ağı (CNN) tabanlı modellerin yüz tanıma çalışmalarında baskın hale geldiğini görebiliriz.
Yakın gelecekte, yüz tanıma teknolojisi muhtemelen daha yaygın hale gelecektir. Otomatik plaka okuyucuların araçları plaka numaralarına göre takip etmesi gibi, çeşitli mercilerce kişilerin hareketlerini takip etmek için de kullanılabileceklerdir. Oldukça iddialı olan bu teknolojinin nasıl çalıştığını inceleyelim:
1 - Görüntü yakalanır.
2 - Göz yerleri belirlenir.
3 - Görüntü gri tonlamaya dönüştürülür ve kırpılır.
4 - Görüntü, yüz karşılaştırma sonuçları için arama motoru tarafından kullanılan bir şablona dönüştürülür.
5 - Görüntü şablonu, dosyadaki diğer şablonlarla karşılaştırılmak üzere gelişmiş bir algoritma kullanılarak aranır ve eşleştirilir.
Yüz tanıma sistemleri, bir kişinin yüzüyle ilgili belirli ayırt edici ayrıntıları (gözler arasındaki mesafe veya çenenin şekli gibi) seçmek için bilgisayar algoritmalarını kullanır. Bu ayrıntılar daha sonra matematiksel bir temsile dönüştürülür ve bir yüz tanıma veritabanında toplanan diğer yüzlerdeki verilerle karşılaştırılır.
Belirli bir yüzle ilgili verilere genellikle yüz şablonu denir. Bir yüzü diğerinden ayırt etmek için kullanılabilecek belirli ayrıntıları içerecek şekilde tasarlanmıştır.
Yüz tanıma teknolojisinin algoritma adımlarını inceledik. Şimdi bu teknolojinin avantajlarını inceleyelim.
Sıklıkla karıştırılan yüz tanıma ve yüz doğrulama kavramlarının tanımlarını inceleyelim.
Yüz doğrulama: Kimliği bilinmeyen bir kişinin yüz görüntüsü sunulduğunda, kişinin iddia ettiği kişi olup olmadığının tespitinin yapılmasıdır. Yüz doğrulama probleminin karmaşıklığı O(1) olarak ifade edilir.
Yüz tanımlama: Kimliği bilinmeyen bir kişinin bir görüntüsü verildiğinde, bu görüntüyü kimliği bilinen kişilerin görüntülerinden oluşan veritabanı ile karşılaştırarak o kişinin kimliğini belirlemektir. Yüz tanımlama probleminin karmaşıklığını O(n) olarak ifade edilir. “n” veritabanındaki yüz sayısını ifade eder.
Yüz tanımanın kullanılabileceği çok sayıda uygulama alanı vardır, bunlardan birkaçı aşağıda özetlenmiştir.
Güvenlik: Havaalanlarında, özel olarak korunması gereken binalarda erişim için kontrolün sağlanması; sınır kontrol noktaları bilgisayar/ağ güvenliği; e-posta kimlik doğrulaması.
Gözetim: Kimliği bilinen suçluları aramak için CCTV izlenilmesi.
Genel kimlik doğrulaması: Yeni doğanları tanımlama, pasaportlar, sürücü ehliyetleri ve çalışan kimlikleri.
Ceza/Adalet sistemleri: Sabıka kaydı, olay sonrası analiz, adli tıp.
Görüntü veritabanı araştırmaları: Kayıp çocuklar, sürücülerin görüntü veritabanlarını aramak.
İnsan-Bilgisayar arayüzlerine sahip çoklu ortam: Çocuk bakımı veya yaşlı bakım merkezlerinde davranış izleme, bir müşteriyi tanıma ve ihtiyaçlarını değerlendirme.
Yüz tanıma teknolojisinin avantajlarından, kullanım alanlarından bahsettik. Peki bu teknoloji kullanıldığında karşılaşılabilecek problemler nelerdir?
Yüz tanımanın her yerde bulunmasına ve teknolojideki gelişmelere rağmen, yüz tanıma verileri hataya açıktır. Veritabanındaki kişi sayısı arttıkça yüz tanımada doğruluk oranı düşebilmektedir. Bunun nedeni dünyada birbirine benzeyen birçok insanın olmasıdır. Veri tabanındaki insan yüzü sayısının artması benzer yüzlerin veritabanında yer alma olasılığını arttırmakta, bu durum da eşleştirme doğruluğunu azaltmaktadır.
Bazı yüz tanıma sistemleri bilinmeyen bir kişiyi pozitif olarak tanımlamak yerine, bilinmeyen kişi ile veri tabanında saklanan belirli yüz şablonları arasında bir olasılık eşleşme skoru hesaplamak için tasarlanmıştır. Bu sistemler, yalnızca tek bir sonuç döndürmek yerine, doğru tanımlama olasılığına göre sıralanmış birkaç olası eşleşme sunacaktır.
Zayıf aydınlatma, düşük kaliteli görüntü çözünürlüğü ve yetersiz görüş açısı (örneğin bilinmeyen bir kişiye yukarıdan bakan bir fotoğrafta) gibi olumsuz koşullar, yüz tanıma sistemlerinden hatalı sonuçların elde edilmesine neden olmaktadır.
Yüz tanıma sistemlerinde hatalar söz konusu olduğunda, bilinmesi gereken iki anahtar kavram vardır:
"False negative" yüz tanıma sisteminin bir kişinin yüzünü, aslında bir veri tabanında bulunan bir görüntüyle eşleştiremediği zamandır. Başka bir deyişle, sistem bir sorguya yanıt olarak hatalı olarak sıfır sonuç döndürür. Telefonunuzun kilidini açmak için yüz tanımayı kullanıyorsanız, sistemin sizi birkaç kez tanımlayamaması buna örnek olarak verilebilir. Sistemin sizin yerinize başka bir insanı, siz olarak tanımlayıp telefonunuzun kilidini açmasına izin vermemesi olumlu bir sonuçtur.
"False positive" yüz tanıma sisteminin bir kişinin yüzünü bir veritabanındaki bir görüntüyle eşleştirmesi, ancak bu eşleşmenin aslında yanlış olması durumudur. Bu, bir polis memurunun sisteme Ali isimli bir kişinin resmini gönderdiği, ancak sistemin polis memuruna yanlışlıkla fotoğrafın Ahmet’e ait olduğunu söylediği zamandır. Bu örnekte olduğu gibi yanlış tanımlamanın sonucu masum bir kişinin hapse girmesi gibi önemli sonuçlara neden olabileceğinden, sistem mümkün olduğunca az false positive sonuç çıkartacak şekilde tasarlanmalıdır.
Yüz tanıma aydınlatma, poz gibi farklı koşullardan etkilenir. Bu sorunu çözmek için yüz ön işleme gerekli bir adımdır.
Ağ mimarisi yüz tanıma sisteminin omurgasıdır. Derin öznitelik çıkarımı, multispektral görüntü sınıflandırması için kritik öneme sahip olup değişiklik saptama araştırmalarında da kullanılmaktadır. Bireysel varyasyonların ve aydınlatmanın etkileri nedeniyle, yüzdeki değişikliklerle bağlantılı belirli özelliklerin çıkarılması zordur. Bu sebeple derin özellik çıkarımı, yüz değişikliklerini etkili bir şekilde belirleyebilmesi sebebiyle gerekli bir adımdır. Girdi görüntüsünün ağın mimarisinden geçirilmesiyle yapılır ve buna karşılık gelen bir ‘embedding’ özellik vektörü elde edilir.
Yüz tanıma sisteminin doğruluğunu arttırmak için yüksek kaliteli verileri iyileştirmek veya ağ mimarisi ile yüz eşleştirme eğitim kaybını (training loss) iyileştirmek amaçlanır. Ağ mimarisi ve eğitim kaybındaki bu iyileştirmelerle ilgili örnek verilecek olursa Facebook ve Google gibi şirketler, 106-107benzersiz yüz içeren yüz tanıma veri kümeleri oluşturmuştur. Bununla birlikte akademik çalışmalarda hesaplama için yeterli kaynağa sahip olunamaması, araştırmacıları, yüz tanıma sistemlerinin doğruluğunu iyileştirmek için, ağ mimarisi ve eğitim kaybını iyileştirmeye yöneltmiştir. Örneğin Labelled Faces in the Wild (LFW) isimli, resim çiftlerinin yer aldığı veri setinde ağ mimarisi ve eğitim kaybındaki iyileştirmeler sayesinde doğruluk oranı %97’den %99.7’ye yükselmiştir.
Nesne sınıflandırma problemlerinde iyi performans gösteren mimariler, öznitelik çıkarma için de iyi performans göstermektedir.
Yüz tanıma sistemlerinin genel doğruluğunu iyileştirmede eğitim kaybının hayati bir rolü vardır. DeepFace ve DeepId gibi oldukça eski ağ mimarileri, özellikleri öğrenmek ve modeli eğitmek için softmax loss kullanmaktadır. Softmax loss, softmax aktivasyonu ile çapraz entropi kaybıdır. Softmax, her sınıf için olasılık çıktısı veren bir etkinleştirme işlevidir ve bu olasılıklar bire kadar toplanır. Çapraz entropi kaybı ise, olasılıkların negatif logaritmasının toplamıdır.
Araştırmacılar, softmax loss gibi fonksiyonların, ayırt edici özelliklerin öğrenme kapasitesini sınırladığını fark etmişlerdir. Bu sebeple, yüz tanıma sistemlerinde loss fonksiyonlarına ‘accuracy’ iyileştirmesi amacıyla daha fazla odaklanılmaya başlanmıştır. Bu aşamada, Euclidean Loss ve Cosine Loss önemli bir rol oynamıştır.
1-Euclidean loss: Öklid kaybı, belirli bir yüz görüntüsünü, temsili alana yerleştiren bir öğrenme ölçümüdür. Öklid kaybının odaklandığı ana fikir, yüz görüntüleri arasındaki sınıf içi varyansı azaltmak ve farklı yüz görüntüleri arasındaki sınıflar arası varyansı arttırmaktır.
2-Cosine loss: Cosine loss öncesi geliştirilen loss fonksiyonlarında, accuracy değeri daha yüksek olan yüz tanıma sistemleri geliştirmek için loss fonksiyonlarının iyileştirilmesine yönelik çalışmalar gerçekleştirilmiştir. Yüz tanıma accuracy değerini artırabilmek amacıyla; cosine loss ile sınıf içi minimum varyans, sınıflar arası maksimum varyans elde edilmektedir.
Burada,
Ɵ; W ve x (özellik vektörü) arasındaki açı olduğu durumda yukarıdaki formül kullanılır.
Son 30 yılda küçük veya büyük ölçekli, laboratuvar veya gerçek dünyanın kısıtlamasız koşullarında birçok yüz veritabanı oluşturulmuştur. Yüz veri tabanı oluşturma prosedürü, yüz tanıma araştırmasının yolunu büyük ölçüde etkiler. Başarılı bir yüz tanımlama işlemi için yeterince büyük bir eğitim veri seti gereklidir. Bu nedenle çeşitli araştırma toplulukları tarafından veri seti azlığını gidermek amacıyla büyük ölçekli veri setleri oluşturulmaktadır. 1 milyondan fazla fotoğraf içeren Megaface, VGGface2, MS-Celeb-1M ve WebFace260M çalışmalarda kullanılan önemli, büyük ölçekli veri tabanlarıdır. Yeni bir büyük ölçekli yüz veri seti olan VGGFace2, 9131 kişinin 3.31 milyon fotoğrafını içermektedir. Veri setinde yer alan fotoğraflar Google Görsel Arama kullanılarak toplanmış olup çeşitli poz, etnik köken, yaş, aydınlatma koşulları ve meslek (aktörler, sporcular, politikacılar) gruplarına ait kişilerin fotoğraflarını içermektedir.
Özetle;
Kaynakça