I am a machine learning architect, but I do not have time to work on this project. Please read the entire post before applying for the job, and please provide feedback on particular points to increase the chance of being hired.
Write a machine learning model, in Keras or Tensorflow, to the following based on one-second of selfie video recordings:
1) Eyebrow raises
2) Eyebrow furrows ( lowering )
3) Jaw clenching
5) Looking normal
6) Scrunching face to the left
7) Scrunching face to the right
8) Lowering jaw
Data set-up: You'll be given 900 to 1,000 5-second videos of people doing one of these tasks. Your first task is to remove the first and last second of each video, then to split the videos into one-second timeframes.
Recommended approach: OpenFace is a library for recognizing facial actions, but it does not use Keras or Tensorflow, so please do not use it. However, there is a lot of open-source code that has already been made to do this. I suggest first using OpenCV to recognize the box-framed area of the face that you want to examine (e.g. eyebrows, jaw, or eyes). There are plenty of tutorials out there for recognizing eyebrows and eyes-blinks from a video. Determine if the eyebrows raise or lower relative to the rest of the structure of the face. You might not even need machine learning for this. For eyeblinks, you should be able to find open-source code that already exists for recognizing them. I would like a model that correctly classifies at least four of these movements versus no movement at all (#5). I will tip an extra $10 for each recognition above 90% accuracy. I am pretty sure detecting jaw clenches is very difficult, so I will tip an extra $60 if you can also get jaw clenches working.
I will be keeping some of the dataset to run as a test dataset to ensure your model actually scales. Please write a testing script for me that will take in 5-second videos from my test set and evaluate the accuracy on your model. I would like the model to detect a movement at least 90% of the time (+10 tip per movement above this accuracy). For 80% accuracy, I will pay a $8 tip per movement. Less than 70% accuracy for more than half the movements, I will request a refund and not tip anything. I will also not tip anything if your model produces a false alarm (i.e. detects a movement when there is none) at a rate greater than 15%.