Ask Your Question
1

Symbol detection/classification

asked Aug 24 '13

mviljamaa gravatar image

updated Aug 27 '13

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.

Preview: (hide)

Comments

Can you give some examples of images?

GilLevi gravatar imageGilLevi (Aug 24 '13)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 (Aug 24 '13)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 (Aug 27 '13)edit

3 answers

Sort by » oldest newest most voted
3

answered Aug 24 '13

updated Aug 26 '13

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

Preview: (hide)

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 (Aug 24 '13)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 (Aug 24 '13)edit
1

answered Jan 8 '14

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

Preview: (hide)
0

answered Aug 26 '13

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!

Preview: (hide)

Question Tools

2 followers

Stats

Asked: Aug 24 '13

Seen: 4,472 times

Last updated: Jan 07 '14