A handwriting recognition web application that detects and classifies handwritten characters using deep learning. The model is trained on the IAM and MNIST handwriting datasets and integrated into a Flask-based web app for interactive predictions.
This app allows users to:
- Draw handwritten characters or words in a canvas
- Process the image using OpenCV
- Use a trained deep learning model to predict the handwriting
- Display the prediction in real time
This project demonstrates the combination of computer vision, model training, and full-stack web development.
| Frontend | Backend | ML & CV |
|---|---|---|
| React Native, JavaScript, Canvas API | Flask (Python) | TensorFlow, OpenCV, NumPy |
| Trained on IAM & MINT datasets |
- User draws a handwritten character on a canvas element in the browser
- The canvas is converted to an image and sent to the Flask server
- OpenCV preprocesses the image (resize, grayscale, normalize)
- TensorFlow model classifies the character
- Result is returned to the frontend and displayed
- IAM Handwriting Dataset: Real-world handwritten English text samples
- MNIST Dataset: Supplementary dataset for handwritten digits variation
The model was trained on preprocessed and augmented data from both datasets to improve generalization. Just two datasets were used because of the GPU capacity used to create this project locally.
The model architecture is based on a Convolutional Neural Network (CNN) and was trained using TensorFlow/Keras. Training scripts and the final model weights are included in the /model directory.
- Python 3.7+
- pip or virtualenv
git clone https://github.com/x2qui/hwrapp.git
cd hwrapp
pip install -r requirements.txt
python app.py
Then go to your browser AT PORT 5000