A student team at University of Massachusetts have built this wireless face tracking camera system. Using a small 2-axis motorized camera meant to be mounted on model airplanes, an arduino, and some custom software, they can track faces and keep them in frame in real-time. This is pretty cool, but maybe not quite as groundbreaking as they make it sound. We think it is pretty awesome though. You can download the software and schematics on their site.
11 thoughts on “Wireless Face Tracking Camera”
Hehe. A couple of years ago I made a userspace (python) driver for the Webcam Rocket Launcher (http://www.thinkgeek.com/geektoys/cubegoodies/a1c2/), making it capable of tracking and shooting faces. Made my coworkers think twice before using my office as a hallway… HOAHOAHOA (evil laughter)
Logitech has had a camera that’s been able to do this for years.
Logitech: Not very well for the high price and low quality build.
I also did this exact thing a couple of years ago, in my spare time at work. I later changed it so that I was controlling the mouse cursor instead of the camera servos, so I could look around in FPS games by pointing my face. Since the centre of the detected face rectangle moves as you look (even slightly) left, right, up and down, you can use the difference in position to drive the cursor.
You see a Comp Sci student do this every semester at most schools. OpenCV is an open source image processing package that includes facial tracking.
Just from watching the vid, I can tell their face-detection is better than the stock on in OpenCV (probably because they can do more stuff more quickly on the NVIDIA GPU). I was fooling around with a processing version of what Dan was talking about just a few days ago and OpenCV loses faces if they turn even a few degrees off of center. In this video, you can see it continue to track his head at much more extreme angles (although I don’t think he got to 90 degrees). So, at least their face-tracking is good. I was hoping they trimmed it down somehow to fit on a micro-controller.
I can’t find any face tracking in the code. There is certainly a lot of optical flow going on, but I can’t find anything that resembles a face classifier.
Maybe I just misunderstand the code, but it looks like it follows whatever is in the center of the frame unless the user clicks on something else.
I doubt they could get this working on a regular microcontroller due to all the convolutions they are performing. A DSP or FPGA would work though, I think.
Was it required for the guy to walk around like he had a broomstick shoved up his rear?
If anyone else wants to try this stuff and OpenCV isn’t up to the challenge, try Neurotech’s VeriLook facial recognition SDK. There’s a 30 day trial (good enough for me to satisfy my curiosity) and I don’t think it costs that much to buy.
They also have an OBJECT recognition sdk, which is very cool.
Ah, it’s more expensive than I thought… we used it at work so I didn’t have to buy my own.
Thank you for posting our project. Just to clarify, there is no face tracking happening in this algorithm. While many face tracking algorithms can do the same thing, they work by finding specific features. This tracking algorithm assumes nothing about the object it is tracking and still manages to outperform many face tracking algorithms. Therein lies the novelty.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)