Adam Harvey and Viola Jones Face Detection
05 April 2012
Last week, I kicked off Makematics with an interview about FaceTracker. FaceTracker is an example of a complex technique that builds on top of a series of computer vision, image processing, and machine learning techniques in order to achieve its result. Kyle did a terrific job explaining FaceTracker by breaking it down into its basic components. He explained how FaceTracker uses the Viola-Jones face detection algorithm to find the general location of the face. He explained how FaceTracker detects individual parts of the face based on machine learning data. He explained how FaceTracker searches for these parts as they move around from frame-to-frame.
One of the chief goals of Makematics is to tease complex topics apart into their individual components in order to make them easier to learn. Mathematics and programming topics form a complex network of interdependent concepts. That’s part of what makes them so hard to learn: you start with wanting to know about face tracking and pretty soon you find yourself with a list of prerequisites that scrolls and scrolls.
Slowly but surely, article by article, Makematics is dedicated to filling in as much of this dependency graph as possible. The site will cover advanced composite topics like FaceTracker as well as the component techniques like Viola-Jones face detection.
In fact, last week I conducted an interview with artist and programmer Adam Harvey about Viola-Jones. Harvey is best known for his project CV Dazzle. CV Dazzle is camouflage from computer vision. Harvey creates hair, clothing, and makeup designs that cause the Viola-Jones face detection algorithm to fail to detect the faces of people who are wearing them. In order to build this project, Harvey had to learn an incredibly amount about how the algorithm works. He even built tools that slow it down and visualize its operation so he could see exactly how his makeup was defeating it. This work makes him the perfect person to explain how Viola-Jones works and I think his interview represents a great introduction to the topic.
Further, Harvey was generous enough to share not just his time, but his code as well. As of today, he’s released Haarcascade Visualizer, a Processing-based tool that he uses to produce visualizations of the face detection process. Haarcascade Visualizer is available on Github. It’s the first piece of a larger project of Harvey’s to implement much of OpenCV’s face detection functionality natively in Java to make it easier to understand and do experiments with. We talk more about that effort in the interview. Harvey expects code to become public for that in May.
In addition to this technical knowledge, Harvey also has a very interesting artistic and cultural take on computer vision. In the interview he compared CV Dazzle to Levi’s jeans, explaining that “the original Levis became successful because they’re a really durable jean for miners to wear, but today whose mining? If privacy is one of your needs, then we can certainly design something into clothing that would help with that.” In other words, preventing yourself from being automatically tagged in Facebook photos and other online services may become just as pragmatic as the need to protect your knees from harsh mining conditions was for our fore-bearers.
This kind of thinking represents exactly the kind of creative possibilities that can be unlocked by a deep investigation of these mathematical and computer science. I hope you enjoy the interview.