Handwritten Devanagari Character Recognition using CNN
A convolutional neural network that recognizes handwritten Devanagari characters from scanned images.
Handwritten Devanagari, the script used for Hindi, Marathi, Sanskrit and Nepali, is difficult for computers because characters have similar shapes, a headline stroke joins letters and handwriting varies enormously from person to person. Reliable recognition would help digitize forms, exam papers and archives. This project trains a convolutional neural network to recognize handwritten Devanagari characters from scanned images.
The pipeline starts with a public handwritten character dataset that is cleaned, resized, normalized and augmented with small rotations, shifts and noise so that the model tolerates real handwriting. A CNN with stacked convolution and pooling layers, batch normalization and dropout is designed and trained in TensorFlow, and its accuracy is compared with a simpler baseline. Results are analysed with a confusion matrix to find which characters are confused, and the model is tuned to reduce those errors. OpenCV handles image loading and preprocessing, and a small demo interface lets a user upload or draw a character and see the predicted letter with a confidence score.
You will learn how CNNs learn visual features, how data augmentation fights over-fitting, how to read a confusion matrix and how to package a trained model behind a simple interface. The Project Reference Guide explains the architecture choices and evaluation in detail, and the Reference Implementation contains the training scripts, the saved model and the demo application.