Hidden Markov Model Facial Expression Classification
This is a Python program that is designed to use Hidden Markov Models to classify facial expressions based on images and sequences of extracted facial feature coordinates.
After cloning the repo you will need to download Python 2.7 for your computer. 32 bit Python for Windows and 64 bit Python for Mac/Linux. If you would like to use a different version of Python 2.7, you will need to install the hmmlearn package for Python and replace the _hmmc.* file in the hmmlearn2 folder of our program.
You will also need to download the datasets into the top level of our program. You can find the Kaggle dataset here (it will need to be given a csv extension) and the Cohn-Kanade dataset here (which will require you to request the database from them).
After doing that, you can run the hmm_learn_parallel.py file to do emotion classification on the Kaggle dataset and Cohn_hmm.py to do emotion classification on the Cohn-Kanade dataset and see the results!
Just a heads up, the Kaggle dataset is pretty large and even though it's parallelized, it takes a long time to run when training on more than 1000 pictures since each one is over 2000 pixels large.
This project was made by Qinxi Wang and Matthew Davids.
Special thanks to Alicia Johnson for her help and support through Bayesian Statistics!