Video of original version:
Now it’s been improved with some new features.
How it works:
- Using face tracking functionality to detect 4 face points: both sides of your mouth and both sides of your nose.
Calculating the length of both sides of your mouth as mouthWidth. The mouthWidth may be wider if you’re smiling.
So the program tells you’re smiling when the mouthWidth larger than a value.
The particulate value is called Threshold.
Even if you have no changing on your mouth, the mouthWidth would changes when you’re moving forwards/backwards to the Kinect sensor.
(It would be larger if you’re closer to the Kinect.)
So we need to change the Threshold.
The Threshold is calculated based on the length of both sides of your nose called noseWidth.
The noseWidth won’t be greatly affected by the changing of your face but the distance between your face and Kinect sensor.
So it would be great to calculate how large the Threshold should be.
And we have nothing to deal with Skeleton Tracking like getting the position of your head joint in order to get the distance.
The Threshold is not set good enough so it may not work for everyone everytime.
At least it works for me. I’m not sure if you have a perfect smile like me though.
So I added a Modify feature. It’s a slider on the bottom-right of the application which can modify the Threshold. (to make it larger or smaller.)
This should/can be improved to be more automatic.
You may be confused of the How-it-works part above before trying the demo without seeing the screen-shot.
Can anyone take a screen-shot of you using the demo and send it to me. I would take a good one and put it here.
You know I just want people to focus on the idea, the code but not my attractive smile.