Jump to content
  • Advertisement
Sign in to follow this  
wease

OCR character recoginition advice.

This topic is 4802 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi I'm writing a program which requires that I take hand written numbers and convert them to characters. I think this can be achieved pretty acurately since a: I'm only dealing with 10 characters that are not that similar b: Numbers can be drawn on a grid so sizes should be similiar My handwritten numbers are going to be loaded as am image file (so it is not possible to get the strokes as they are occuring). I've found a bit of code using neural networks and I would rather not reinvent the wheel for this. I don't know if neural networks is the best for my situation though. I am looking for a simple way to do this and would love to just use some free code if it was available. I really appreciate any help or advice on this. thanks so much in advance

Share this post


Link to post
Share on other sites
Advertisement
Neural networks have been used to do this and it works quite well.

Some numbers I heard: from ~2000 test images a NN (trained on a different set of ~7000 images) recognized ~94% correct, while a human recognized ~97%. Ofcourse other, more sophisticated algorithms should be able to outperform NNs (for example Support Vector Machines got ~96%).

I think your problem is common enough that you could even [GOOGLE] to find useful training data for your NN.

Share this post


Link to post
Share on other sites
Probably a Nearest Neighbor Classifier.
I think Neural Networks are easy to get up and running, but can take a lot of time to fine tune. I don't really know about other methods.

Share this post


Link to post
Share on other sites
It might be worth exporing also Kohonen self-organizing maps. I think they suits your proublem pretty well.

Share this post


Link to post
Share on other sites
Thanks everyone for the input. I've been researching this topic for a few days and have tried looking things up for your ideas. Here are my thoughts

transforms: doing different transforms would be a fun side project but I need an established method that I can get up and running relatively quite. I don't really have time right now to spend on research

Kohonen self-organizing maps: This seems similiar to some NN articles I have found. There is nothing specifically on OCR but it seems like some of the principles may be appicable

Nearest Neighbour: Couldn't find to much information on this

various NN: Seems to be the most common solution. Training might be annoying but I have found code that seems to automate it.


Final thoughts. Even with a little research, I am still very green on the subject so any other thoughts are welcome

Share this post


Link to post
Share on other sites
Nearest Neighbour:
Take n samples (e.g. pictures of letters) a_1..a_n and classify them correctly. Define a distance metric d(p,q) (e.g. the number of pixels in p that differ from the corresponding pixels in q). Now to classify a new sample x, find the i that minimizes d(x,a_i). Speed it up with whatever data structure you like best.

Share this post


Link to post
Share on other sites
ok, thank you everyone for responding. I have done more research, looked at a bunch of source code, and come to the conclusion that I do not want to reinvent the wheel or spend time doing OCR so I have the following proposal to anyone who feels competent enough to take on the challenge.

First, what I need is an OCR that can recognize hand written numbers. The numbers will be in separate boxes however they will vary due to different peoples' handwriting styles. I would like to be able to have some sort of class which contains a function that I can pass a bmp of the handwritten number to. The function should return an array which contains the percentage accuracy for each number. This seems like it would be a simple enough interface for me to work with and all the OCR stuff could happen behinds the scenes. Is this possible? Can I get accurate results? I figure since I am only dealing with 10 numbers and no letters, it might be pretty accurate.

I am willing to pay for this service. I do not have a lot of money right now but I can offer something if you believe this is possible. Furthermore, since I am planning on developing a product, I might be able to offer a percentage of the sales for a specified time period up to a maximum amount.

Let me now what you think and I will consider this more seriously.

jw970170@yahoo.com

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!