Face Anti-Spoofing (Yüz Sahteciliğini Önleme)


Bu yazı, https://medium.com/codable/face-anti-spoofing-starter-kit-f248ed195a3c Medium makalemin Türkçe çevirisidir.

Vietnamlı güvenlik şirketi Bkav tarafından, Face ID’yi aşması için tasarlanan maske. Kaynak: https://www.youtube.com/watch?v=rhiSBc061JU

Biyometrik tanımlama, en eski kişi doğrulama tekniklerinden biridir. Parolalar ve anahtarlar casusluk yoluyla elde edilebilir, çalınabilir, unutulabilir veya taklit edilebilir. Ancak kişinin kendisinin benzersiz özelliklerini taklit etmek ve kaybetmek çok daha zordur. Bu özellikler; parmak izleri, ses, retinanın damarlarının şekli ve daha fazlası olabilir.

Ancak tahmin ettiğiniz üzere biyometrik sistemleri de kandırmaya çalışanlar var. İşte bu makalenin konusu da: Saldırganlar başka bir kişiyi taklit ederek yüz tanıma sistemlerinden nasıl kaçınmaya çalışıyor ve bu nasıl tespit edilebilir!

Bu makaleyi okuduktan sonra neler hakkında bilgi sahibi olacaksınız:

Yüz tanıma teknolojisinden yüz sahteciliğine

Günümüzün yüz tanıma sistemleri muazzam bir doğruluk göstermektedir. Büyük veri setlerinin ve karmaşık mimarilerin ortaya çıkmasıyla, 0.000001’e (milyonda bir hata!) kadar yüz tanıma doğruluğu elde etmek mümkün hale geldi ve artık mobil platformlara aktarma için uygunlar. Bu yüz tanıma sistemlerinin günlük kullanımının yaygınlaşmasına tek engel; onların zayıf taraflarıydı.

Teknik gerçekliğimizde başka bir kişiyi taklit etmek için en sık kullanılan yöntem maskelerdir. Örneğin, aşağıdaki resimde olduğu gibi siyahi bir maske takarak bir bankayı soyun:

Kaynak: https://www.dailymail.co.uk/news/article-1334726/Conrad-Zdzierak-white-man-pleads-guilty-wearing-black-man-disguise-robberies.html

Yüz tanıma sistemlerini kandırmanın en iyi yolu kişinin kendi yüzü yerine başka birinin yüzünü sunmasıdır. Maskeler; yazıcıdan çıktısı alınan başkasına ait yüzün fotoğrafından, ısıtmalı çok karmaşık üç boyutlu maskelere kadar tamamen farklı kalitede olabilir, ayrı bir sayfa veya ekran şeklinde de sunulabilir, kişinin başına da takılabilir.

Samsung’daki Iris tarayıcısı ve iPhone X’teki Face ID sistemini aldatma girişimi ile birlikte, yüz sahteciliği konusuna olan ilgi de artmaya başladı. Aşağıdaki şekilde, Vietnam güvenlik şirketi olan Bkav’ın, Face ID’yi aşmak için kullandığı maskeyi görüyorsunuz. Maske, silikon burun, 3 boyutlu yazıcıdan çıkarılmış parçalar ve 2 boyutlu fotoğraflardan oluşuyor. Detaylı bilgiye bu videodan da ulaşabilirsiniz.

Apple’ın FaceID sistemini aşan maske. Kaynak: https://www.wired.com/story/hackers-say-broke-face-id-security/

Bu tür güvenlik açıklarının varlığı, bir saldırganın nüfuz etmesinin önemli kayıplara yol açabileceği bankacılık veya şehir güvenlik sistemlerinde otomatik yüz doğrulama sistemlerinin kullanımını tehlikeye sokmaktadır.

Terminoloji

Kimlik/yüz sahteciliğini önleme araştırma alanı oldukça yenidir ve hâlâ herkes tarafından geçerli ortak bir terminolojiyle sahip olduğu söylenemez. Yine de önemli terimleri elimden geldiğince Türkçe’ye çevirmeye çalışacağım:

Kimlik sahteciliği saldırısı (Spoofing-attack): Kimlik sistemini sahte bir biyometrik parametre (bu durumda, bir kişi veya kişinin yüzü) sunarak aldatma girişimi.

Kimlik sahteciliğini önleme (Anti-spoof): Bu tür aldatmacalara karşı koymak için bir dizi koruyucu önlem. Bir tanımlama sisteminin konveyörüne yerleştirilmiş çeşitli teknolojiler ve algoritmalar şeklinde uygulanabilir.

Sunum saldırısı (Presentation attack): Sistemin kullanıcıyı yanlış tanımlamasını veya tanımlanmasını engellemesini sağlayabilmek için; bir resim, kaydedilmiş bir video vb. gösterilmesi.

Normal (Bona Fide): Sistemin olağan giriş / davranışına, yani bir saldırı OLMAYAN her şeye karşılık gelir.

Sunum saldırı aracı (Presentation attack instrument): Bir saldırı aracı, örneğin vücudun yapay olarak yapılmış bir parçası.

Sunum saldırısı algılama (Presentation attack detection): Bu tür saldırıları otomatik olarak tespit etme yolları.

HTER metriği (Toplam-Toplam Hata Oranı — toplam hatanın yarısı): Kimlik sahteciliğini önleme sisteminin kalitesini belirlemek için kullanılır. Yetkisiz bir kişinin yanlış doğrulama sayısının (FAR — Yanlış Kabul Oranı) ve yetkili bir kişinin kaçırılan doğrulama sayısının (FRR — Yanlış Reddetme Oranı) ikiye bölünmesiyle hesaplanır:

HTER = (FAR+ FRR) / 2

Biyometrik sistemlerde, bir saldırganın sisteme girmesini önlemek için mümkün olan her şeyi yapmak için genellikle en büyük dikkat FAR’a gösterilmektedir ve bu konuda iyi ilerleme kaydedilmiştir. Bunun dezavantajı, FRR’deki kaçınılmaz artıştır — yanlışlıkla davetsiz misafir olarak sınıflandırılan dürüst kullanıcıların sayısı.

Arka arkaya onuncu kimlik reddinden sonra duvara fırlatılan telefon sayısını azaltmak istiyorsanız, FRR’ye dikkat etmelisiniz.

EER metriği (Eşit Hata Oranı): ROC eğrisindeki FAR ve FRR’nin aynı olduğu nokta, yani ROC eğrisinin x + y = 1 çizgisiyle kesiştiği noktadaki FAR (X ekseni) değeri.

Kaynak: https://sci-hub.tw/10.1016/j.engappai.2018.04.013

Saldırı türleri

Artık saldırganların tanıma sistemini nasıl kandırdığı örnek resimlerle inceleyebiliriz.

Hile yapmanın en popüler yolu maskelerdir. Başka bir kişinin maskesini takıp yüzünüzü bir tanımlama sistemine sunmaktan daha bariz bir saldırı yöntemi yoktur (genellikle maske saldırısı (mask spoofing) olarak adlandırılır).

Kaynak: https://www.youtube.com/watch?v=Y4BMi38yRLo

Ayrıca kendinizin veya bir başkasının fotoğrafını bir kağıda yazdırabilir ve kameraya tutabilirsiniz (basılı saldırı (printed attack) olarak adlandırılır).

Kaynak: https://www.youtube.com/watch?v=Y4BMi38yRLo

Tekrar saldırısı (replay attack) biraz daha karmaşıktır. Kameraya, daha önce başka bir kişinin kaydedilmiş bir videosunun oynatıldığı bir cihazın ekranı gösterilir. Yöntemin karmaşıklığı, pratikteki kullanımını azaltıyor gibi anlaşılmasın, çünkü bu tarz saldırıların önleme sistemini geçme ihtimali çok daha yüksektir. Çünkü mevcut yüz tanıma sistemleri, sahtekarlık tespiti yaparken genellikle zaman dizilerinin analizine dayanan işaretleri kullanır, örneğin göz açıp kapatmayı, başın mikro hareketlerini, yüz ifadelerinin varlığını, nefes almayı takip eder. Tüm bunlar, video ile kolayca tekrar edilebilir.

Kaynak: https://www.youtube.com/watch?v=Y4BMi38yRLo

Uygulama alanları

Yüz tanıma uygulanan her yerde sahteciliğe karşı önlemler alınması gerekir. Yüz sahteciliği ve kimlik sahtekarlıkları aşağıdaki konularla ilişkilidir ancak bunlarla sınırlı değildir:

Geleneksel, sahteciliği önleme teknikleri

Kamera önünde videodan tekrar oynatılan veya çıktısı alınmış yüz görüntüleri, fotoğrafın/videonun kalitesindeki deformasyon özniteliklerinden tespit edilebilir. Muhtemelen, gözle bile olsa, bazı yerel desenler bile görüntüde tespit edilecektir. Bu, örneğin, çerçeveden tespit edilen yüzün farklı alanları için yerel ikili kalıpları (Local binary patterns, LBP) hesaplanarak yapılabilir. LBP, bu çizim ile özetlenebilir:

Görüntü analizine dayalı yüz sahteciliğini önleme algoritmalarının öncüsü olarak düşünülebilen, LBP tabanlı sahtekarlık önleme algoritmasının (2012) blok şeması:

Kaynak: https://publications.idiap.ch/downloads/papers/2012/Chingovska_IEEEBIOSIG2012_2012.pdf

Verilen algoritmada, görüntüdeki her bir piksel için LBP hesaplanırken, komşularının sekizi sırayla alınır ve değerleri karşılaştırılır. Değer merkezi pikselden daha büyükse bir, küçükse sıfır olarak atanır. Böylece, her piksel için 8 bitlik bir dizi elde edilir. Elde edilen sekanslara dayanarak, SVM sınıflandırıcısına girdi olarak verilen piksel histogram ı (a per-pixel histogram) oluşturulur.

Bu yöntemin HTER değeri %15 kadardır ve saldırganların önemli bir kısmının çok çaba sarf etmeden güvenlik sisteminin geçebildiği anlamına gelir, ancak tehditlerin %85 oranında elendiğine dikkat edilmelidir. Algoritma, 50 katılımcının 1200 kısa videosundan ve üç tür saldırıdan (basılı saldırı, mobil saldırı, yüksek çözünürlüklü saldırı) oluşan IDIAP Replay-Attack veri kümesinde test edildi.

Derin öğrenme temelli sahteciliği önleme teknikleri

Bir noktadan sonra, derin öğrenmeye geçişin olgunlaştığı belli oldu. Ön yargıyla yaklaşılan “derin öğrenme devrimi”, yüz sahteciliğiyle karşı karşıya kaldı.

2017 yılında yapılan bir çalışmada, sahtecilik tespiti için yama ve derinlik tahminine dayalı bir sinir ağı önerildi:

Kaynak: https://www.researchgate.net/profile/Yaojie_Liu/publication/319301805_Face_Anti-Spoofing_Using_Patch_and_Depth-Based_CNNs/links/5bfed43a45851523d153157a/Face-Anti-Spoofing-Using-Patch-and-Depth-Based-CNNs.pdf

İlk olarak, girdi görüntüsünde yüz algılanır. Bu yüz, sinir ağı tabanlı model içeren 2 dala girdi olarak verilir. İlk dal, tespit edilen yüz bölgesinden yamalar (patches) çıkarır ve her bir yama için bir sahtelik puanı tahmin eder. İkinci dal, derinliğe dayalı bir CNN modeli ile onun ucuna bağlanmış bir öznitelik çıkarıcıdan oluşur. Burada, yüzün derinlik haritası tahmin edilir ve sonrasında çıkarılan derinlik öznitelikleri, ikili sahte / gerçek tahmini yapan SVM tabanlı bir sınıflandırıcıya girdi olarak verilir. Önerilen tüm modellerin / sınıflandırıcıların ayrı ayrı eğitildiği unutulmamalıdır (ortak bir kayıp fonksiyonu ile uçtan uca eğitim yoktur). Yöntem CASIA-FASD MSU-USSA ve Replay-Attack veri kümelerinde sırasıyla 2.27, 0.21 ve 0.72 HTER degerlerini elde etti.

2018’de yapılan bir çalışmada, sahte yüz tespiti için 3 boyutlu CNN tabanlı ağ önerilmiştir:

Kaynak: https://rose.ntu.edu.sg/Publications/Documents/Face%20Spoofing%20Detection/Learning%20Generalized%20Deep%20Feature%20Representation%20for%20Face%20Anti-Spoofing.pdf

Bu çalışmada, 3 boyutlu evrişimsel sinir ağı katmanlarızaman serisi görüntü çerçevelerinden öznitelik çıkarmak için kullanılır. Kayıp fonksiyonu olarak, çapraz entropi (cross-entropy) ve maksimum ortalama tutarsızlık (maximum mean discrepancy) hatasının kombinasyonu kullanılmaktadır. Bu yöntem Idiap veri kümesinde 1.2 HTER elde etti.

2019 yılında yapılan bir çalışmada ise, sıfır atış yüz sahteciliği önleme (zero shot face anti-spoofing) problemi için derin bir ağaç modeli (deep tree model) önerilmiştir. Ağaç yapısı ve birimleri aşağıda görülebilir:

Kaynak: http://openaccess.thecvf.com/content_CVPR_2019/papers/Liu_Deep_Tree_Learning_for_Zero-Shot_Face_Anti-Spoofing_CVPR_2019_paper.pdf
Kaynak: http://openaccess.thecvf.com/content_CVPR_2019/papers/Liu_Deep_Tree_Learning_for_Zero-Shot_Face_Anti-Spoofing_CVPR_2019_paper.pdf

Ayrıca, mevcut en fazla sayıda sahtecilik (spoof) türüne (12 sahtecilik türü) sahip bir sahtecilik veri kümesi (SiW-M veri kümesinde) yayımladılar. Kayıp fonksiyonları; 2 denetimli (gerçek/ sahte yüz kategorizasyonu için ikili çapraz entropi (binary cross entropy) ile maske için ortalama fark (mean error)) ve 2 denetimsiz (daha büyük PCA tabanını (larger PCA basis) teşvik eden bir yönlendirme kaybı (routing loss) ile alt grupların verimli şekilde eğitilememesi durumlarda dengesizlik yönlendirme (imbalance routing) sorununun üstesinden gelen bir benzersiz kayıp (unique loss)) terimden oluşmaktadır. Yöntem, SiW-M veri kümesinde 16.1 EER elde etti (2019 itibariyle en iyisi).

Veriyi ezberlemek çözüm değil

Neyse ki, halka açık birçok sahtecilik önleme veri kümesi var. CASIA, Idiap, Replay-Attack ve daha fazlası… Mevcut bazı veri kümelerinde en iyi performans gösteren yöntemlere bir göz atalım:

Kaynak: https://sci-hub.tw/10.1016/j.engappai.2018.04.013
Kaynak: https://sci-hub.tw/10.1016/j.engappai.2018.04.013
Kaynak: https://sci-hub.tw/10.1016/j.engappai.2018.04.013
Kaynak: http://openaccess.thecvf.com/content_CVPR_2019/papers/Liu_Deep_Tree_Learning_for_Zero-Shot_Face_Anti-Spoofing_CVPR_2019_paper.pdf

Tablolarda görülebileceği gibi, yüz sahtecilik önleme sorunu veri kümelerini tekil olarak düşündüğümüzde çözülmüş gibi görünmektedir. Bununla birlikte, sinir ağını bir veri setinde eğitmeye ve başka bir veri kümesine test etmeye çalışırsanız, sonuçların o kadar da iyimser çıkmadığını göreceksiniz.

Patel’in 2016 makalesinde sunulan sonuçlar, yeterince karmaşık bir sinir ağı yapısı üzerinde, göz kırpma/doku gibi güvenilir öznitelikler kullanılsa bile, bilinmeyen veri kümelerindeki sonuçların tatmin edici olmayacağını göstermektedir:

face anti spoofing results
Kaynak: http://biometrics.cse.msu.edu/Publications/Face/PatelHanJain_FaceAntispoofing_CCBR2016.pdf
face anti spoofing results
Kaynak: http://biometrics.cse.msu.edu/Publications/Face/PatelHanJain_FaceAntispoofing_CCBR2016.pdf

Yukarıdaki tabloda USSA veri seti eğitilen modelin Replay-Attack ve FASD veri kümeleri üzerindeki test sonuçları görülebilir. Veri kümeleri yeterli çeşitliliğe sahip olmadığından, bir veri kümesinde eğitilmiş modeller diğer kümeler üzerinde genelleme yeteneğine sahip olamıyor.

Son sözler

Referanslar

  1. Souza, L., Oliveira, L., Pamplona, M., & Papa, J. (2018). How far did we get in face spoofing detection?. Engineering Applications of Artificial Intelligence72, 368–381.
  2. Chingovska, I., Anjos, A., & Marcel, S. (2012, September). On the effectiveness of local binary patterns in face anti-spoofing. In 2012 BIOSIG-proceedings of the international conference of biometrics special interest group (BIOSIG) (pp. 1–7). IEEE.
  3. Atoum, Y., Liu, Y., Jourabloo, A., & Liu, X. (2017, October). Face anti-spoofing using patch and depth-based CNNs. In 2017 IEEE International Joint Conference on Biometrics (IJCB) (pp. 319–328). IEEE.
  4. Li, H., He, P., Wang, S., Rocha, A., Jiang, X., & Kot, A. C. (2018). Learning generalized deep feature representation for face anti-spoofing. IEEE Transactions on Information Forensics and Security13(10), 2639–2652.
  5. Liu, Y., Stehouwer, J., Jourabloo, A., & Liu, X. (2019). Deep tree learning for zero-shot face anti-spoofing. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (pp. 4680–4689).
  6. Patel, K., Han, H., & Jain, A. K. (2016, October). Cross-database face antispoofing with robust feature representation. In Chinese Conference on Biometric Recognition (pp. 611–619). Springer, Cham.