Skip to content

Masked Face Recognition

ruhyadi/mask-face-recognition

📓 Google Colaboratory

Masked face recognition merupakan sebuah sistem yang dapat mengenali (recognize) wajah seseorang walaupun wajah tersebut tertutup oleh masker. Sistem ini terbagi menjadi tiga proses kerja: (1) Gathering data, (2) deteksi wajah, (3) embedding wajah, (4) klasifikasi wajah. Flowchart di bawah memberikan penggambaran ketiga proses tersebut yang terbagi menjadi proses training dan inference.

flowchart

Gathering Data

Gathering data atau pengumpulan data terbagi menjadi dua alternatif. Alternatif pertama adalah mengumpulkan data wajah bermasker dan tidak bermasker dari setiap orang yang sama. Sedangkan, untuk alternatif kedua adalah melakukan augmentasi dari data wajah normal (tidak bermasker).

First Alternatif

Wajah bermasker dan tidak bermasker dapat dikumpulkan dari foto atau rekaman video (yang kemudian diambil perframe). Penulis melakukan langkah alternatif pertama dengan membuat video untuk wajah bermasker dan tidak bermasker dari segala sisi wajah. Video dapat dilihat dibawah.

unmask mask
Tidak Bermasker Bermasker

Second Alternatif

Alternatif kedua adalah menggunakan tools augmentasi MaskTheFace1. MaskTheFace berguna untuk mengubah gambar wajah normal menjadi wajah bermasker. Dengan kata lain, hanya diperlukan data wajah normal, dimana data wajah bermasker akan diagumentasi oleh tools tersebut.

MASKTHEFACEIMAGE

Face Detection

Model MTCNN (Multi-task Cascaded Convolutional Networks)2 digunakan untuk mendeteksi wajah. Wajah yang terdeteksi kemudian diekstraksi untuk keperluan proses face embedding.

MTCNN

Face Embedding

Face embedding merupakan proses untuk menghasilkan data numerik dari keypoint /landmark penting pada wajah. Proses embedding kali ini dilakukan menggunakan model FaceNet3. Dalam hal ini kita hanya perlu melakukan prediksi/inferensi menggunakan model FaceNet, dimana hasil prediksi dari model FaceNet tersebut merupakan data embedding yang dibutuhkan.

facenet

Face Classification

Proses terakhir adalah klasifikasi wajah. Proses ini akan membandingkan embedding wajah dari data latih dengan embedding wajah dari data pengujian. SVM (Support Vector Machine) digunakan sebagai algoritma klasifikasi. Data embedding yang telah diperoleh sebelumnya akan digunakan sebagai data latih untuk model SVM.

svm

Inference

Selanjutnya pada tahap inferensi stream video dapat dilakukan. Hasil inferensi dapat dilihat pada video di bawah:

output

Acknowledgment


  1. Anwar, Aqeel, and Arijit Raychowdhury. "Masked face recognition for secure authentication." arXiv preprint arXiv:2008.11104 (2020). 

  2. Zhang, Kaipeng, et al. "Joint face detection and alignment using multitask cascaded convolutional networks." IEEE Signal Processing Letters 23.10 (2016): 1499-1503. 

  3. Schroff, Florian, Dmitry Kalenichenko, and James Philbin. "Facenet: A unified embedding for face recognition and clustering." Proceedings of the IEEE conference on computer vision and pattern recognition. 2015.