Does this use facial recognition? That is, do you have to actually face the camera, or does it simply use some basic object recognition to determine if something is moving up and down?
No, I did try that but it was too slow. I will write up an article once I have improved it if people are interested in.
In a nutshell, I take a stream of frames from the camera, then do a diff on the frames to see what has moved, I then see if the diff of pixels over time is what I'd expect a pushup to look like using basic logic. The movement of pixels over time should look similar to a sine wave. I threw in some simple logic to account for noise in the data.