Developing a Sudoku app, which allows users to enter numbers by drawing on screen. Drawed canvas will be classified as digits (1 to 9) by a Machine Learning algorithm(?).
Application runs on a Flask Server (python) and UI is developed with HTML, CSS and JavaScript. Sudoku logic is built in the JS layer.
Each sudoku cell can be entered by drawing a digit, then will be recognized by a model which was trained by MNIST dataset.
Option 1: Exporting model in a file (.h5 or similar) and will be consumed in Flask app directly.
Option 2: Prediction will be deployed as a service and will be consumed via an API by the application.
//Model training details
Drawed images are currently stored under digits/ directory with a timestamp name in png format. In future, each prediction will be stored into a database with prediction result, and if possible with a feedback from the user.
Diagram is drawed in Draw.io
- Create a new virtual environment
conda create --name sudoku
conda activate sudoku
- Install packages in requirements.txt into the new environment
conda install -c conda-forge requirements.txt
- Download the project folder with:
git clone https://github.com/ds-pergola/handwritten-sudoku.git
- Run application
python app.py
- Visit the URL: