Handwritten Number Recognition Using Image Processing and Neural Network Technique
Introduction
A
handwritten number recognition system was developed by using image
processing and neural network technique. The detail is described as
below.
Image Processing Technique
Before the computer can recognize
handwritten number, a set of handwritten number images needed to be
provided to computer to teach her about what does the image mean. The
chain codes approach is used to extract out the image feature
information based on their shape .
The below are the steps used to obtain the chain codes of an image.
- Grayscaling
- Thresholding - Histogram information are used to obtain the best threshold value automatically
- Scalling - If code word resampling technique are used. This technique can reduce the noises contain in the chain codes
- Thinning - Also known as skeleton. Remove redundant line information
- Chain coding - Convert shape information into a set of numerical number.
Neural network
Technique
Neural Network is like the
human brain model. The image information which has been converted into
a set of numerical number, will be feeded into the neural network.
Neural Network will be trained. The Neural Network will be continuous
improved based on its learning experience.
Image Searching
After a well trained Neural Network has
been constructed, any test image will be processed using the above
mentioned image processing technique. A set of numerical number will be
obtained and feeded into the Neural Network. The output of the Neural
Network is the result of the recognition.
How to search for an image
- Download the numberrecognition-1.0.zip from the Download section.
- Extract the numberrecognition-1.0.zip to any location of your
computer local disk (For example, C:\Program Files\ in Windows) by
using archive tool (In Windows, you may use WinZip. In Linux, you may
use the tar command. In Macintosh, Stuffit expander will expand the
archive automatically)
- You will see a new folder named numberrecognition-1.0 is created.
(For example, C:\Program Files\numberrecognition-1.0 in Windows)
- In Windows, double click the numberrecognition.jar in bin folder.
(For example, C:\Program
Files\numberrecognition-1.0\bin\numberrecognition.jar in Windows) In
Linux, you may use the command java -jar numberrecognition.jar
- You will see the following screen.
- Click on Project->Open..., a file chooser dialog box will be
pop up. Go to the location where you extract the archive file and
choose pure_images_loading_with_tokens.xml. (For example, C:\Program
Files\numberrecognition-1.0\pure_images_loading_with_tokens.xml) A
collection of training images will be loaded into the application's
Image Tree.
- Click on Neural Network tab, click on Set default button,
followed by Train button. Please note that our intention is to make the
error graph very near to 0.0. If you can't get the result, try to
re-train the neural network by increasing the number of input neurons
(60 for example) or the number of hidden neurons (50 for example).
- Click on Image Recognition tab, write a number within the Drawing
Area, click Recognize button. Please note that your handwritten number
should be similar to the training image found in the Image Tree.
Highlighted features in handwritten number recognition demo
- Save project configuration in XML format.
- Save trained Neural Network
- Drag n Drop support in the image tree
- Multithreading in image processing, neural network training and image recognition
- Able to recognition any objects other than number which used shape as their main identity
- Use code word re-sampling to reduce the noises in the code word
- Support Auto Threshold so that the whole training and recognition
process is fully automated. User needed not to try-n-error to get the
best threshold value
I would like to have handwritten number recognition feature in my own application, do you have any library.