Beyond this Example | Heaton Research

Beyond this Example

Get the entire book!
Introduction to Neural Networks with Java

The program presented here is only capable of recognizing individual letters at a time. Also, the sample data provided only includes support for the uppercase letters of the Latin alphabet. There is nothing in this program that would prevent you from using both upper and lower case characters, as well as digits. If you trained the program for two sets of 26 letters and ten digits, the program would use 62 training sets.

You would quickly run into a few problems. The program would have a very hard time determining the difference between the lower case letter "o", the capital letter "O" and the digit zero (0). The problem of discerning between these letters would not be handled by the Kohonen network. For this, you would have to examine the context of the letters around them.

If the program were to be expanded to process entire pages of writing at a time many layers of complexity would be added. Even if the page were only text, it would be necessary for the program to determine where each line begins and ends. Additionally, spaces between letters would need to be located so that the individual characters can be fed to the Kohonen neural network for processing.

If the image being scanned is not pure text, then the job becomes even more complex. It would be necessary for the program to scan around the borders of text and graphics. Some lines may be in different fonts, and thus be of different sizes. All of these issues would need to be considered to extend this program to a commercial grade OCR application.

Another of this example program is that only one drawing can be defined per character. The underlying Kohonen network classes would easily support this feature. This is something which could be added to the user interface with a few more classes. To do this you would have to allow the program to accept more training data than the number of output neurons.

As you can see there are many considerations that would have to be made to expand this application into a commercial grade application. You would not be able to use just a single neural network. It would likely be that you would be using several different types of neural networks for the tasks previously mentioned.

Copyright 2005-2008 by Heaton Research, Inc.