I know object recognition is a very tough thing to do.
I don’t really want to do it live/instant.
I essentially want to take a lot of data… like images of tools and be able to recognize the tool.
I know there are some great things being done with books and some libraries are even using this already.
So I found this:
But I’m wondering if people here could point me in the right direction. What approaches are people doing right now? Are there any open source projects to help?
I know there are ways to do things with markers… but I suppose I’m looking more for a “general marker”
there are multiple ways to do it; just to name a few:
haar cascade: this is how the famous face finder trick is done; you can find a detailed how-to here: http://note.sonots.com/SciSoftware/haartraining.html . It’s quite general and solid, but the training process is long (days of data processing) and can be painful (you hit enter today, the training finishes next week and you discover it does not work properly and have change parameters a little bit and start again).
SURF, Fern, BazAR : it’s what people normally use for the so called markerless AR (you take a picture or a drawing, you train your system on it, you find the pic in your images/video stream). It can be heavy on the hardware, but trains very fast and theo also already integrated it with OF: http://forum.openframeworks.cc/t/boards—interactive-magazine-cover/3483/0
in the case you’re looking for a very specific object that won’t change orientation or size (pretty limiting , I know ) you can use OpenCV’s cvTemplateMatch() out of the box
finally if you’re looking for an object that is not too complex, the fastest and most robust way to find it may be to write your custom recognizer using a combo of thresholds, contour filters, histogram matches etc. I used this approach for finding license plates and it proved to be faster and more realiable then the general alternatives.