DEV Community

Cover image for Project Mata Kuliah Artificial Intelligence - Face Expression Recognition

Project Mata Kuliah Artificial Intelligence - 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.

Top comments (0)