Reading a character from an image

I am working on an application that requires matching numbers from a scanned image file to a database and updating the database with the result of the comparison.

Say I have image- employee1.jpg. In this image there will be two two handwritten notes - the employee number and the amount payable to the employee. I have to read the employee number from the image and request a database for this number, update the employee with the amount to be paid, received from the image. Both the employee number and the amount to be paid are recorded inside two boxes at a specific place in the image.

Is there any way to automate this. Basically I want a solution in .net using C #. I know that this can be done using artificial neural networks.

Any ideas would be highly appreciated.

+7
c # image-processing image-manipulation
source share
5 answers

There is a LeadTools SDK for OCR / ICR. It is very convenient in recognizing handwritten characters. With this I am doing a sample study, and so far I think it will work. LeadTools provided components that can be used in your application, supports C, C ++, C #, VB.Net, etc.

You can visit the following link: http://www.leadtools.com/downloads/default.htm?category=

+1
source share

You can use the Microsoft Office Document Imaging Library (MODI), which is contained in Office 2003/2007.

References:

+3
source share

Pattern recognition is a prime example when neural networks are examined. I do not know if there is any library / structure for working with AI in C #. If you find it, first you need to train the network (supervised learning), and for this you need to prepare a large set of sample images; more examples → the result is more accurate. On the other hand, you can use OpenCV (C / C ++, Python and Java), which is a library specialized in computer vision and has a module for implementing AI methods.

Have a nice day! Oscar.

+1
source share

I think it is very difficult to automate. The only problem is that you need some very good OCR software. And even if you have it, that if he reads something incorrectly, the cause of someone’s frunite handwriting? If the identifier is wrong, the paid is booked to the wrong employee, and if the amount is not correct, he received the wrong salary!

Both are what you really won't. Just to show you how hard it is to find a good ocr, just look at how captcha works. A principle is nothing but an image of a hard-to-read text.

So, my opinion would be that you cannot automate this process. At the very least, you can write a program to help a person by entering values ​​manually (also take a look at Amazon Mechanical Turk ):

  • Show the image with handwritten characters on the right, or if they are always in the same place or specially marked (with a frame around them, etc.), try to find these places automatically and show them to the user.
  • On the left, offer two text fields in which the user can enter values.

To get a fast and smooth process, you have to take care of how the user can easily enter values ​​simply by using the keyboard:

  • When showing a new image, set focus to the id text box
  • If the user ID always has a certain length, switch to the next field if all numbers are entered
    • (If you enable this, the backspace in the empty next window should be facing the previous one)
  • Otherwise, allow the change in the next text box by clicking on the tab or return
  • Usually these text fields are located one above the other (not side by side), so you should support switching between them using the up arrow keys.
  • After recording is completed, the next image will automatically be displayed in the last text box.
    • Also in this case, a new new record (not already entered) makes it easy to return to the old record using the backspace key or the left arrow key)

Using this process, one person can enter many records into your database, and the costs are much cheaper than finding the wrong records in your database.

Just the last sentence:
Because it is a boring process for a person that can easily lead to errors, it is possible that two people enter these values ​​and only if both enter the same way and accept this value as approved. This should lead to the correct speed somewhere above 99%. If you need absolutely 100% to think about allowing 4-5 people to check one record, and only if they all enter the same values, take it as approved. To also get an idea of ​​how good your ocr software will be, just let it run your images as well and compare these results with human input values ​​to get an idea when you can really rely only on ocr.

+1
source share

OCR engines are not trained in handwriting, so you may have problems with MODI. You want to try to find the ICR engine. However, the best of them are only 80% accurate on good entries. You can get better because you know that your text is always a number.

This SO question / answer says that OCROpus has ICR

FOSS Intelligent Character Recognition (ICR)

+1
source share

All Articles