NUMI AI
is an interactive web application that allows you to draw single-digit numbers on a canvas and receive real-time predictions for the drawn digits. Powered by a Convolutional Neural Network (CNN), NUMI AI accurately recognizes hand-drawn numbers.
-
Single Digit Number Recognition: NUMI AI specializes in recognizing hand-drawn single-digit numbers, including fully rotated digits. Its CNN architecture ensures accurate predictions.
-
Real-time Prediction: As you draw a number, NUMI AI provides immediate predictions, offering a responsive and interactive user experience.
-
Cross-Device Compatibility: NUMI AI supports a wide range of devices, including web browsers on desktop computers, laptops, tablets, and mobile phones.
The NUMI AI model was trained using the MNIST dataset, which is the largest dataset of hand-drawn numbers in the world. The Python backend script used for training the model can be viewed on Google Colab.
-
Frontend:
- Vanilla JavaScript, HTML, and CSS
- TensorFlow.js library (for integrating pre-trained machine learning models in the browser for real-time predictions)
-
Backend:
- Python (for model creation and training)
- TensorFlow library (for developing and deploying machine learning models)
- Docker (for running a container to convert the tensorflow keras model to .JSON)
- GitHub Actions (for minifying the JavaScript files, building and deploying to GitHub pages)
To set up and run NUMI AI locally, follow these steps:
-
Data Conversion using Docker:
- Build the Docker image:
docker build -t tensorflowjs-converter .
- Run the Docker container with the image:
These commands will build the Docker image and execute the data conversion process.
docker run -v "${PWD}/model:/app/model" -v "${PWD}/src/data:/app/src/data" tensorflowjs-converter
- Build the Docker image:
-
Run the Application Locally:
- Start a local web server with Python's Simple HTTP Server:
python -m SimpleHTTPServer 5500
- Access the application by navigating to
http://localhost:5500
or the specified local web server URL in your browser.
- Start a local web server with Python's Simple HTTP Server:
The logo and prototype design assets created for the project can be accessed on Figma.
Contributions to NUMI AI are highly appreciated! If you encounter any issues, have suggestions for improvements, or would like to contribute code, please feel free to open an issue or submit a pull request on the project's GitHub repository.
NUMI AI is released under the MIT License, allowing you to use, modify, and distribute the code for both commercial and non-commercial purposes.
We extend our gratitude to the open-source community and the contributors who made this project possible. Their dedication and efforts have played a vital role in shaping NUMI AI.
If you have any questions or require further assistance, please don't hesitate to reach out.