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.

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)

The Most Contextual AI Development Assistant

Pieces.app image

Our centralized storage agent works on-device, unifying various developer tools to proactively capture and enrich useful materials, streamline collaboration, and solve complex problems through a contextual understanding of your unique workflow.

👥 Ideal for solo developers, teams, and cross-company projects

Learn more

👋 Kindness is contagious

Engage with a sea of insights in this enlightening article, highly esteemed within the encouraging DEV Community. Programmers of every skill level are invited to participate and enrich our shared knowledge.

A simple "thank you" can uplift someone's spirits. Express your appreciation in the comments section!

On DEV, sharing knowledge smooths our journey and strengthens our community bonds. Found this useful? A brief thank you to the author can mean a lot.

Okay