Skip to content

AlessandroIsceri/SportImageRecognitionSystem

Repository files navigation

Sport Image Recognition System

Descrizione

Questa applicazione è un sistema di riconoscimento di immagini sportive sviluppato per l'esame di Visual Information Processing and Management 2025-2026. L'applicativo utilizza modelli di deep learning per classificare immagini di sport diversi, eseguire ricerche di similarità, applicare augmentation e miglioramenti alle immagini. L'app è costruita con Streamlit e offre un'interfaccia web intuitiva per interagire con le varie funzionalità.

Funzionalità principali:

  • Task 1 e 2: Classificazione di immagini sportive (sia in condizioni ottimali sia in condizioni degradate) tramite modelli addestrati su diversi training sets.
  • Task 3: Classificazione di immagini sportive degradate partendo da un training set di ridotte dimensioni.
  • Similarity Search: Ricerca di immagini simili nel dataset.
  • Augmentation Playground: Playground per applicare e testare le tecniche di data augmentation per le immagini.
  • Image Enhancement: Miglioramento della qualità delle immagini degradate.

Installazione

Prerequisiti

  • Python 3.13
  • pip

Passi per l'installazione

  1. Clona il repository:

    git clone https://github.com/AlessandroIsceri/SportImageRecognitionSystem.git
    cd SportImageRecognitionSystem
  2. Crea un ambiente virtuale:

    python -m venv venv
    venv\Scripts\activate  # Su Windows
  3. Installa le dipendenze:

    pip install -r requirements.txt
  4. Scarica la cartella data dal seguente dataset su Kaggle

  5. Inserisci la cartella data nella root della repository

  6. Avvia l'applicazione:

    streamlit run app/main.py

L'app sarà accessibile su http://localhost:8501.

Note sui Notebooks

La cartella notebooks/ contiene vari Jupyter notebooks utilizzati per lo sviluppo, il training e il test dei modelli:

  • augmentation/: Notebooks per l'augmentation delle immagini.
  • training/Task1/ e training/Task3/: Notebooks per il training dei modelli, con varie versioni e configurazioni.
  • test/Task1/ e test/Task3/: Notebooks per testare su Task 1 e Task 3 i modelli Baseline, Improved Baseline, InceptionV3 fine-tuned, VGG-Like, e VGG-Like-SURF (trainati in precedenza).
  • SURF/: Estrazione di feature utilizzando SURF e concatenazione con VGG-Like.
  • images-embeddings.ipynb: Generazione di embeddings per le immagini.
  • profiler-macs-flops.ipynb: Profilazione delle prestazioni dei modelli (MACs e FLOPs).

Questi notebooks sono utili per comprendere il processo di sviluppo, riprodurre i risultati e sperimentare con i modelli.

Struttura del Progetto

  • app/: Codice principale dell'applicazione Streamlit.
  • config/: File di configurazione.
  • data/: Dataset, embeddings, modelli salvati.
  • notebooks/: Jupyter notebooks per analisi e sviluppo.
  • requirements.txt: Dipendenze Python.

About

A sports image recognition system developed for the Visual Information Processing and Management 2025-2026 exam. The application uses deep learning models to classify images of different sports, perform similarity searches, and apply image augmentation and enhancement techniques.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors