It's their API, and they can do what they want with it - but I'm not entirely sure shutting it down is entirely in line with "we love you guys [API users], and the plan is to continue to support our developer community", which is what they posted on their blog when the acquisition was announced.
A lot of people took this to mean the API was going to keep running.
When a company is acquired (I speak from experience) the first thing its people are told is, nothing is going to change for you, we bought you for what you do, and we want you to go on doing it, with the support of our sales organization, or words to that effect.
This isn't strictly a lie, because the person who says this genuinely believes it. But the problem comes from, he doesn't stick around to follow through. Maybe he gets promoted. Maybe he's the "acquisitions guy" and he's gone onto the next juicy startup to tell them the same thing.
The guy you actually end up working for doesn't care about your startup. To him, you're just employees of the firm who got hired a slightly different way than the Graduate Trainee Fast Track Programme he came in on, and it's not that he resents you as outsiders or anything, he just doesn't see why you shouldn't be treated and act the same as everyone else. And since you work for him now, you vote either way with your feet.
Facebook's trying to maintain a closed ecosystem. API being available wasn't likely to happen.
Just shows you how genuine and steadfast to their authenticity they are..
I literally just finished a hardware project based on the face.com API. I want to be furious but I guess you cant blame them for creating such a great product. I knew it must be too good be true, and free forever. It sucks though because this was just a side project for me and I'm not sure it's worth the time to develop my own OpenCV system.
I'll be checking out the alternatives and resources you guys are posting though, HN is great!
That's a big bummer! I was going to run a project on their API in about six weeks. :(. Also surprising given their announcement at acquisition they would support existing developers.
Anybody knows of a replacement? How hard is it to set up opencv? And how well will it work? I assume for the 60 million they must have some pretty good tech at face.com.
OpenCV is not too difficult to setup, but is not as accurate w.r.t. face recognition -- it is not OpenCV's fault (in fact, it is an amazing project, thanks to folks who contribute to it!) -- the accuracy has lot to do with the size and breadth of the training data.
How hard would it be for the public to curate massive amounts of training data for an open features/descriptors project? Instead of an API, just download the nightlies and drop them into your project. I have a feeling such a tool would help audio/video applications significantly.
I really like the idea of "open source"-like project for training data. Such a concept would be applicable to almost any machine learning based project. Although there are academic datasets for most domains, they have their own limitations.
Often the secret sauce is not the algorithms themselves, but the availability of (massive/broad) training data.
Ironically, we actually have a great source of training data available that people can contribute with minimal effort - the Facebook graph API!
All we need is someone to auth the app allowing the "view photos" and "view friends photos" permissions and then crawl all of them for photos with faces in them. The return gives us a pixel location for the center of the face and then you compare that against what the detector returns. Keep iterating on that for the millions of photos Facebook grants you and you should get Face.com-level accuracy fairly quickly!
Now that we've started discussing this, I think I would like to start such a website/service. It wouldn't require too much extra time, and I would contribute everything to the public domain or make it available under a free license.
Does anyone have any recommendations about which algorithms I should use? Would I be sampling Haar-like features? (I've only worked with feature training a few times.)
It would be cool to train for other objects and features as well. Cars, body parts, animals...
Ideally raw images and audio with a few categories. This is because 1) categorization/labeling like you are suggesting does not scale and 2) feature building and detection is the most important part really, building in features like you are suggesting kind of defeats the point when you are testing your algorithm IMO.
You could stratify and charge for categories, pre built features etc.
The dataset for useful training of video, images and audio is going to easily range into tens of gigabytes or more.
This service would probably be best modeled on the mechanical-turk approach.
Worth noting is that Youtube is kind of a source already.
CALTECH 256, and several others. Many papers presented in CVPR 2012 (http://www.cvpr2012.org/) were indeed on very large datasets.
Do note that some of these datasets are fairly large (may or may not be as broad though).
The algorithms you use will depend on the complexity you can handle. OpenCV, IPP, and CCV (which was on hacker news few days back) could provide good options for algorithms with a training dataset you choose/create.
Data size is indeed one of the key factors to consider when building vision systems, and in this respect, the current champ is Image Net: http://image-net.org/
They have images labeled according to the WordNet ontology, and the dataset is still growing. They also have more detailed annotations on subsets of the data for various things (object, attributes, etc.)
The Viola-Jones algorithm and Haar-like features are really only suitable for faces. Solving object detection/recognition for general classes of objects is one of the largest open problems in computer vision and thousands of researchers around the world are looking at how to solve it.
If you're interested, results on the Pascal VOC [1] and Imagenet Large Scale Visual Recognition Challenge [2] are considered to be the state-of-the-art in computer vision (and therefore most promising). If you look at actual performance of the best contenders, you'll find that reported accuracies are often in the teens or twenties. These numbers are likely over-optimistic. So for most practical purposes, general object recognition doesn't work. At all.
However, there are some domain-specific approaches that work to some degree. Faces is one example. Another is pedestrian detection, which is getting somewhat mature at this point. A third is plant recognition, as in my previous project Leafsnap [3].
My personal feeling is that there isn't going to be "one algorithm to rule them all", but rather a collection of dozens of algorithms to deal with the most common classes of objects (faces, people, cars, buildings, animals, text, etc.), and then a set of other algorithms for recognizing all other classes, depending on each class' characteristics (shape, material, configurations, variability, etc.)
Finally, a word of caution. Many young PhD students in vision start having dreams of building such a website/service, and they have all had their hopes crushed. Different classes often need to be dealt with quite differently, and it's not even clear what kind of API would cover all the different cases. So if you're actually serious about this, I would recommend limiting your focus to a few specific domains, and also by considering some actual use-cases so that you have something concrete to aim for (i.e., "build an API so that application X is possible").
AFAIK, Face.com provides face recognition, not only detection. They've presented their approach at YaC'2011 here in Moscow, and it is quite sophisticated. Not VJ at all.
sigh. I had just ported over one of my sites to their API and was superhappy to have it back online (it was offline before when I relied on opencv but then the only host supporting that shut down).
And only a 30 day notice? For shame. Are there any worthy alternatives? Maybe even some I can pay so maybe they stick around longer?
Wee! Time to work in an open solution.
I just bought "face-alt.org" (launchrock ready soon)
My idea is start with a similar API for face detection using Viola-Jones OpenCV algorithm fork (available in GitHub) and reduce the false positive/negative rate.
NO business-model, only donate for AWS service cost.
I so needed this service. When I heard the news they were acquired by Facebook, I knew it would come to that. It's really a shame. Facebook is starting to worry me. If they start to buy and digest every innovative service out there, thus preventing others to innovate in the process, they start to look more and more like a black hole and it's scary.
I don't know. I think this will spur innovation that facebook couldn't possibly buy all of. People will be more likely to avoid building a core experience around a free service and instead either; innovate on their own and learn what is needed if it is really their dream or use an established open source platform if a sufficient solution exists. One downside to some open source projects is that they are meant to be flexible to a lot of use cases so you get a lot of subjective bloat with respect to your use case. But in the early stages, if the api is only a side show but main enabler to the key idea, it's still worth it to ignore the "bloat".
Our society/economy is currently not advanced enough to support free services nor are there many options to hide/divert costs sufficiently as not to matter. Eventually any free service must come to an end.
I signed up for your beta. What features do you plan on offering? Even if you give your code away for free, I bet you could charge some money for access to an easy to use REST API for whatever you come up with.
It's going to be a freemium model--unlike Face.com which didn't even have a paid option. I think there could be some advantages to having an openly developed algorithm in the background, mainly so you could embed the project where a REST API would be unwieldy (low bandwidth / low connectivity environments).
That sounds good, I think freemium is the way to go. When I first found face.com I thought to myself that I would have no problem paying for their service. I am definitely interested in your project. And I think developing in the open will be hugely helpful.
For my purposes though the REST API is what's more useful since my problem is not connectivity or bandwidth but processing power. Right now my software is running on a Raspberry Pi which can just barely run motion for capturing the pictures, I would need a real computer to run a full OpenCV install. That is why the face.com API suited my needs so well.
Are you planning on offering facial recognition along with the face detection or just focusing on face detection for now?
We developed a GPU-accelerated fast face detection using Viola-Jones.
If there is enough interest we can expose it as a web API.
Contact me if you interested.
Should be a good opportunity for some new guy to come out with a Face recognition API. I was doing some work and we compared their recognition results with some of the opensource toolkits and also with our own proprietary algo. Face.com's recognition rates were not that extra ordinary. So lets see if someone takes advantage of this opportunity.
that's so bad. I know many products empower their products with face API. Now they are shutting down their core feature. It made me understand that we shouldn't rely on commercial stuff and build technologies upon open source software once again. At least this way, things keep running instead shutting down because of business choices.
I disagree, at least for startups using infrastructure like this.
A startup testing some sort of hypothesis about a product or a market should get it out in front of people as soon as possible, and that should include using things like this. If they shut down, they shut down.
By that point, if you find some sort of product/market fit, you can always build your own face recognition, or switch to an alternate provider. If your product is a bust, then who cares if the API is gone?
Either way, there's no sense in a startup spending time building anything until it becomes the very highest-value thing they can do. There should be too many novel, risky hypotheses to test to worry about testing the one like "our team can build an adequate facial recognition service."
I had a demo of this api in a few weeks. luckily face.com is allowing developers to extend access beyond the initial date it has set forth. to apply go here: http://developers.face.com/extension-request/ you have to be logged in.
I'm a research scientist at Cognitec. We've been around for over ten years now (just celebrated our tenth anniversary in June).
If you're interested in face recognition, I suggest checking us out. We offer an SDK rather than an API usually with a two month free trial. More hassle, but less worry that an API will suddenly shut down with no warning.
For those who're looking at implementing a similar service, you should first start by looking at this project from researchers at UC-Irvine: http://www.ics.uci.edu/~xzhu/face/
This work was just presented at the Conference on Computer Vision and Pattern Recognition (CVPR), the leading conference in vision. This paper was an oral presentation (< 5% submissions are), and having worked in this space, this is the real deal -- their results are incredible, and I've already heard that they are indeed reproducible.
Normally, face algorithms operate independently, in a sort of pipeline: face detection ("where in the image are the faces") -> pose detection ("which direction are the faces looking?") -> fiducial detection ("where are the eyes, nose, mouth, etc. on each face?") -> alignment ("warp the faces to make them have a more similar pose") -> recognition ("what is the identity of each face?").
This method does the first three in an integrated way (face, pose, and fiducial detection), and with many fewer training examples than most commercial systems (including face.com and Google's Picasa) achieves really impressive performance. This is a huge deal, because normally more training data = better performance, and also because by doing all three steps together, the numbers reported are much less optimistic than they normally are in such papers (which always assume that things "upstream" happen perfectly).
The need for less data matters especially for open systems, as many are suggesting to build in the comments here, because sharing images of faces runs into copyright and privacy issues. As a company, you can collect a large dataset of images and if you never share it with anyone, then it's okay to use for training your algorithms. But if you're building an open consortium/system, then almost by definition that requires the training images to be shared, which is a big problem because now you're limited to a very small set of available data that is cleared for such use.
As far as code, there is Matlab code available on the linked page, but it's not clear what their license is. By default, I would assume it's "for research purposes only", but the paper goes into some amount of detail on the method which would allow people to reproduce it from scratch if they are worried. The approach itself is quite similar to the traditional "flexible part model" that is the basis for most top-performing object recognition methods (co-invented by one of the authors of this paper, btw), and the modifications to deal with faces are not very complicated.
Face recognition is still very much an unsolved problem, and while the face.com guys had some interesting approaches, it is not clear that they were necessarily the right way to go. And a large part of getting recognition right is getting all the previous steps right, so building on this work would be a good place to start.
Also, one way of building a recognition system ("whose face is this?") is using verification ("are these two faces of the same person?") as the key inner loop. If you take this approach, then you should pay close attention to the results on the Labeled Faces in the Wild (LFW) benchmark, which is the current de-facto standard that vision researchers evaluate on: http://vis-www.cs.umass.edu/lfw/results.html
Since this is my area of expertise, I'm happy to answer any other questions that people might have.
A lot of people took this to mean the API was going to keep running.