This project classifies handwritten digits (0-9)
ITX Numscan is a collection of MNIST digit classifiers and tools. It contains a self-written neural network (Numscan) mostly for educational purpose, a Convolutional neural network version using Tensorflow (Numscan 2), and a Discord bot for Numscan integration in Discord Servers. The Goal of the Project is to learn how neural networks operate and integrating it into Web or Discord.
- To understand the Math behind neural networks
- To provide a accurate classifier
- To integrate digit classification in tools or elsewhere
Numscan/- Folder for the self-made neural network based classifierNumscan 2/- Folder for the newer, smarter classifier with TensorflowDiscord Bot/- Folder for Discord integrationeditor.py- Desktop testing tool for single samples, either loaded or self-drawnrequirements.txt- All Python requirements
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txtYou need to put the MNIST Pngs into the Data Folder first!
Train the model with the images in the Data:
python "Numscan/Scripts/Train/training.py"Test the models overall performance:
python "Numscan/Scripts/Test/test.py"Test the model yourself:
python "editor.py"Train a model with the samples of the MNIST Dataset or load an already exsisting one:
python "Numscan 2/model.py"Test the models performance:
python "Numscan 2/test.py"Test the model yourself:
python "editor.py"The Discord Application reacts to uploaded images in the correct channel. The application needs join the server for it to work!
Create Discord Bot/.env with Token, Channel name and Model path:
DISCORD_BOT_TOKEN=your-token-here
MNIST_CHANNEL_NAME=numscan
MNIST_MODEL_PATH=Numscan/Models/after.pickle
Run the bot:
python "Discord Bot/bot.py"


