DEV Community

Cover image for Face Expression Recognition
Heaven Aulianisa Pambudi Putri
Heaven Aulianisa Pambudi Putri

Posted on • Edited on

Face Expression Recognition

Short Explanation

Projek "Face Expression Recognition" ini bertujuan untuk mengenali ekspresi wajah manusia menggunakan metode Convolutional Neural Network (CNN). Algoritma CNN diaplikasikan untuk menganalisis data visual seperti gambar wajah dalam format grayscale, yang kemudian diklasifikasikan ke dalam tujuh kategori ekspresi dasar: senang, sedih, marah, terkejut, ketakutan, jijik, dan netral. Model ini dilatih menggunakan dataset FER2013 dan berhasil mencapai akurasi sebesar 91,67% setelah pelatihan selama 500 epoch.

Project Goals

Projek "Face Expression Recognition" ini merupakan projek akhir mata kuliah Artificial Intelligence dimana pada projek ini terdapat capaian yang harus dicapai diantaranya:

  1. Mengembangkan sistem pengenalan ekspresi wajah berbasis kecerdasan buatan. Sistem ini diharapkan mampu mengidentifikasi emosi yang terpancar dari ekspresi wajah secara otomatis dan akurat.
  2. Bereksperimen dengan algoritma pembelajaran mesin untuk meningkatkan akurasi pengenalan ekspresi wajah. Dalam proyek ini, algoritma CNN diuji untuk memahami sejauh mana model ini mampu mengenali pola-pola kompleks dalam gambar wajah. Upaya ini juga mencakup pengoptimalan parameter model, penambahan data pelatihan, dan penggunaan metode augmentasi data.

Tech Stack Used

  1. Framework: Python menggunakan library seperti TensorFlow/Keras untuk implementasi CNN.
  2. Dataset: Dataset yang digunakan adalah FER2013 (Facial Expression Recognition 2013), yang berisi 35.887 gambar grayscale wajah dengan dimensi 48x48 piksel. Gambar-gambar ini dilengkapi label yang mencakup tujuh kategori ekspresi dasar.
  3. Tools: 
  • NumPy dan Pandas untuk manipulasi data.
  • Matplotlib untuk visualisasi.
  • Haar Cascade untuk deteksi wajah dari kamera.

Results

  1. Senang Deteksi Ekspresi Senang
  2. Sedih Deteksi Ekspresi Sedih
  3. Marah Deteksi Ekspresi Marah
  4. Netral Deteksi Ekspresi Netral
  5. Terkejut Deteksi Ekspresi Terkejut
  6. Takut Deteksi Ekspresi Takut
  7. Jijik Deteksi Ekspresi Takut

The Problems and How I Deal With It

  1. Masalah perbedaan pencahayaan yang berpengaruh pada tingkat akurasi. 
    Variasi pencahayaan dapat memengaruhi akurasi model. Untuk mengatasinya, dilakukan normalisasi data untuk memastikan pencahayaan pada gambar lebih seragam sehingga pola-pola pada gambar wajah dapat dikenali dengan lebih baik.

  2. Kompleksitas ekspresi yang mirip.
    Beberapa ekspresi, seperti "takut" dan "terkejut," memiliki karakteristik yang serupa sehingga sulit dibedakan oleh model. Solusi yang diterapkan adalah melakukan augmentasi data seperti rotasi, zoom, flipping, dan perubahan kontras untuk meningkatkan kemampuan generalisasi model terhadap data baru.

  3. Dataset yang cukup terbatas
    Dataset FER2013 meskipun cukup besar, tidak mencakup berbagai variasi wajah secara global. Untuk memperkaya dataset, saya menggunakan teknik data augmentation serta menambahkan data dari sumber lain yang relevan untuk menciptakan representasi yang lebih baik terhadap ekspresi wajah.

Lessons Learned

Proyek ini memberikan wawasan mendalam tentang bagaimana sistem berbasis kecerdasan buatan dapat digunakan untuk mengenali ekspresi wajah. Proses pengembangan menunjukkan pentingnya:

  1. Pra-pemrosesan data untuk menangani masalah pencahayaan dan meningkatkan kualitas data.
  2. Eksperimen parameter pelatihan untuk mendapatkan kombinasi yang optimal, seperti pengaturan jumlah epoch, learning rate, dan batch size.
  3. Peningkatan keragaman data pelatihan melalui augmentasi untuk meningkatkan performa model terhadap data dunia nyata.

Dengan mengatasi tantangan yang ada, proyek ini berhasil membangun model pengenalan ekspresi wajah yang dapat diterapkan pada berbagai aplikasi seperti interaksi manusia-komputer, analisis emosi, dan pemantauan psikologis.

API Trace View

How I Cut 22.3 Seconds Off an API Call with Sentry 👀

Struggling with slow API calls? Dan Mindru walks through how he used Sentry's new Trace View feature to shave off 22.3 seconds from an API call.

Get a practical walkthrough of how to identify bottlenecks, split tasks into multiple parallel tasks, identify slow AI model calls, and more.

Read more →

Top comments (0)

Image of Datadog

Create and maintain end-to-end frontend tests

Learn best practices on creating frontend tests, testing on-premise apps, integrating tests into your CI/CD pipeline, and using Datadog’s testing tunnel.

Download The Guide

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay