views:

178

answers:

3

Hi

I hope this falls within the "programming question" category. Im all lightheaded from Googling (and reading every post in here on the subject) on the subject "Computer Vision", but Im getting more confused than enlightened.

I have 6 abstract shapes printed on a piece of paper and I would like to have the camera on the iPhone identify these shapes (from different angles, lightning etc.).

I have used OpenCV a while back(Java) and I looked at other libraries out there. The caveat is that it seems that either they rely on a jail broken iPhone or they are so experimental and hard to use that I would probably end up using days learning libraries only to figure out they didn't work.

I have thought of taking +1000 images of my shapes and training a Haar filter. But again if there is anything out there that is a bit easier to work with I would really appreciate the advise, suggestion of people with a bit of experience.

Thank you for any suggestion or pieces of advise you might have:)

+1  A: 

While not a library, Chris Greening explains how iPhone Sudoku Grab does its image recognition of puzzles in his post here. He does seem to recommend OpenCV, and not just for jailbroken devices.

Also Glen Low talks a bit about how Instaviz does its shape recognition in an interview for the Mobile Orchard podcast.

Brad Larson
Hi BradThanks:) interviews were actual developers talk about actual working software. That is a much better road to go down than the googling for obscure university proof of concept projects. Instaviz is really impressive, I just thought they did gesture tracking. I'll look into it straight away. Thanks again.
RickiG
+1  A: 

I do shape recognition in my iPhone app Instaviz and the routines are actually packaged into a library I call "Recog". Only problem is that it is meant for finger or mouse gesture recognition rather than image recognition. You pass the routines a set of points representing the gesture and it tells you whether it's a square, circle etc.

I haven't yet decided on a licensing model but probably use a minimal per-seat royalty.

Glen Low
Hi Glen, thanks for the input and kudos to your awesome app. Wish my desktop diagram software would be as clever at figuring out what I want.I still haven't found something that can help me get started. It will be a bit too much work to sit alone and write an extension for OpenCV that does shape recognition. Maybe some sort of AR library where I can strip out the 3D stuff and feed it my own "taught filters".Thanks again
RickiG
+1  A: 

Have a look at at OpenCV's SURF feature extraction (they also have a demo which uses it to detect objects). Surf features are salient image features which are invariant to rotation and scale. Many algorithms detect objects by extracting such features from an image, and then use simple "bag of words" classification (comparing the set of extracted image features to the features of your "shapes". Even without referring to their spacial alignment you can have good detection rates if you only have 6 shapes).

liza
Thanks Liza.I guess I need to close this question. There has been some good ideas and sources and I got some inspiration and a few days of reading material saved in my bookmarks.You suggested a concrete library and feature so you get the answer. Thanks again to Brad and Glen also.
RickiG