0
votes

I am working on my final project. I chose to implement a NN for characters recognition.

My plan is to take 26 images containg 26 English letters as training data, but I have no idea how to convert these images as inputs to my neural network.

Let's say I have a backpropagation neural network with 2 layers - a hidden layer and an output layer. The output layer has 26 neurons that produces 26 letters. I self created 26 images (size is 100*100 pixels in 24bit bmp format) that each of them contains a English letter. I don't need to do image segmentation, Because I am new to the image processing, so can you guys give me some suggestions on how to convert images into input vectors in Matlab (or do I need to do edge, morphology or other image pre-processing stuffs?).

Thanks a lot.

3
This is not even close to enough data unless you just want to (over)fit to your training set. You need several orders of magnitude more data. A quick read of any papers in this (well studied) application area should convince you of that.Chris A.

3 Answers

2
votes

You NN will work only if the letters are the same (position of pixels is fixed). You need to convert images to gray-scale and pixelize them. In other words, use grid that split images on squares. Squares have to be small enough to get letter details but large enough so you don't use too much neurons. Each pixel (in gray scale) is a input for the NN. What is left is to determine the way to connect neurons e.g NN topology. Two layers NN should be enough. Most probably you should connect each input "pixel" to each neuron at first layer and each neuron at first layer to each neuron at second layer

0
votes

This doesn't directly answer the questions you asked, but might be useful:

1) You'll want more training data. Much more, if I understand you correctly (only one sample for each letter??)

2) This is a pretty common project, and if it's allowed, you might want to try to find already-processed data sets on the internet so you can focus on the NN component.

0
votes

Since you will be doing character recognition I suggest you use a SOM neural network which does not require any training data; You will have 26 input neurons one neuron for each letter. For the image processing bit Ross has a usefull suggestion for isolating each letter.