Facebook is awesome. They have some of the most brilliant minds working there. Pretty soon, they'll be able to tell whose face it is! I can't wait until they partner with restaurants and banks and other places with security cameras, so I don't have to update my location or status. They can just tell all my friends where I am and what food I ate for lunch.
Facebook is awesome. They dare to state the obvious (privacy is dead) and don't want to miss the chance of being the first to implement technology that may seem controversial now but will seem obvious tomorrow.
Privacy isn't an issue of either having it or not. For most of us there is a line (that moves depending on who is on the receiving end of the information) that we don't want crossed. It's far from dead.
While there's nothing significantly ground-breaking about it in today's time, but Riya sort of pioneered mainstream facial recognition back in 2005 (deadpooled in August 2009) - http://www.crunchbase.com/product/riya
To clarify/be pedantic, what facebook just added was face detection -- detecting where the faces are in an image. Face recognition usually refers to figuring out who a given face is of.
Riya was one of the first sites doing detection on images, and attempting to do some recognition. One of the reasons they're deadpooled now is that recognition is a really really hard problem (that's the area I do research in). Plus, they found that it was more lucrative building product search -- hence, http://like.com
Hey,
can I ask you a question about face recognition? So I have a similar problem, except I want to automatically determine some characteristic of a human from their face. However, I'm not sure how to go about determining a relevant set of features to use. How are the features useful for face recognition determined in state-of-the-art recognition algorithms?
Haha thanks for giving me the perfect setup to mention my own research.
I've been working on automatically detecting visually describable attributes in face images. These include everything from coarse attributes such as gender, age, and ethnicity; to more detailed ones such as nose size, eye shape, facial hair; and including some imaging conditions, such as blurriness, lighting, and facial expression. (I think this is what you meant by 'characteristic', right?)
We demonstrated how to train such classifiers and use them for building a face image search engine in this project:
Those project pages have descriptions of how everything works, and also links to the actual publications themselves. We've also released two databases that might be useful for training your own classifiers:
Now to actually answer your question: we found that the key to training different attribute classifiers is to use different features for each one. The "secret sauce" of our work is a feature selection algorithm that looks at a large pool of possible features (divided into regions of the face to extract features from, what type of features to extract, how to normalize the feature vector, and how to aggregate the normalized values) and picks the most appropriate ones for a given attribute.
Most existing face recognition algorithms typically choose a few low-level features (often things related to image gradients, since this gets rid of lighting variations) and use these to compare face images. However, works such as ours are trying to change this by looking at higher-level attributes in addition to just the low-level features. The big reason for this is that low-level features require very precise alignment between pairs of faces to work well -- a precision not reachable on real world images. Luckily, the level of alignment possible with today's methods is good enough to accurately train our high-level attribute classifiers, and so they end up being more useful for recognition in real world datasets.
Finally, one of the best benchmarks for performance on real-world face recognition is "Labeled Faces in the Wild" (LFW):
Face detection isn't that hard (even 200$ cameras do it on the fly), and face recognition isn't that hard either, once you realize you're only trying to recognize faces against this particular users' friends & family, ie. a pretty small set of a few dozen faces.
It doesn't seem like it would be too hard for Facebook to implement facial recognition. It's clearly not a trivial issue, however they certainly have the data, servers and intelligence to do it right. After all, they have a list of everyone you come in contact with (as well as friends of friends), along with anywhere between a dozen and a thousand tagged pictures of each.
EDIT: In reply to the poster below me- of course, autotagging wouldn't work. I was thinking more of a "suggestions" implementation.
it seems like to much of a risk, in terms of the controversies that might get raised every time the recognition software screws up.. imagine the system tagging somebody's ex girlfriend on their current partner's face, or interpreting a picture of Saddam as some random friend of the poster