Skip to main content

Riconoscitore di oggetti in tempo reale con Teachable Machine, overlay grafico e sintesi vocale italiana

Project description

🎯 Riconoscitore Oggetti

Riconoscimento oggetti in tempo reale con modelli Teachable Machine, overlay grafico e sintesi vocale italiana.

PyPI version Python 3.9+ License: MIT

Pensato per la didattica e per progetti di accessibilità. Usa modelli .tflite esportati da Google Teachable Machine.


✨ Funzionalità

  • 📷 Riconoscimento in tempo reale dalla webcam
  • 🗣️ Sintesi vocale italiana (TTS) in thread separato — il video non si blocca mai
  • 📊 Smoothing predizioni su N frame (anti-flickering con voto di maggioranza)
  • 🎚️ Soglia di confidenza configurabile
  • 🖥️ Overlay grafico con barra confidenza, FPS e log riconoscimenti
  • ⌨️ Tasti rapidi: Q esci, M muto, S screenshot, P pausa
  • 🔇 Cooldown vocale anti-ripetizione

📦 Installazione

pip install riconoscitore-oggetti

⚠️ Richiede Python 3.9+ e una webcam collegata.

Dipendenze installate automaticamente

  • opencv-python — acquisizione e visualizzazione video
  • tensorflow — interprete TFLite per l'inferenza
  • numpy — elaborazione array
  • pyttsx3 — sintesi vocale offline

🚀 Uso

Da terminale (CLI)

riconoscitore

Oppure:

python -m riconoscitore_oggetti

Si aprirà un file dialog per selezionare il modello .tflite e il file etichette .txt.

Da codice Python

from riconoscitore_oggetti import avvia

# Modalità interattiva (file dialog)
avvia()

# Percorsi espliciti
avvia("mio_modello.tflite", "etichette.txt")

# Con configurazione personalizzata
avvia(
    model_path="modello.tflite",
    labels_path="labels.txt",
    camera_index=0,
    config={
        "SOGLIA_CONFIDENZA": 0.85,
        "VELOCITA_VOCE": 180,
        "BUFFER_FRAME": 9,
    }
)

Uso avanzato delle classi

from riconoscitore_oggetti import Classificatore, MotoreVocale

# Usa solo il classificatore
clf = Classificatore("modello.tflite", ["gatto", "cane", "standard"], buffer_size=5)
etichetta, confidenza, raw = clf.predici(frame_opencv)
etichetta_stabile, conf_stabile = clf.predizione_stabile()

# Usa solo il motore vocale
voce = MotoreVocale(velocita=150, volume=0.9)
voce.parla("Ciao mondo!")

🎓 Come creare il modello

  1. Vai su Teachable Machine
  2. Crea un progetto Image → addestra le classi con la webcam
  3. Esporta come TensorFlow Lite (quantizzato float)
  4. Scarica il .tflite e il labels.txt
  5. Lancia il riconoscitore e seleziona i due file!

💡 Aggiungi una classe chiamata standard come sfondo neutro (non verrà annunciata).

⌨️ Comandi durante l'esecuzione

Tasto Azione
Q Esci dall'applicazione
M Attiva/disattiva muto
S Salva screenshot
P Pausa/riprendi

⚙️ Configurazione

Puoi sovrascrivere qualsiasi parametro passando un dizionario config ad avvia():

Parametro Default Descrizione
SOGLIA_CONFIDENZA 0.70 Soglia minima per annunci vocali
BUFFER_FRAME 7 Frame per smoothing (dispari)
COOLDOWN_VOCE_SEC 2.5 Secondi tra annunci ripetuti
VELOCITA_VOCE 150 Parole al minuto TTS
VOLUME_VOCE 0.9 Volume TTS (0.0–1.0)
ETICHETTA_NEUTRA "standard" Classe ignorata dal TTS
LARGHEZZA_FINESTRA 800 Larghezza finestra video

📄 Licenza

MIT — Prof. Giuseppe Aleci, ITIS Q. Sella, Biella — A.S. 2025/2026

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

riconoscitore_oggetti-2.0.2.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

riconoscitore_oggetti-2.0.2-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file riconoscitore_oggetti-2.0.2.tar.gz.

File metadata

  • Download URL: riconoscitore_oggetti-2.0.2.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.4

File hashes

Hashes for riconoscitore_oggetti-2.0.2.tar.gz
Algorithm Hash digest
SHA256 bf222a1c630223687696a2838aa141accc6adc6a459476ab48c4448dd3203833
MD5 d823c3a27a05f13c12e325728940f2ec
BLAKE2b-256 d3ac2baea74d85961e9b014484c8fc4572d65df7716f86550ca9d13fda7dfd6c

See more details on using hashes here.

File details

Details for the file riconoscitore_oggetti-2.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for riconoscitore_oggetti-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0ca68472bf86e051c23804b0430f8fe37a7f1eca0d7cb801715f9583bdb5a75c
MD5 feedea4657b8c33d51a82d07d79750c8
BLAKE2b-256 8874a4a0fc1a071ddf4e9b1c04f48bab998df7d303d88e6d3d9722db0b583c4a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page