Does anyone know about a free/commercial library which can be used for image recognition / pattern matching?

Thing is, that I need to code a software which takes a digicam picture and recognizes which part (bumper parts... I work in the automotive industry) the picture shows.
The position of the cam and the part is fixed because the picture is made while the part is in a machine. The lighting on the part can be differ a bit.

I am currently trying to make something like this myself, but am curious if I could save some work :)

My current approach is to convert the image to black/white (monochrome) and look for about 40 fixed points (pixels) where the picture must be black/white. Would you know a better way of doing it?
Posted on 2003-03-05 02:35:02 by bazik
Interesting project... I've never thought about something like this before... I know my webcam supports motion recognitoin, it displays the areas of the picture that are different in a grid like pattern over the picture. Maybe that might help for some ideas or direction...

James:alright:
Posted on 2003-03-05 15:03:23 by JamesE
Well, I dont need a motion detection, I need something like a "object" detection.
I already hacked something out today and I might get a first working thing over the weekend :/
Posted on 2003-03-05 15:05:03 by bazik
I don't know any library that exists out there but here's a start http://www.ri.cmu.edu/projects/project_416.html there's an object recognition on that page as well as face recognition. The only place I've seen something like this, is on the airport.
Posted on 2003-03-06 01:14:07 by arkane
I know that I'm on a thin line with what I'm about to post, but anyways.... :rolleyes:

On Hiro's forum, that we're not supposed to mention, there was a thread awhile back about this. Someone was wondering, out of curiosity not evil intentions, if it's possible to programmatically compare the letter/number combinations that you have to verify before signing up for free webspace, email, etc. Those grainy little pics that look like the color blind tests on those types of sites. Anyways, you may want to look for that post and see if anyone came up with anything.
Posted on 2003-03-06 10:05:44 by Will
I dont want to recognize stupid letters/numbers from a picture.

BTW arkane, thanks for that link!
Posted on 2003-03-06 10:13:47 by bazik
sounds very hard :|

I think I have an old dr. dobbs on noise reduction on BW images lying around here, I'll see if I can find it for you.
Posted on 2003-03-06 10:17:26 by Hiroshimator

sounds very hard :|

I think I have an old dr. dobbs on noise reduction on BW images lying around here, I'll see if I can find it for you.


For what should I need noise reduction?

Anyway, I will code this thing myself... at least I get payed for doing it ;)
Posted on 2003-03-06 10:22:32 by bazik
to get a sharper image :p
Posted on 2003-03-06 10:27:47 by Hiroshimator

to get a sharper image :p


I dont need a sharper image.
Posted on 2003-03-06 11:11:23 by bazik
bazik, you plainly posted what you're trying to do. I realize that you don't care about letters and numbers. It just brought up the memory of that project on the other board. Both of you are trying to identify parts of images, and I didn't think it would hurt to check out their progress as they might have come up with something that you can use. Those guys can be pretty ingenious at times. To each his own I guess. -shrugs-
Posted on 2003-03-06 11:24:22 by Will
What other board are you talking about all the time ?
Posted on 2003-03-06 11:29:18 by bazik
There is some rudementary tutorials on Generations5, regarding object detection (Very hard, and undeveloped field ~ well for non-propriatary work). I have a need for the same but for entirely different purposes. Perhaps we could colaborate and make a summer project out of it ~ (short term, ie. 3 weeks, is way too busy for me).

Your lucky in the sense of the camera angle.I assume the 'bumpers' are more or less in the same basic outline from test photo to test photo. My needs are entirely random, with random # of shapes to outline too.
Posted on 2003-03-06 18:59:36 by NaN
Bazik,

Check out this example... you may find it close to what your looking for.

:alright:
NaN
Posted on 2003-03-09 23:58:05 by NaN
I have an app called QuickStitch by Enroute Imaging that came with my digital camera that allows me to stitch digital pics that have 30-50% overlap together to make a panaramic image. It uses pattern recognition to line up the overlapping areas and does an amazing (to me) job of it even when the images are not aligned very well. Perhaps you can find something useful by searching for "image stitching", "panaromic images" or some such terms...
Posted on 2003-03-10 08:17:05 by Berninhell
Hopfield Net? Though the resolution would want to be quite low or memory/cpu requirements would be too high.
Posted on 2003-03-10 08:50:35 by Eóin
Use edge detection. Subtract an image shifted diagonally down-right by one pixel from original image (both monochrome), and you have edges. Convert edges to lines, simplify positions (perhaps just shrink image to rather small dimensions), then check for coordinates of lines to preset ones.
Posted on 2003-03-10 11:01:01 by comrade
... with a fuzzy logic engine :alright:

They are best suited for inputs variances that would result from the above method.

:NaN:
Posted on 2003-03-10 23:11:12 by NaN
Sorry to bump this old thread back to the top, but I just found that Intel has an open-source image / outline recognition library. Thought it'd be of interest :)

http://www.intel.com/research/mrl/research/opencv/overview.htm
Posted on 2003-03-23 01:58:53 by Qweerdy

Sorry to bump this old thread back to the top, but I just found that Intel has an open-source image / outline recognition library. Thought it'd be of interest :)

http://www.intel.com/research/mrl/research/opencv/overview.htm


Nice. Thanks for that link!

Although I already wrote my own code... it was easier then I though first and works perfectly! :)
When the App is finished, I gonna talk to my boss if I am allowed to share the code (at least the image processing part) :)
Posted on 2003-03-23 02:43:38 by bazik