rezasputra / Klasifikasi-Ekspresi-Wajah

Project ini dibuat untuk memenuhi syarat meraih gelar Sarjana Komputer, Dengan melakukan Klasifikasi Ekspresi Wajah Manusia menggunakan algoritme Local Binary Pattern (LBP) untuk ekstraksi fitur dan Support Vector Machine untuk klasifikasi.

Home Page:http://klasifikasi-ekspresi-wajah.herokuapp.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Klasifikasi Ekspresi Wajah

image

Project ini dibuat untuk memenuhi syarat meraih gelar Sarjana Komputer, Dengan melakukan Klasifikasi Ekspresi Wajah Manusia menggunakan algoritme Local Binary Pattern (LBP) untuk ekstraksi fitur dan Support Vector Machine untuk klasifikasi.

Overview

  • Ekspresi : Project ini dapat melakukan klasifikasi sebanyak 7 ekspresi yaitu Happy, Anger, Contempt, Sadness, Fear, Surprise, Disgust
  • Data Latih : Project ini menggunakan CK+ dataset yang didapatkan melalui situs kaggle dan dapat diakses pada CK+ Dataset
  • AOI : Project ini melakukan klasifikasi berdasarkan AOI (Area of Interest) yakni Mata Kiri, Mata Kanan dan Mulut
  • LBP : Algoritme LBP yang digunakan pada project ini merupakan implementasi dari library skimage dengan metode uniform
  • SVM : Klasifikasi adalah fokus utama pada project ini, sehingga Support Vector Machine dibuat secara from scratch. Dengan pendekatan One-vs-rest dan RBF Kernel Trick
  • Dashboard : Untuk memudahkan dalam evaluasi dan melakukan klasifikasi, dibuat dashboard menggunakan Streamlit dan di deploy pada situs Heroku. Pengguna hanya memasukkan gambar yang berisikan wajah dengan menunjukkan 1 dari 7 ekspresi yang nantinya akan mengeluarkan hasil klasifikasi ekspresi. Dashboard dapat diakses melalui Dashboard Klasifikasi Ekspresi

Struktur File

.
├── Model
│   ├── X_test.pickle
│   └── scaler.pickle
│   └── shape_predictor_68_face_landmarks.dat
│   └── svm.pickle
├── Aptfile
├── Procfile
├── SVM.py
├── app.py
└── etc.

Deskripsi File

Pada project ini terdapat 3 file utama.

  • svm.pickle Berisikan model yang telah di latih menggunakan CK+ Dataset. Yang digunakan untuk melakukan fungsi predict
  • SVM.py Adalah package implementasi dari Algoritme Support Vector Machine
  • app.py Adalah file python untuk deploy sebagai dashboard

Cara Penggunaan

Untuk menggunakan Klasifikasi-Ekspresi-Wajah silahkan mengunjungi situs Dashboard Klasifikasi-Ekspresi-Wajah Jepretan Layar 2021-11-19 pukul 10 08 48

Pilih gambar yang berisikan wajah dengan menunjukkan ekspresi 1 dari 7 ekspresi. Berikut adalah contoh gambar yang bisa di pilih.
2175 2656 3147 758

Akan ditampilkan gambar yang dipilih, Wajah Terdeteksi, Bagian AOI Terdeteksi dan Hasil Klasifikasi image

Deskripsi Model

Model yang digunakan pada project ini adalah implementasi Support Vector Machine dengan pendekatan One-vs-rest dan RBF Kernel Trick yang tersimpan didalam file SVM.py. Berikut struktur dari file SVM.py

.
├── class Kernel
│   ├── def calculate
│   └── def _rbf_kernel
├── class SVM
│   ├── def transform
│   └── def hessian
│   └── def getAlfaMax
│   └── def getB
│   └── def fit
│   └── def signature
│   └── def hypothesis
│   └── def predict
├── class MulticlassSVM
│   ├── def _get_number_of_categories
│   └── def _create_one_vs_many_labels
│   └── def _fit_one_vs_many_classifiers
│   └── def fit
│   └── def predict
│   └── def accuracy

Evaluasi

Dari proses training didapatkan tingkat akurasi mencapai 98% pada data uji. Tidak cukup dengan pengukuran akurasi.
Confusion Matrix Pengujian
Gambar1

About

Project ini dibuat untuk memenuhi syarat meraih gelar Sarjana Komputer, Dengan melakukan Klasifikasi Ekspresi Wajah Manusia menggunakan algoritme Local Binary Pattern (LBP) untuk ekstraksi fitur dan Support Vector Machine untuk klasifikasi.

http://klasifikasi-ekspresi-wajah.herokuapp.com/


Languages

Language:Python 98.6%Language:Shell 1.4%