Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Webapp: image recognition to find nearest tennis courts from satellite photos (ahathereitis.blogspot.com)
84 points by Torn on Dec 4, 2009 | hide | past | favorite | 25 comments


Specialized image recognition especially detecting objects with fairly rigid structures or common color patterns seems like a nice intermediary step relative to the more complex issue of detecting arbitrary objects.

During a few drunken nights my friends and I have had many conversations about doing an image crawler that would detect nipples.

You know that bathing suit that's see through that your friend's hot girlfriend likes to wear and posted a photo of herself on MySpace (just to be a tease)? Yeah, we wanted to find those photos.

We were going to call the site tittr.com.

Turns out nipple detection has many practical applications especially in digital mammography and there's even been a few research papers written on the subject.


There's actually existing vision recognition software that can identify a blow job, and blur out the relevant part of the pictures. Such software is marketable, although I think it was an academic paper. I'm not going to look for a link at work, but I do remember it was robust with respect to rotation of the picture, which made for some amusing collages.


Impressive site. Looking at that was one of those "DOH! Why didn't I think of that!" moments, which is usually the indicator that you've got a good idea :)


In action over at: http://www.ahathereitis.com/


I had trouble reading this URL. At first I thought it was "a hat here it is"!


I had really trouble reading this URL after you mentioned it looked like "a hat here it is".


That's impressive.

It seems to be missing a few. All the examples I've seen missed are actually single courts (like in the backyard of a house). To see the examples, go to Palo Alto/5 miles and look just to the west of Sharon Heights golf club, near the Valley Rd, Walsh Rd, Sargent Ln, Moore Rd area. I can count 9 single courts that are not labeled.

EDIT: Looking closer, these 9 could be just outside the 5 mile radius of the search.


This is awesome. I'd like to see more about the overall structure of the program, i.e. how the search work was partitioned and completed.


Old school technique. He should have just used SIFT keypoints or something. Much faster and more accurate.

Still, cool demo.


The biggest thing that would probably help is not changing the features to SIFT, but to make the recognition part using a classifier rather than the set of rules he's using.

Thus, instead of having to join edges into lines, and then applying rules about parallelism, etc., one could take a set of training examples and train a classifier (e.g., support vector machine) on it.

But I agree, cool demo.


It seems a license from UBC would be required to use the SIFT algorithm in a commercial venture. This may have been enough to dissuade the algorithms use in this case.


OP mentions this being a "hobby project" so my comment re. why the SIFT algorithm was not chosen is likely incorrect.


The main reason is that I haven't read up to that section of "Learning OpenCV" book... I guess I have some additions to my reading list ;)


Too bad it isn't real time and able to find tennis courts anywhere that Google Maps has coverage. I guess, however, that all that image recognition is highly CPU intensive and thus he has to generate results for an area, cache them, and then deliver them.


This could be offloaded to the client though, maybe using an applet.


The biggest problem is that I don't think Google would allow me to do that - from what I understood from their Maps TOS, the imagery is strictly for displaying to the visitor.


I'm sure that if you sent them an email telling them what you were doing they would allow it. (Either that or they would say "Hey! Good Idea!" and a few months later they would come out with Google Sports Courts, able to find basketball courts, tennis courts, football and soccer fields, etc.)

It would be worth a try at the very least.


Now if only there was a way to do this in real time for street parking.


I'm wondering what sort of spatial / geo-enabled database and backend he's running with. GeoDjango with PostGIS and some cronned script to do crawl google maps and do the computer vision stuff for a given area would be what I'd use. He could even go the whole hog and EC2 it, spinning up instances as needed and prioritising the crawling of commonly-requested zip codes.


He is here ;)

Alas, Google doesn't allow that - their satellite imagery are for displaying purposes only... I guess it can be argued that storing the imagery, processing it, and discarding after processing is not a violation of TOS, but it is likely that retaining the coordinates of the found objects is a "derivative work", which is prohibited, yadayada.

So I just get public domain imagery from USGS. It is slow, but public domain.


Didn't pick any courts up in my city (and there are plenty). Here's one right near my house http://i49.tinypic.com/8yi4cm.jpg. Maybe the search hasn't processed my area?


Is your city in the Bay Area? He specifies it's only processing the SF Bay Area.


I'm quite intrigued by this but it didn't find the tennis courts near my house. I think it was foiled by tree's and shade blocking some of the lines.

Edit: oops. I didn't read the disclaimer about only processing the Bay Area for now.


I'm really impressed by this. Good job.


amazing




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: