Home page
Power Simulator
Bar Chart
Resume
Artificial Neural Network Handwriting Recognizer
Written in JavaTM
(Please wait for the applet to load in a separate window)
(If you have quit the applet and wish to view it again, reload this page)
Instructions for using the Handwriting Recognizer applet:
The applet will load in a separate window. When the main window appears,
-
Draw a single digit with the mouse (it can be anywhere in the window, and any size).
-
Click on a digit (in the panel at the bottom of the screen) with which
you wish to associate what you've drawn. (Note: the recognizer works with
Chinese characters for numbers, and Roman numerals, as well as Arabic ones;
or you can assign letters to the digit buttons, though you are presently
limited to 10.)
-
When finished drawing characters and clicking on the buttons you want to associate them with,
train the neural network by pressing the "Train" button: a dialog
box with a graph displaying the output error of the network will appear. The
output error is the difference between the expected output and the actual output.
As the output errors are propagated back through the network, the weights on the
neurons are modified so that the actual output comes closer to the expected output.
The learning constant is initially set to 0.5; this can be modified in the Configure dialog.
The training is set to stop at an output error of 0.1.
-
When the network has
finished training (when the Error Graph stops moving), test it by
drawing one of the characters you trained the network with, then pressing the "Test"
button. A dialog box will appear with the digit the network recognizes your
input as. (To see a graphical representation of the values of the output neurons,
select "Display Outputs" from the "Edit" menu).
-
The default number of training cases per digit is two; and the default size of the
pixel array into which each digit is downsampled is 30 (5 * 6). These values can
be changed using the "Configure Network" option under the "Network" menu.
-
To see the pixel arrays that the characters you draw are downsampled into, choose the
"Display Captured Images" menu item under the "Edit" menu. Each time you draw a character
and choose a digit from the button bar at the bottom of the main screen, your
character will be displayed in the Display Captured Images window, downsampled to a
5 * 6 2-dimensional array. (Use the "Configure Network" menu item to change the size
of the array.)
Browser compatibility note: This Java applet is written using the JDK1.1 specification.
Your browser must support JDK1.1 or the applet won't load. Also, the browser must
support JAR archive files. If you're using
Netscape you might find it useful to open the Java Console to view some additional
output.
This applet is very resource intensive! It runs very slowly over an open Internet connection
(at least on my 33.6K modem). It will run much better if you close your Internet connection
and run the applet locally.
Note on size of the dialogs in MSIE4 and Navigator 4: sometimes you may need to resize dialogs to get them
to display properly.
Note on quitting the applet: Netscape Navigator does not seem to want to let the applet exit
cleanly; if you quit, it gives an error if you try to restart by reloading the page.
I am working on a fix; a workaround for now is to go to another page then return.
This applet uses the Neural class library from Mark Watson's
Intelligent JavaTM Applications for the Internet and Intranets
(Morgan Kaufmann Publishers, San Francisco, 1997), and a slightly modified version of the
SelGrphics class from Hartmut S. Loos.
Home page
Power Simulator
Bar Chart
Resume
Copyright © 1998 by Bob Mitchell