Ask Your Question
1

Symbol detection/classification

asked 2013-08-24 11:18:08 -0600

mviljamaa gravatar image

updated 2013-08-27 02:22:48 -0600

Hi,

I'm looking for pointers into what kind of techniques exist for performing detection/classification of symbols. Specifically I'm reading individual symbols out of grids.

I've previously tried counting black or white pixels in divisions of the individual symbol images (in B&W), making vectors out of those numbers and using the basic cosine difference to classify symbols. This method isn't as precise as needed though, because it's blind for differences in symbols that may have close to the same amount of pixels in close to the same areas/divisions, but look totally different.

An example symbol set: http://temp-share.com/show/HKd9f201A

Specifically I might be looking for explanatory technical explanations / resources for the existing feature detecting algorithms and what kind of features they consider in order to classify e.g. the example symbols.

edit retag flag offensive close merge delete

Comments

Can you give some examples of images?

GilLevi gravatar imageGilLevi ( 2013-08-24 12:36:30 -0600 )edit

@GilLevi I don't know if it matters what kind of symbols there would be, because, as stated, the symbols could be anything, but there's a limited set of them and they would need to be classified in some way. It's maybe a strange problem, but real. What I'm trying to understand is what kind of feature detectors are out there that are more special than counting pixels in the divisions and using the cosine difference, so I could understand what they do / are useful for and could use them for identifying/separating symbols. An example five symbol set can be found in: http://temp-share.com/show/HKd9f201A , particularly e.g. symbols 2 and 3 get mixed or there's not enough separation in the numeric values when just counting the pixels. Let me know if I'm not being specific enough.

mviljamaa gravatar imagemviljamaa ( 2013-08-24 14:37:13 -0600 )edit

Just a small remark. In the future, try using the tags without the hashtags supplied. It creates tons of doubles and makes effective searching through this forum quite hard. Thank you in advance!

StevenPuttemans gravatar imageStevenPuttemans ( 2013-08-27 02:23:35 -0600 )edit

3 answers

Sort by » oldest newest most voted
3

answered 2013-08-24 14:36:45 -0600

updated 2013-08-26 08:40:31 -0600

It's hard to tell without actually implementing the methods and running experiments.

Having said that, here's what I would do - since the images are black and white, thus showing not texture or color, but only shape, I would describe then using a shape/contour descriptor and use the shape/contour distance function with NN classifier to classify the new symbols by comparing them to a predetermined symbols dataset.

EDIT: As promised, here's a paper surveying shape description techniques: http://vis.uky.edu/~cheung/courses/ee639_fall04/readings/shapeReview.pdf

edit flag offensive delete link more

Comments

What's the shape/contour descriptor, you mean the contours returned by e.g. findContours? It's probably what I'm looking for, because the contours are obviously different. I just couldn't think how to do comparisons with them. Any links?

mviljamaa gravatar imagemviljamaa ( 2013-08-24 14:52:41 -0600 )edit
1

Yes, I mean that you'll need to take the contours returned by findCountours and describe then using a shape/contour descriptor, for example: shape context or medial exis. For doing comparisons, you'll use the descriptor's distance function.

Give me a day or two and I'll try to give some more examples of shape/contour descriptors.

GilLevi gravatar imageGilLevi ( 2013-08-24 17:14:09 -0600 )edit
1

answered 2014-01-07 19:37:23 -0600

jm gravatar image

Using a NN (backpropagation),

You could try the these demo's www.nithinrajs.in/ocr-using-artificial-neural-network-opencv-part-1/ http://www.nithinrajs.in/ocr-using-artificial-neural-network-opencv-part-2-preprocessing/ http://www.nithinrajs.in/ocr-artificial-neural-network-opencv-part-3final-preprocessing/

I successfully got them working.

Additional reference material: http://arxiv.org/ftp/arxiv/papers/1211/1211.4385.pdf

edit flag offensive delete link more
0

answered 2013-08-26 06:43:35 -0600

Jean-François Côté gravatar image

What you need are 2 things

  1. Find a good descriptor
  2. Find a good classifier

If you can code in C#, I would highly suggest using the Accord.NET Framework since it will have everything you need out of the box. You can easily get something that works juste using the samples that come with the framework. For example, one of the example is able to classify numbers and another one classify the images of different animals.

For the descriptor, there are also a lot of them but since you are in black in white, maybe just give the array of black and white pixel and put that in a KSVM should to the magic.

Hope it helps!

BTW, you can all do these thing in OpenCV but it will need more work!

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2013-08-24 11:18:08 -0600

Seen: 4,415 times

Last updated: Jan 07 '14