Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vaagdevi-challa/handwitten-digit-recognition-using-tensorflow-keras-and-flask
This project is a web-based handwritten digit recognition app using a CNN model built with Keras and TensorFlow, deployed with Flask. Users draw digits in the browser, which the model classifies in real-time. With a high accuracy , it offers an interactive, accurate interface for digit recognition.
https://github.com/vaagdevi-challa/handwitten-digit-recognition-using-tensorflow-keras-and-flask
flask html jupyter-notebook keras-tensorflow python3
Last synced: 9 days ago
JSON representation
This project is a web-based handwritten digit recognition app using a CNN model built with Keras and TensorFlow, deployed with Flask. Users draw digits in the browser, which the model classifies in real-time. With a high accuracy , it offers an interactive, accurate interface for digit recognition.
- Host: GitHub
- URL: https://github.com/vaagdevi-challa/handwitten-digit-recognition-using-tensorflow-keras-and-flask
- Owner: vaagdevi-challa
- Created: 2024-10-27T14:02:37.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-10-27T14:50:15.000Z (4 months ago)
- Last Synced: 2024-12-19T14:49:28.751Z (2 months ago)
- Topics: flask, html, jupyter-notebook, keras-tensorflow, python3
- Language: Jupyter Notebook
- Homepage:
- Size: 2.35 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Handwritten Digit Recognition
It is a simple web application that recognizes handwritten digits (0-9) using a neural network built with Keras and TensorFlow. The model is deployed using Flask, allowing users to draw digits in a web browser, which are then classified by the model.
## Features
- Recognizes handwritten digits from 0 to 9 with high accuracy.
- Interactive web interface for drawing and testing digits.
- Real-time predictions rendered directly in the browser.## Project Structure
```plaintext
Handwritten-digit-recognition-using-Tensorflow-Keras-and-Flask/
├── requirements.txt # To install all libraries needed
├── index.html # Main HTML file
├── digit_recognition_model_cnn.h5 # Trained Keras model file
├── flaskInterface.py # Flask app to handle requests
├── Handwritten_digit_recognition.py # Script to train the digit recognition model
└── README.md```
## Getting Started
### Dataset
Download the dataset : https://www.kaggle.com/datasets/olafkrastovski/handwritten-digits-0-9
### PrerequisitesEnsure you have Python 3.x installed. Install required libraries by running:
```bash
pip install -r requirements.txt
```### Requirements
- **Flask** - Web framework to serve the app.
- **TensorFlow/Keras** - Machine learning framework for model training and inference.
- **NumPy** - Numerical operations.
- **OpenCV** - For image processing (if used for pre-processing).## Usage
1. **Train the Model (optional)**: If you’d like to train the model yourself, run `Handwritten_digit_recognition.py`. This will save `digit_recognition_model_cnn.h5`
```bash
python Handwritten_digit_recognition.py
```2. **Run the Flask App**:
```bash
python flaskInterface.py
```3. **Open the App**:
Open a web browser and go to `http://127.0.0.1:5000` to access the digit recognition interface.## Model Training
The model is trained on the dataset of handwritten digits, which consists of 21600 training images. The neural network uses a simple CNN architecture to achieve high accuracy.
We got 95% accuracy while training the model### Architecture involves
```plaintext
- Conv2D layer
- MaxPooling layer
- Flatten layer
- Dense layers
- Softmax output
```## Technologies Used
- **Keras** & **TensorFlow** for neural network training.
- **Flask** to create a lightweight web server for the app.
- **HTML/CSS** for the front-end.
- **JavaScript** for handling canvas drawing and sending requests to the back-end.## output
(
)