Sistema avanzato di conteggio droni basato su YOLOv8 e BYTETrack per il tracciamento e il conteggio di oggetti in tempo reale da stream video.
- 🎯 Rilevamento preciso con YOLOv8
- 📈 Tracciamento continuo tramite BYTETrack
- 🆔 Conteggio progressivo basato sugli ID
- 📊 Dashboard web con grafici in tempo reale
- 🕒 Storico orario dei conteggi
- 📹 Supporto multi-sorgente (webcam/RTSP/YouTube)
- 🔄 Gestione errori e riconnessione automatica
- Python 3.8+
- NVIDIA GPU (consigliata) con driver CUDA 11.8+
- 4GB+ RAM (8GB consigliati per HD)
- 2GB+ spazio disco
- Connessione internet per download modelli
-
Clona il repository: bash git clone https://github.com/tuo-utente/drone-counter.git cd drone-counter
-
Installa dipendenze:
-
Creazione ambiente virtuale: myenv
-
Attivazione ambiente: activate
-
Disattivazione ambiente: deactivate
python3 -m venv drone_env
Esempio completo per Windows:
:: Crea ambiente python -m venv drone_env
:: Attiva drone_env\Scripts\activate.bat
:: Installa pacchetti pip install -r requirements.txt
:: Disattiva deactivate
python3 -m venv drone_env
source drone_env/bin/activate
pip install -r requirements.txt
deactivate pip install -r requirements.txt
Crea config.yaml
per personalizzare:
yaml
tracker:
track_high_thresh: 0.6 # Soglia alta per tracking
track_low_thresh: 0.1 # Soglia minima per tracking
new_track_thresh: 0.6 # Soglia per nuovi track
track_buffer: 30 # Frame di memoria per oggetti persi
match_thresh: 0.8 # Soglia matching tra frame
Avvia con webcam (ID 0): bash python drone_counter.py --url 0
Per stream RTSP bash python drone_counter.py --url "rtsp://username:password@ip:port/stream" esempio con webcam : python drone_counter.py --url "rtsp://admin:PASSSS@10.0.0.14:554/Streaming/Channels/101"
Per utilizzare queste configurazioni, puoi: Disattivare gli aggiornamenti del contatore: export ENABLE_COUNTER_UPDATES=false python drone_counter.py --url "rtsp://..."
Disattivare gli aggiornamenti delle immagini: Disattivare entrambi:
export ENABLE_COUNTER_UPDATES=false export ENABLE_IMAGE_UPDATES=false python drone_counter.py --url "rtsp://..."
- Usare i valori di default (entrambi attivi): python drone_counter.py --url "rtsp://..."
Le variabili d'ambiente possono essere: true/false (case insensitive) Se non impostate, default a true Il programma mostrerà lo stato delle configurazioni all'avvio
per usare le camere del pc o di obs o camera esterna:
python drone_counter.py --url 0,1,2
0 camera interna
1 camera obs
2 camera esterna
: bash http://localhost:5001
Comandi utili:
--half
: Abilita precisione mista (performance)--imgsz 640
: Dimensione elaborazione frame--conf 0.5
: Soglia minima confidenza detection
├── drone_counter.py # Core application ├── bytetrack_custom.yaml # Tracker configuration ├── templates/ # Web templates │ └── index.html # Main interface ├── requirements.txt # Dependencies └── README.md # This document .
Problema | Soluzione |
---|---|
Connessione video fallita | Verifica URL/porte • Disabilita firewall |
ID non incrementano | Aumenta track_buffer • Modifica new_track_thresh |
Alto uso CPU/GPU | Riduci --imgsz • Usa --half |
Latenza elevata | Disabilita visualizzazione frame (--no-show ) |
Distribuito sotto licenza MIT.
_Sviluppato da [Roberto Navoni] - 2025
⚠️ Nota: Richiede modello YOLOv8n.pt che viene scaricato automaticamente al primo avvio.