Categories
Deep Learning Technical

Face Detection dengan MTCNN

Face detection merupakan salah satu metode yang banyak digunakan untuk berbagai kepentingan termasuk untuk face recognition, face verification, dan berbagai aplikasi lain. Salah satu metode face detection yang bertahan cukup lama sebagai metode SOTA (State-of-The-Art) adalah Viola-Jones (Adaboost) face detection yang telah dibenamkan dalam pustaka OpenCV.

Seiring dengan perkembangan teknologi AI (Artificial Intelligent), metode face detection semakin hari semakin canggih, akurat, dan robust. Salah satu metode SOTA yang banyak digunakan saat ini adalah MTCNN (Multi-Task CNN) yang dijelaskan secara detil oleh Zhang et al. dalam makalah dengan judul “Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks”.


Gambar 1. Metode MTCNN yang digunakan untuk face detection. // source

Mungkin sedikit pembahasan tentang MTCNN. MTCNN dibentuk dari 3 buah CNN, yaitu P-Net (Proposal-Net), R-Net (Refinement-Net), dan O-Net (Output-Net), seperti yang dapat dilihat pada Gambar 1. Sesuai dengan namanya Multi-Task CNN, output dari MTCNN pada saat proses training dan validasi adalah face classification, face detection (dalam bentuk bounding box), dan facial landmark localization (5 point).

Metode MTCNN mengutilisasi sliding window untuk melakukan fast rejection dan mencari kandidat bounding box dari suatu wajah dengan menggunakan P-Net. Langkah tersebut dinamakan stage 1 dan stage 1 diakhiri dengan menggabungkan bounding box yang tumpang tindih atau biasa disebut dengan non-maximal suppression (NMS). Seluruh kandidat yang dihasilkan pada stage 1 akan dimasukkan ke Stage 2 atau R-Net untuk dilakukan pendetailan sehingga menghasilkan kandidat dengan jumlah lebih sedikit. Sama seperti stage 1, pada akhir stage 2 juga dilakukan proses NMS. Terkahir seluruh hasil pada stage 2 akan didetailkan kembali di stage 3 untuk dihasil respon terakhir. Penjelasan lebih detil dapat dibaca pada makalah MTCNN.

Implemtasi di Python

Makalah MTCNN telah diterbitkan cukup lama, yaitu tahun 2016 dan dari tahun 2016 sampai sekarang banyak sekali penelitian yang bergantung pada ketepatan MTCNN dalam melakukan pendeteksian wajah. Pada post ini kita akan coba untuk membuat program sederhana dalam python untuk melakukan pendeteksian wajah dengan MTCNN.

Instalasi: proses instalasi cukup dengan asumsi bahwa Anaconda / virtualenv telah dikuasai. Langkah pertama adalah membuat virtual environment di Anaconda / Linux (Python 3+) dan melakukan instalasi dengan menggunakan pip command berikut

pip install mtcnn tensorflow

To be continue …

Post Disclaimer

The information contained in this post is for general information purposes only. The information is provided by Face Detection dengan MTCNN and while we endeavour to keep the information up to date and correct, we make no representations or warranties of any kind, express or implied, about the completeness, accuracy, reliability, suitability or availability with respect to the website or the information, products, services, or related graphics contained on the post for any purpose.

Leave a Reply

Your email address will not be published. Required fields are marked *