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.0.tar.gz (4.8 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.0-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: riconoscitore_oggetti-2.0.0.tar.gz
  • Upload date:
  • Size: 4.8 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.0.tar.gz
Algorithm Hash digest
SHA256 8ee2434c374994ca6e035553bda986ba2afe65b05cef07c128d2efac105576fc
MD5 a7e9aa997880a980382b18b02ef2f414
BLAKE2b-256 305573ce3c9e847f1efb98ebe3fbc04b05b6738908eb4feeba23ecf22baae7aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for riconoscitore_oggetti-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e92a8f31155a727ffedd8a80e3f7efba4f1503464d4b9e63775df2b2ad922663
MD5 ac9349e83cc77931b893616fa825a6f3
BLAKE2b-256 e911cfe33920e70fbf81df5fb24102d7b5a2dd32b021948ed54557ad01824d74

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