73 comments

[ 3.2 ms ] story [ 164 ms ] thread
That's great! I like that you guys are offering a small free usage tier!
Did a few tests and it works pretty well! No false positives at least.

Any plans to increase the number of objects you can search for at once? Very interested in using this but I'd want to be able to scan for ~20 objects.

Yes! Scanning for more than 4 objects at once (which is currently supported) is something that we definitely want to enable in the future. The only constraint is the number of GPU machines we can afford.
Can you give me bit more technical background. Tell me how this is better than for eg. out of the box openCV filters.
Very interesting application though, but I couldn't realize real life usage via web api. As my knowledge those kind of stuff is for realtime applications and with web based approach it might not serve the purpose.

BTW, it can find only two airplanes in this photo http://www.q8.com/SiteCollectionImages/Gatwick%20Airport.jpg

As a long time CV enthusiast, I applaude the tech and the way you guys make it "just work". However for any serious application I feel a few things are missing:

- your pricing won't work for video (even at only 5fps)

- I can't really use the data without a confidence level of detection. Because for some applications I'd rather discard a bouding box that is below a threshold I set.

Other than that, congrats for the great work :)

Hey steeve, thanks for the really kind feedback! We're aware of the video pricing issue, and it's something that we're thinking hard to come up with a solution to for makers and developers.

In the meantime, if you want to experiment with Dextro for video, shoot us an email at team@dextrorobotics.com and we will hook you up!

With regard to confidence level, that's something that we provide the enterprise-class service with; if this is a critical feature, we can potentially offer it to everyone as well.

seems pretty good, but my first test found a potted plant in the aeroplane demo picture -- a 100 story potted plant :P very cool idea, super hard problem so mad respect regardless!
I tried to search for a cow into a horse's image, but it failed
Tried detecting Airplanes on this image with 18 airplanes, but it only detected 4 of them.

https://lh3.ggpht.com/-GbPgbhUtmnE/UH0p3VmMWoI/AAAAAAAAApM/u...

The browser demo page says "Dextro supports up to 4 objects to be detected concurrently when used via the full API.", I think that's the problem.
Hey tunnuz and limejuice, sorry to hear we only picked up on 4 of the planes. We've biased our service towards precision rather than recall; thus, we try to be wrong about detected objects as little of the time as possible at the expense of perhaps missing a few object instances.

I want to clarify: the 4 object concurrent detection refers to 4 classes of objects. On the Experiment page, you can only choose one class to detect on (whether that is person, bottles, cars, etc). However, by using the API, you can simultaneously search for cars, planes, people, and motorcycles, for example.

Ok, so the two 4s have nothing to do with each other. Thanks for the clarification.
Failed completely for me across a half dozen tries. I wonder how cheaply you could get results via Mechanical Turk. I bet you could get much more accurate results for a very low price but with some added latency.
One to two cents a task. Anytime you have a language agnostic task (identifying/classifying objects, etc), the tasks can be done very cheaply. Just make sure you do triplicate validation.

Language dependent/creative tasks run much higher (smaller worker pool, more brain power needed).

I've never used mechanical turk before and don't understand what you mean by language agnostic. I'd want someone to tell me that it's a "car" and not a 汽車. And I'd want to give the instructions for the task in English.
If I had to guess what they meant: A car is a car, regardless if you call it 'car' or 'das auto.'
I agree, crowdsourcing is the way to go if you need to understand images. Image recognition is a very tough problem, especially if you're trying to detect anything nuanced.

We've developed RTFM at CrowdFlower to handle the similar task of moderating images and providing detailed reasons for why they are flagged. It's a common problem that the computers can't solve well enough yet.

Hey everybody, OP here. Thanks for the great feedback! We're really happy that so many people have checked this out.

One thing that I want to mention: our service was built favoring Precision over Recall; we reasoned that we'd rather have a low number of false positives and make sure that when we do report a detection, that it actually is one. Thus, our service may occasionally miss instances.

I'm going to implement a button on the Experiment page that lets you flag a detection as something that we need to work on; we will use your feedback to improve the accuracy.

You might want to let the user decide if it is more important to have a false positive or a false negative. For some applications a false alarm is a minor nuisance but a false negative is catastrophic, but for some applications it is flipped. In the past I have let the end user define the balance (i.e. "a false negative is 10X as bad as a false positive") and the decision results were scaled by their decision rule. It's not always easy to do as many machine learning algorithms are nonlinear but at least you can cast a wider net of potential customers.
This is a Dutch street, therefore it has many bikes in it: http://i.imgur.com/qQwAS.jpg .

Your application detects none of them... Is it because my ancient phone camera's pics are too grainy? Or do the bikes need to be en profile to be detected properly? Or maybe it's trained to detect bikes with people on them, instead of bikes parked in the street?

This reminds me of how my visual psychology professor was attempting to help those with poor vision 15 years ago, but didn't appear to get anywhere with at the time.

The idea was a simple (but clever) one - use virtual reality to segment the world into solid blocks of identified objects. The solid blocks are identifiable to those with poor vision in a way that the real world is not.

Essentially this meant processing an image, identifying items e.g. cars, fences, roads etc and then colouring them solid. So instead of a confusing scene of blur, you have a blurred but still identifiable scene of a solid strip of grey for the road, a solid blob of red for the car, another solid yellow stip for a fence etc. A poorly sighted person could still identify from this something that made sense in a way that they couldn't in the real world.

What was required was an input, real time visual processing and then display back to the user - all of which was fantasy 15 year ago.

However, attempt this today with a visual feed, real time processing like this, and then near instantaneous display of the results back to the person with e.g. google glass, and you might have a viable way to show the world categorised in a visual way that will help those with poor vision. Interesting times.

Wow, I just tried this image of faces:

http://3rdarm.biz/images/2010/02/faces.jpg

It got almost all of them but so many errors. It can't detect sheeps either.

I was really impressed at first, but as I tried out more and more images, it became apparent that the api isn't mature enough for one or two cents worth of money. There is a 90% of the algorithm detect the image correctly, but sometimes it doesn't detect the entire object. For example, I used another image of two jets, but it only found one of them even though the jets were identical, but one was smaller than the other.

Over a dozen experiments, the recognition rate for faces seems to be about 70%. Example of failure: only 2 faces detected here (in particular NOT the one in focus) http://iamdaveknockles.files.wordpress.com/2011/03/meeting_j...

This is worse than OpenCV (I thought you were using OpenCV but apparently aren't?)

Similar result with the image below. It got four of six faces, missing the most important of the faces.

http://www.bostonglobe.com/rw//Boston/2011-2020/WebGraphics/...

If you read the description on the site, you'd know that the face detection stops after finding 4 faces.
How would I know that? I don't read documentation until absolutely necessary. If it claims to find faces, well, then let's see it work! And then we'll count the faces found.

In any case, the documentation is wrong if it says that. E.g., the software found all seven SEGs in the photo below:

http://www.bagnewsnotes.com/files/2011/10/Romney-Bain-Capita...

Didn't work for me. That said, image recognition via an API will be huge once things mature a little more.

I've been searching lately for a post-face.com API and have been following a few for a while, but they seem to have similar issues with poor results.