Ce projet propose une solution innovante pour analyser les flux de trafic urbain en temps réel à l'aide de la vision par ordinateur et de l'intelligence artificielle. Il fournit des indicateurs clés de performance (KPIs) tels que le nombre de véhicules, leurs vitesses moyennes, leurs directions, et détecte les congestions de manière efficace et automatisée.
La gestion traditionnelle du trafic, souvent coûteuse et rigide, repose sur des capteurs physiques et des méthodes manuelles limitées. Ce projet exploite les vidéos de surveillance avec des techniques avancées de vision par ordinateur pour offrir une solution scalable, flexible, et précise.
L'objectif est de répondre aux défis de la gestion du trafic urbain, tels que la congestion, les inefficacités, et les problèmes de sécurité, en utilisant une approche moderne et automatisée pour l'analyse des flux.
- Détecter et suivre les véhicules en temps réel à partir de flux vidéo.
- Analyser les comportements des véhicules (vitesse, direction, etc.).
- Fournir des statistiques exploitables pour l'optimisation des infrastructures et la mobilité.
Technologie | Utilisation |
---|---|
YOLOv3 | Détection d'objets (véhicules et piétons). |
OpenCV | Traitement des images et vidéos. |
C++ | Calcul des KPIs et communication backend. |
Boost Asio | Gestion des WebSockets pour communication. |
React/Next.js | Développement du tableau de bord interactif. |
nlohmann/json | Structuration des données en JSON. |
- Utilisation de YOLOv3 via OpenCV pour détecter les véhicules et piétons.
- Précision améliorée grâce à l'entraînement personnalisé du modèle.
- Nombre de véhicules (par type et région).
- Vitesse moyenne et temps moyen des véhicules.
- Détection des congestions et analyse des directions.
- Vidéo en direct avec annotations.
- Statistiques dynamiques sur les flux de trafic.
- Visualisation des KPIs (vitesse, temps, direction).
This section explains the practical implementation of the traffic analysis system, including environment setup, model training, backend logic, and real-time communication with the frontend.
Le modèle YOLOv3 a été ajusté pour détecter des véhicules spécifiques (voiture, bus, camion, moto). La commande suivante a été utilisée pour l'entraînement :
./darknet detector train obj.data yolov3.cfg yolov3.weights -dont_show -map
The backend is implemented in C++ using OpenCV and Boost libraries to process video streams and calculate real-time KPIs.
- Reads each video frame.
- Applies YOLOv3 for object detection.
- Tracks detected objects and calculates movement direction.
- Vehicle Count by Region: Tracks the number of vehicles (cars, buses, trucks) in regions (North, South, East, West).
- Average Speed and Time: Computes vehicle speeds and time spent in monitored zones.
- Congestion Detection: Identifies areas with high vehicle density.
{
"region_stats": {
"N": {"cars": 5, "buses": 2, "trucks": 1},
"E": {"cars": 8, "buses": 1, "trucks": 0}
},
"average_speed": {"cars": 40, "buses": 30},
"congestion_detected": true
}
- Sends processed video frames (Base64-encoded) and KPI data (JSON) to the frontend.
- Maintains real-time communication with clients using Boost Asio.
The data is streamed to a frontend application built with React/Next.js, providing:
- Real-time traffic feed visualization.
- Region-based vehicle statistics.
- Key traffic metrics for improved decision-making.
The implementation combines state-of-the-art vision and backend technologies to deliver a robust and scalable solution for traffic monitoring. The system supports real-time insights, enabling smarter traffic management and planning.