← Back to work

Handwritten Characters Recognition

A neural-network system that recognizes handwritten English characters — a FANN-trained multilayer perceptron with a real-time GTK interface for live drawing, in C++.

  • C++
  • FANN
  • GTK
  • Neural Networks
Handwritten Characters Recognition — real-time recognition interface

My role

Designed and trained a multilayer-perceptron classifier (4096-node input) with the FANN library — Quickprop gave the best result (~74% accuracy after 100 epochs) — and built command-line test tools plus a real-time GTK interface that recognizes letters as you draw them.

Outcome

~74% recognition accuracy after 100 training epochs.

The Handwritten Characters Recognition project identifies and translates handwritten English characters into digital form. With so many handwritten documents still in circulation, digitizing them remains valuable.

Challenge

Recognizing handwriting is hard because of the sheer diversity of writing styles. The aim was a system that identifies handwritten English characters across styles with high precision.

Solution

I chose a neural network — an adaptable model that refines its accuracy as it processes more data.

Process

  • Network topology — a multilayer perceptron designed to detect handwriting patterns, with a 4096-node input layer for pixel values, multiple hidden layers, and an output layer for the English alphabet.
  • Training — set up and trained with the FANN library; Quickprop proved most effective, delivering the lowest MSE and ~74% accuracy after 100 epochs.
Neural network training process

Technical details

The project was built with the FANN library in C++ for the neural-network work, and GTK for the real-time testing interface. A sigmoid activation function produced the output.

Key features

  • Single test utility — a command-line tool for individual letter tests with instant accuracy feedback.
  • Bulk test utility — for larger datasets, with a per-letter and overall performance breakdown.
  • Real-time test (RTT) utility — a graphical interface where users draw letters and the system recognizes them live, with insight based on neuron activations.
Command-line image test

Want something built like this? I'm available for contract work.