How ilungamulala/ai-driven-traffic-light works
This repository implements two traffic-signal inputs: video-based vehicle counting and audio-based emergency-sound classification. The video loop detects and tracks vehicles, counts unique tracks, and sends a signal when the count threshold is exceeded; the audio script records a sample, classifies it, and sends the predicted class to the ESP32. Firmware then controls the LED signals. The README describes broader real-time use, but the sampled video code reads hard-coded video files. Audio and firmware links follow the code and README; their internals were not sampled.
Main entry points: main.py Video processing · EmergencySounds.py Audio classifier flow · Simple_ESP32_Code.ino ESP32 firmware · yolov8n.pt YOLO weights
Components 13
Traffic Analysis
- Video processing
main.py - YOLO weights
yolov8n.pt - Class names
classes.txt - SORT tracker
sort.py - Video display
main.py
Emergency Audio
- Audio classifier flow
EmergencySounds.py - Siren model
siren_sound_classifier.h5
Signal Control
- ESP32 firmware
Simple_ESP32_Code/Simple_ESP32_Code.ino
Other components
- Operator
- Video files
- Microphone
- ESP32 controller
- Traffic LEDs
Connections 13
- Operator → Video processing: starts
- Video files → Video processing: provides frames
- Video processing → YOLO weights: loads weights
- Video processing → Class names: reads labels
- Video processing → SORT tracker: updates tracks
- Video processing → Video display: renders frames
- Video processing → ESP32 controller: sends count code
- Operator → Audio classifier flow: starts
- Microphone → Audio classifier flow: provides audio
- Audio classifier flow → Siren model: loads and predicts
- Audio classifier flow → ESP32 controller: sends class ID
- ESP32 controller → ESP32 firmware: receives commands
- ESP32 firmware → Traffic LEDs: controls signals