Lompat ke konten Lompat ke sidebar Lompat ke footer

Apa Itu Face Recognition? Metode dan Implementasinya

Face recognition (pengenalan wajah) adalah sebuah teknologi di bidang AI yang digunakan untuk mengidentifikasi dan mengonfirmasi identitas seseorang menggunakan wajah. Face recognition ini dilakukan dengan membandingkan citra wajah masukan dari suatu database wajah dan menemukan wajah yang paling cocok dengan citra masukan tersebut.

Apa Itu Face Recognition? Pengertian, Metode, dan Implementasinya
Sumber gambar: pixabay.com
Daftar Isi

Sistem dari face recognition dapat digunakan untuk mengidentifikasi wajah seseorang baik dari gambar, video, atau secara real-time. Teknologi ini sudah banyak dipakai di berbagai negara di dunia.

Adapun bidang-bidang dalam pemrosesan wajah (face processing) antara lain:

  • Autentikasi wajah (face authentication) yaitu menguji keaslian atau kesamaan suatu wajah dengan data wajah yang telah dimasukkan sebelumnya.
  • Lokalisasi wajah (face localization) yaitu pendeteksian wajah namun dengan asumsi hanya ada satu wajah di dalam citra.
  • Penjejakan wajah (face tracking) yaitu memperkirakan lokasi suatu wajah di dalam video secara real-time.
  • Pengenalan ekspresi wajah (facial expression recognition) untuk mengenali kondisi emosi manusia.

Salah satu metode yang digunakan dalam pengenalan wajah yakni deteksi wajah Viola-Jones.

Face Recognition dengan Algoritma Viola-Jones

Prosedur deteksi wajah Viola-Jones yakni mengklasifikasikan gambar berdasarkan pada nilai fitur sederhana. Terdapat beberapa alasan yang mendasari mengapa perlu menggunakan fitur daripada piksel secara langsung. 

Alasan yang paling umum yakni fitur dapat digunakan untuk mengkodekan pengetahuan domain ad-hoc yang sulit dalam pembelajaran terhadap data latih yang terbatas jumlahnya. 

Alasan lainnya yaitu penggunaan fitur pada sistem berbasis operasi jauh lebih cepat daripada sistem berbasis piksel. Klasifikasi gambar dilakukan berdasarkan nilai dari sebuah fitur. 

Terdapat tiga jenis fitur berdasarkan jumlah persegi panjang yang terdapat di dalamnya, seperti yang dapat dilihat pada gambar di bawah ini:

Fitur pada sistem face recognition viola jones
Sumber gambar: medium.com

Fitur ini berguna dalam mengurangkan nilai piksel pada area putih dengan piksel pada area hitam. Untuk mempermudah proses penghitungan nilai fitur, algoritma Viola-Jones menggunakan sebuah media berupa Integral Image. 

Integral Image adalah sebuah citra yang nilai tiap pikselnya merupakan penjumlahan dari nilai piksel kiri atas hingga kanan bawah. 

Contoh integral image dapat dilihat pada gambar dibawah:

Integral Image pada algoritma Viola-Jones
Sumber gambar: medium.com
contoh integral image pada algoritma viola jones
Sumber gambar: medium.com

Haar-like features merupakan fungsi persegi yang memberikan indikasi secara spesifik pada sebuah gambar. Prinsip Haar-like features adalah mengenali objek berdasarkan nilai sederhana dari fitur, tetapi bukan merupakan nilai piksel dari objek gambar tersebut. Metode ini memiliki kelebihan yaitu komputasinya sangat cepat, karena hanya bergantung pada jumlah piksel dalam persegi bukan setiap nilai piksel dari sebuah gambar.

Awalnya pengolahan gambar dilakukan hanya dengan melihat dari nilai RGB tiap piksel. Namun, metode ini ternyata tidaklah efektif. Viola-Jones kemudian mengembangkannya, sehingga terbentuk Haar-like features.

Haar-like features memproses gambar dalam kotak-kotak, dimana dalam satu kotak terdapat beberapa piksel. Per kotak itu pun kemudian diproses dan didapatkan perbedaan nilai (threshold) yang menandakan daerah gelap dan terang. Nilai-nilai inilah yang nantinya dijadikan dasar dalam image processing.

Perhitungan Haar-like Features dengan Integral Image:

Dengan menggunakan integral image, kita dapat mencapai evaluasi waktu yang konstan dari Haar-like features.

  1. Fitur tepi (edge features) atau 2 fitur persegi panjang hanya membutuhkan 6 pencarian memori.
  2. Fitur garis (line features) atau 3 fitur persegi panjang hanya membutuhkan 8 pencarian memori.
  3. Fitur diagonal (diagonal features) atau 4 fitur persegi panjang hanya membutuhkan 8 pencarian memori.

2 Rectangle = A-2B+C-D+2E-F

3 Rectangle = A-B-2C+2D+2E-2F-G+H

4 Rectangle = A-2B+C-2D+4E-2F+H-2I+J

Sumber gambar: medium.com

Hambatan dalam Pengenalan Wajah (Face Recognition)

Dalam pengenalan wajah terdapat masalah yang disebabkan oleh adanya beberapa faktor sebagai berikut:

1. Posisi wajah

Posisi wajah di dalam citra dapat bervariasi karena posisinya bisa tegak, miring, menoleh, atau dilihat dari samping. Komponen-komponen pada wajah yang bisa ada atau tidak ada, misalnya kumis, jenggot, dan kacamata.

2. Ekspresi wajah

Penampilan wajah sangat dipengaruhi oleh ekspresi wajah seseorang, misalnya tersenyum, tertawa, sedih, berbicara, dan lain sebagainya.

3. Terhalang objek lain.

Citra wajah dapat terhalangi sebagian oleh objek atau wajah lain, misalnya pada citra berisi sekelompok orang.

4. Kondisi pengambilan citra

Citra yang diperoleh sangat dipengaruhi oleh faktor-faktor seperti intensitas cahaya ruangan, arah sumber cahaya, dan karakteristik sensor dan lensa kamera.

Implementasi Face Recognition menggunakan OpenCV

Implementasi Face Recognition menggunakan OpenCV
Sumber gambar: towardsdatascience.com

Berikut merupakan tahap yang dilakukan untuk dapat mendeteksi wajah serta menandai wajah:

1. Install modul Numpy dan OpenCV

Pertama-tama, buka Anaconda Navigator untuk menginstall numpy dan OpenCV. 

Klik Environments -> base(root) -> ganti pilihan installer menjadi All -> masukkan pencarian cv -> centang libopencv dan py-opencv -> klik apply. OpenCV yang digunakan versi 3.4.2.

2. Siapkan folder untuk membuat aplikasi yang memudahkan dalam mengelola file.

3. Copy file yang diperlukan untuk mendeteksi wajah

4. Dalam mengenali wajah kita memerlukan file haarcascade_frontalface_alt.xml dari folder OpenCV yang telah didownload. Copy filenya dan taruh pada folder yang telah dibuat sebelumnya.

5. Membuat kode program

6. Setelah semuanya siap, selanjutnya membuat kode program dan simpan dengan nama deteksiWajah.py.

7. Penerapan akan menggunakan bahasa pemrograman Python dengan library OpenCV untuk melakukan bounding box pada setiap wajah yang terdeteksi dan menandai wajah tersebut dengan tag atau nama dari wajah yang dikenali ataupun tidak dikenali. Berikut implementasinya:

  • Pada tahap pertama yang akan dilakukan adalah melakukan input data citra, yaitu menginputkan citra gambar dari hasil tangkapan kamera yang sebelumnya telah dimasukkan nilai “id”.

    Dalam tahapan ini, dilakukan deteksi wajah yang ketika kamera diaktifkan akan mendeteksi daerah yang dianggap sebagai wajah serta melakukan cropping pada daerah tersebut. Gambar yang sebelumnya direkam berwarna RGB dikonversi menjadi grayscale dengan tujuan agar lebih mudah untuk menentukan daerah wajah. Kemudian, hasil tangkapan gambar disimpan dalam sebuah folder “dataSet”. 

    Di bawah ini merupakan kode program

    Ketika dijalankan akan menampilkan seperti dibawah ini.

    Kemudian, masukkan nilai id pada masing-masing wajah.

    contoh data rekognisi wajah

  • Kode program selanjutnya, yaitu untuk melakukan training pada tiap gambar dari dataSet.



    Muat training gambar dari folder dataSet. Kemudian semua gambar wajah dengan masing-masing Id akan dipanggil dan di training.

  • Melakukan deteksi wajah

    Berikut kode programnya

Mulai pada main loop dan melakukan langkah-langkah dasar berikut:
  1. Mulai mengambil frame dari objek kamera konversi ke skala abu-abu (grayscale).
  2. Mendeteksi dan mengekstrak wajah dari gambar.
  3. Menggunakan pengenal untuk mengenali id pengguna
  4. Masukkan id atau nama dan menampilkan bounding box berbentuk rectangle pada wajah yang terdeteksi.
Trivusi
Trivusi Ikatlah ilmu dengan menulis. Menebar manfaat dengan berbagi :)

Posting Komentar untuk "Apa Itu Face Recognition? Metode dan Implementasinya"