Status: Ongoing
Associated with: Thynk360
Handwriting recognition has become a foundational capability in digitizing manual input—from classroom whiteboards to financial documents. As part of my AI project portfolio under Thynk360, I am developing a Handwriting Recognition System using Convolutional Neural Networks (CNNs). The system is specifically trained to recognize handwritten digits, and its modular structure allows extension to full alphabet and cursive scripts in the future.
Tools & Technologies Used
- Libraries & Frameworks: TensorFlow, Keras, NumPy, Matplotlib
- Dataset: MNIST (Modified National Institute of Standards and Technology)
- Model Type: Convolutional Neural Network (CNN)
- Additional Tools: OpenCV for image preprocessing and digit extraction
Description
The project began with the MNIST dataset—a widely used benchmark dataset of 70,000 grayscale images of handwritten digits (0–9), each sized at 28×28 pixels. After standardizing and normalizing the data, I built a custom CNN using Keras Sequential API. The model includes convolutional layers with ReLU activations, max-pooling layers for spatial downsampling, and dense layers for classification.
Key components of the architecture include:
- Two convolutional layers to detect spatial hierarchies in handwriting
- Max pooling to reduce dimensionality and control overfitting
- Dropout layers to prevent overfitting during training
- A final softmax output layer to classify input into one of the 10 digits
The model was trained using categorical cross-entropy loss and Adam optimizer over 10 epochs. With careful tuning and validation, it achieved a test accuracy of approximately 98%, comparable to benchmark implementations.
Key Highlights
- Achieved 98% test accuracy on MNIST after just 10 epochs.
- Built an intuitive visualization dashboard using Matplotlib to observe real-time training metrics and prediction outputs.
- Applied OpenCV for digit extraction and pre-processing in custom handwritten images outside of the MNIST dataset.
- Implemented data augmentation (rotation, scaling, shifting) to simulate handwriting variability and improve generalization.
- Learned / Achieved
This project was instrumental in deepening my understanding of deep learning architectures, especially CNNs for image recognition tasks. I gained hands-on experience in designing, training, and fine-tuning deep neural networks using TensorFlow and Keras. Importantly, I developed a strong appreciation for the role of preprocessing, normalization, and data augmentation in enhancing model performance.
From a broader perspective, this project also introduced me to model evaluation beyond accuracy, using confusion matrices and precision-recall metrics to uncover biases in digit prediction. I also explored model deployment strategies for converting handwritten inputs (e.g., using stylus or touchscreen) into recognized digits in real time.
Future Plans
My next step is to extend this system to multi-digit recognition, which will require a combination of segmentation and sequence modeling. I also aim to explore Recurrent Neural Networks (RNNs) and Transformer-based vision models like ViT for improved generalization across handwriting styles.
Ultimately, I envision deploying this model as a web-based handwriting input interface for educational tools, exams, and digital form automation.