Skip to content

stutisehgal/Machine-Learning-Project

Repository files navigation

HANDWRITTEN DIGIT RECOGNITION (SVM + OpenCV)

The famous MNIST CSV dataset was used to train the handwriting recognition SVM classification model in the SVM MNIST digit recog file. Rbf kernel with gamma and C hyperparameter tuning was used to achieve optimum accuracy of 97% in classifying MNIST training dataset. The model predictions were then made using the testing MNIST dataset CSV file. Validation of model can be performed using user handwritten digit image which can be captured, preprocessed and given to the SVM MNIST model using handwritten image webcam-opencv-mnist file.

The famous load_digits available in sklearn datasets module was also used to train the handwriting recognition SVM classification model in the SVM Handwritten digit recog load_digits file. Rbf kernel with gamma and C hyperparameter tuning was used to achieve optimum accuracy of 97% in classifying load_digits dataset. The model predictions were then made using the testing dataset file.

Motivation

Handwritten digit recognition is an important benchmark task in computer vision. Handwritten character recognition is one of the practically important issues in pattern recognition applications. The applications of digit recognition includes in postal mail sorting, bank check processing, form data entry, etc.

Screenshots

Features

1️⃣ SVM Classifier ( Rbf Kernel)

2️⃣ MNIST and load_digits training datasets

3️⃣ Seaborn data visualization

4️⃣ Joblib to load trained model

5️⃣ OpenCV to capture user input digit

How to use?

Validation of model can be performed using user handwritten digit image which can be captured, preprocessed and given to the SVM Handwritten digit recog model using handwritten image webcam-opencv-digits file.

Contribute 👨‍👨‍👧‍👦

Thanks for taking the time to contribute!

The following is a set of guidelines for contributing to Handwritten Digit Recognition. These are just guidelines, not rules, so use your best judgement and feel free to propose changes to this document in a pull request.

If you have any questions, open an issue.

Issue

Ensure the bug was not already reported by searching on GitHub under issues. If you're unable to find an open issue addressing the bug, open a new issue.

Write detailed information. Detailed information is very helpful to understand an issue.

For example: How to reproduce the issue, step-by-step. The expected behavior (or what is wrong). Screenshots for issues. The operating system.

Pull Requests

Pull Requests are always welcome.

License

MIT © Stuti Sehgal

This project is licensed under the MIT License - see the LICENSE.md file for details