OpenCV Face Recognition Berbasis Algoritma Haar Cascade

Lintang Wisesa
purwadhikaconnect
Published in
2 min readNov 25, 2019

Algoritma Haar Cascade merupakan salah satu model machine learning yang kerap kali digunakan sebagai pondasi aplikasi object detection (terutama face recognition), dalam sebuah gambar maupun video. Algoritma ini lahir dari gagasan Paul Viola dan Michael Jones yang tertuang dalam paper berjudul “ Rapid Object Detection using a Boosted Cascade of Simple Features” (2001).

Algoritma Haar Cascade menerapkan cascade function untuk mentraining gambar melalui 4 tahapan utama: (1) menentukan Haar features, (2) membuat gambar integral, (3) Adaboost training dan (4) melakukan klasifikasi dengan cascading classifier. Selengkapnya mengenai algoritma ini dapat Anda simak di tautan ini. Di artikel kali ini saya akan mencoba berbagi tutorial singkat bagaimana menggunakan algoritma Haar Cascade untuk mengenali di area mana saja terdapat wajah manusia (face recognition) pada sebuah gambar menggunakan OpenCV.

1. Requirements

OpenCV (Open Source Computer Vision Library) merupakan open-source library yang berisi ratusan algoritma computer vision. Pastikan PC Anda telah terinstall OpenCV, tatacara instalasi dapat Anda simak di laman dokumentasi OpenCV di sini. Saya akan menggunakan bahasa pemrograman Python dan Visual Studio Code sebagai code editor-nya, Anda dapat menggunakan code editor kesayangan Anda.

2. Script

OpenCV telah menyediakan ratusan algoritma computer vision di dalamnya, yang dapat digunakan secara mudah & gratis oleh para developer. Buatlah sebuah file haarcascade.xml untuk menampung algoritma Face Recognition Haar Cascade, dengan script sebagai berikut: click di sini.

Script di atas bersumber dari dokumentasi OpenCV untuk melakukan frontal face recognition, yakni mengenali struktur wajah manusia dari sisi depan. Selanjutnya buatlah sebuah file Python facerecognition.py yang dapat memanfaatkan script haarcascade.xml untuk mengenali pola wajah manusia dalam suatu gambar:

3. Test an Image

Siapkan sebuah gambar dengan nama tes0.jpg, pastikan terdapat wajah manusia di dalamnya. Kemudian eksekusi file facerecognition.py. Hasilnya akan muncul gambar dengan pola kotak hijau yang mengelilingi setiap objek yang dideteksi sebagai wajah manusia. File gambar outputnya tersimpan secara otomatis dengan nama tes1.jpg. Contoh gambar output yang dihasilkan adalah sebagai berikut:

Anda masih dapat meningkatkan tingkat akurasi & kecepatan deteksi, dengan mengatur scale factor dan minimum neighbors pada cascade function di file facerecognition.py yang telah Anda buat. Kemudian kembangkan fitur ini untuk membuat aplikasi yang lebih kompleks di berbagai platform, mulai dari web, mobile hingga IoT. Source code selengkapnya silakan kunjungi github repo saya di sini.

Selamat mencoba! 😊

--

--