P.04Internal prototype
Pr-venx
Real-time detection of road signs and traffic lights on a camera stream, with hand-built and hand-annotated datasets.
- Period
- January 2026
- Role
- Dataset construction, training, real-time integration.
- Stack
- Python
- YOLOv8
- Ultralytics
- OpenCV
- Tkinter
- Pillow
Reference points
10
detected classes
traffic_signs table in the source code
3
datasets built
dataset_stop, dataset_traffic_light, dataset_merged
0,7 s
inference interval
yolo_interval constant, tuned to keep the stream smooth
The problem
Recognising a sign in a photo is a solved exercise. Doing it on a camera stream, on a machine without a dedicated GPU, while keeping the image smooth, is not. The difficulty is not the model: it is the compute budget per frame.
What was built
- 01
Ten distinct classes: stop, yield, speed limit, no entry, priority, pedestrian crossing, and the four states of a traffic light — red, amber, green, off.
- 02
Three separately maintained datasets: stop signs, traffic lights, then a merged set for final training.
- 03
A display loop decoupled from the inference loop.
- 04
A reproducible training chain: dataset preparation, training, testing, documented step by step.
Architecture
Technical decisions
Decoupling inference from display
The model does not run on every frame but at a fixed interval, and the last detected boxes stay on screen between passes. The eye sees no difference on an approaching sign, whereas running the network on every frame makes the image stutter. It is a perception trade-off, not an accuracy one.
An unlit traffic light is a class of its own
An out-of-service light is not the absence of a light: it is a specific driving situation, with a different priority rule. Most public datasets do not distinguish that case. Treating it as an explicit class required building the corresponding images.
Three datasets rather than one
Signs and lights present different difficulties: fixed shape and variable colour on one side, variable shape and discriminating colour on the other. Keeping them separate makes it possible to measure where the model fails before merging, which a single set makes impossible.
What it demonstrates
Computer vision under real-time constraints, dataset construction and annotation, trade-off between accuracy and smoothness.