lucianoayres / numi-ai

NUMI AI is an intuitive web application that recognizes hand-drawn single-digit numbers in real-time. Using a powerful Convolutional Neural Network (CNN), NUMI AI provides accurate predictions.

Home Page:https://lucianoayres.github.io/numi-ai/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NUMI - AI-Powered Hand-drawn Digit Recognition

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.

Features

  • 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.

Screenshots

numi-ai-demo

Model Training

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.

Technologies Used

  • 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)

Getting Started

To set up and run NUMI AI locally, follow these steps:

  1. Data Conversion using Docker:

    • Build the Docker image:
      docker build -t tensorflowjs-converter .
    • Run the Docker container with the image:
      docker run -v "${PWD}/model:/app/model" -v "${PWD}/src/data:/app/src/data" tensorflowjs-converter
      These commands will build the Docker image and execute the data conversion process.
  2. 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.

Design Assets

The logo and prototype design assets created for the project can be accessed on Figma.

Contributing

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.

License

NUMI AI is released under the MIT License, allowing you to use, modify, and distribute the code for both commercial and non-commercial purposes.

Acknowledgments

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.

About

NUMI AI is an intuitive web application that recognizes hand-drawn single-digit numbers in real-time. Using a powerful Convolutional Neural Network (CNN), NUMI AI provides accurate predictions.

https://lucianoayres.github.io/numi-ai/


Languages

Language:JavaScript 42.9%Language:HTML 41.1%Language:CSS 13.1%Language:Shell 1.9%Language:Dockerfile 1.0%