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.
- 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
.
├── Model
│ ├── X_test.pickle
│ └── scaler.pickle
│ └── shape_predictor_68_face_landmarks.dat
│ └── svm.pickle
├── Aptfile
├── Procfile
├── SVM.py
├── app.py
└── etc.
Pada project ini terdapat 3 file utama.
svm.pickle
Berisikan model yang telah di latih menggunakan CK+ Dataset. Yang digunakan untuk melakukan fungsi predictSVM.py
Adalah package implementasi dari Algoritme Support Vector Machineapp.py
Adalah file python untuk deploy sebagai dashboard
Untuk menggunakan Klasifikasi-Ekspresi-Wajah silahkan mengunjungi situs
Dashboard Klasifikasi-Ekspresi-Wajah
Pilih gambar yang berisikan wajah dengan menunjukkan ekspresi 1 dari 7 ekspresi. Berikut adalah contoh gambar yang bisa di pilih.
Akan ditampilkan gambar yang dipilih, Wajah Terdeteksi, Bagian AOI Terdeteksi dan Hasil Klasifikasi
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
Dari proses training didapatkan tingkat akurasi mencapai 98% pada data uji.
Tidak cukup dengan pengukuran akurasi.
Confusion Matrix Pengujian