Skip to content

stanislawq/AI-project

Repository files navigation

Air-Drawing Calculator (AI / Computer Vision Project)

This repository contains my university AI / Computer Vision project:
a real-time “air-drawing” calculator that lets a user draw digits and arithmetic operators in the air using hand gestures. The system tracks the fingertip with a webcam, renders the trajectory on a virtual canvas and then uses convolutional neural networks (CNNs) to recognize the handwritten digits and operators and evaluate the expression.

The project combines classical computer vision (OpenCV), hand-tracking with MediaPipe and deep learning models implemented in TensorFlow / Keras.


Project goals

  • Build an interactive calculator controlled only by mid-air gestures (no keyboard or mouse).
  • Train robust CNN models for:
    • digit recognition (0–9)
    • operator recognition (+, -, *, /, …)
  • Achieve >98% test accuracy on both digits and operators.
  • Integrate the models into a real-time application that:
    1. Tracks the user’s fingertip in webcam video.
    2. Draws the trajectory onto a canvas.
    3. Segments the canvas into symbols.
    4. Classifies symbols and evaluates the resulting expression.

A detailed description of the architecture, experiments and results is available in ai_final_report.pdf.


Repository structure

AI-project/
├── ai_final_report.pdf          # Final project report (methods, experiments, results)
├── main.py                      # Real-time "air-drawing" calculator application
├── training.py                  # CNN training script for digit classifier
├── training_operators.py        # CNN training script for operator classifier
├── super_digit_classifier.keras # Trained Keras model for digits
├── operators_model.keras        # Trained Keras model for operators
├── LICENSE                      # Apache 2.0 license
└── README.md                    # This file

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages