* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Presentation - Vision and Image Science Lab
Net neutrality law wikipedia , lookup
Deep packet inspection wikipedia , lookup
Airborne Networking wikipedia , lookup
Network tap wikipedia , lookup
Nonblocking minimal spanning switch wikipedia , lookup
Internet protocol suite wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Technion - Israel Institute of Technology Department of Electrical Engineering The Vision Research and Image Science Laboratory Handwritten Character Recognition Using Artificial Neural Networks Shimie Atkins & Daniel Marco Supervisor: Johanan Erez November 1998 Project Goals Creating an optimal neural network capable of identifying characters. Creating training files, in which the characters are reduced, and presented to the net. Creating an application that enables the user to define forms that are filled and later on identified. Theoretical Background What is a neuron? A black box that has inputs. These inputs are summed according to their respective weights - and the sum is the total input. A certain mathematical function is then applied to the total input, which now becomes the neuron’s output. What is a Layer? A group of neurons that are parallel to each other, with no connections amongst themselves. Background (cont) What is a Network? A group of layers, where neurons’ outputs in one layer are the inputs of the neurons in the next layer. The input of the network is the first layer’s input. The output of the network is the last layer’s output. Note: Our network is fully connected, thus all the neurons in one layer are connected to each neuron in the next layer. Training Algorithm We used the back-propagation algorithm, which works as follows: Net receives input vector and desired output vector. Propagate input vector through net. Compare net’s output vector with desired vector, if they match within the allowable error --> Done. Update weights beginning with last layer and advancing backwards towards the first layer. Go back to second step. The Reduction Algorithm Divide height and width of the large picture by those of the small picture. Each block of pixels received in the large picture represents one pixel in the small picture. Count number of “On” pixels in block. Determine, according to a predefined threshold, whether the pixel in the small picture is “On” or “Off”. Note: If Dimensions of block are not integral padding is initiated. Reduction Algorithm (cont) Code Implementation •We Implemented the network in C++. •We Defined three classes: CNeuron, CLayer, Cnet . They have the following relationships: Layer Neuron Net Results of Form Identification The following form was created (using our interface) and scanned: Results (cont) First net identified the form as follows: Configuration of Network: 37 nets (8x10 inputs, 3 layers) Alphabetical - 40 neurons in 2nd layer Numerical - 25 neurons in 2nd layer Train File: dan1to6.trn (40 examples of each character). Identification Rate (for check file): 96% Results (cont) Second network identified the form as follows: Configuration of Network: 2 nets (8x10 inputs, 3 layers) Alphabetical - 30 neurons in 2nd layer Numerical - 30 neurons in 2nd layer Train File: dan1to9.trn (60 examples of each character) Identification Rate (for check file): 95.5% Conclusions The identification success rate is proportional to the number of examples of each character given. More than one hidden layer does not necessarily improve performance. Most errors are with letters of similar shape (such as IJ or O-D), numerical digits are usually successfully identified. The configuration and training parameters of the net have minimal influence (once inside certain optimal limits ).