Applicazione web per il rilevamento e riconoscimento automatico di segnali stradali utilizzando il modello YOLOv11n e un'interfaccia intuitiva sviluppata con Streamlit.
Il cuore dell'applicazione è un modello YOLOv11-nano personalizzato (best.pt) addestrato su un dataset specializzato per il riconoscimento di segnali stradali. Il modello è ottimizzato per garantire elevata precisione mantenendo prestazioni veloci anche su hardware standard.
Caratteristiche del modello:
- Architettura: YOLOv11-nano
- Formato: PyTorch (.pt)
- Dimensioni compatte per deployment rapido
- Addestramento su dataset dedicato ai segnali stradali
TrafficSignDetectionAndRecognition/
├── 📁 image_test/ # Immagini di esempio per il testing
├── 📁 Video/
│ └── video.mp4 # Video dimostrativo
├── 📄 best.pt # Modello YOLOv11 addestrato
├── 📄 main.py # Applicazione Streamlit principale
├── 📄 requirements.txt # Dipendenze Python
├── 📄 .env # Variabili d'ambiente
├── 📓 YOLOv11-nano.ipynb # Notebook training e testing
├── 📓 Dataset.ipynb # Notebook download dataset
├── 📓 MachineLearningProjectReport.pdf # Relazione progetto
└── 📄 README.md # Documentazione
- Python 3.8+
- pip package manager
- Connessione internet
git clone https://github.com/Ciccio1307/TrafficSignDetectionAndRecognition
cd TrafficSignDetectionAndRecognition# Creazione ambiente virtuale
python -m venv .venv
# Attivazione ambiente
# Linux/Mac:
source .venv/bin/activate
# Windows:
.venv\Scripts\activatepip install -r requirements.txtCrea o modifica il file .env nella directory root:
YOLO_MODEL_PATH=best.pt
ROBOFLOW_API_KEY="inserisci_qui_la_tua_api_key_roboflow"Nota: La chiave API Roboflow è necessaria per alcune funzionalità avanzate. Recuperare la key dalla mail inviata ai docenti del corso.
streamlit run main.pyL'applicazione sarà disponibile su: http://localhost:8501
- Carica un'immagine utilizzando l'uploader
- Seleziona le immagini di test dalla cartella
image_test/ - Visualizza i risultati con bounding box e classificazioni
La cartella image_test/ contiene esempi pronti per il testing:
image_test/
├── img1.png
├── img2.png
├── img3.jpg
├── img4.jpg
└── img5.png
YOLOv11-nano.ipynb: Training, validazione e testing del modelloDataset.ipynb: Download e preparazione del dataset
video.mp4
- Rilevamento Real-time: Identificazione rapida di segnali stradali
- Classificazione Multi-classe: Riconoscimento di diverse tipologie di segnali
- Interfaccia User-friendly: Design intuitivo e responsivo
- Visualizzazione Avanzata: Bounding box colorati con confidence score
Contributi, segnalazioni di bug e richieste di funzionalità sono benvenute! Per contribuire:
- Fai un fork del repository
- Crea un branch per la tua feature
- Committa le modifiche
- Pusha sul branch
- Apri una Pull Request
- Giulio Pedicone
- Vincenzo Villanova
- Francesco Prospero Antonio Virzì
Progetto realizzato per il corso di Machine Learning 2025
Università degli Studi di Catania
📧 Email: [VRZFNC02L13E536X@studium.unict.it] 🔗 GitHub: @Francesco Prospero Antonio
Ultimo aggiornamento: Luglio 2025