Contrôle et surveillance d'Arduino
Contrôle et surveillance d'Arduino
[Link]
CONTROLE ET SURVEILLANCE DU
TRAFIC ROUTIER URBAIN
Roger Fournier
i
DEDICACE
ii
REMERCIEMENTS
Les plus sincères au Professeur Dr. OLIVIER BARAKA MUSHAGE qui, en dépit de
ses multiples occupations, a accepté de diriger ce travail. Sa disponibilité inconditionnelle, ses
conseils éclairants et son savoir-faire nous ont permis de mener à bon port ce travail, à l’Ir
Célestin MBUYAMBA qui a accepté d’être l'encadreur de ce travail. Sans oublier l’Ir KAMY
MUISA, l’Ir Raoul IRENGE pour leurs contributions.
Les plus vifs s’adressent aussi à tout le cadre professoral et Administratif de la faculté
des sciences et Technologies appliquées.
Ma gratitude est grande vis-à-vis de tous mes collèges et compagnons de lutte pour
leurs encouragements, je citerai plus particulièrement : Tripa VINGI, Elie MAYOGHA,
Pierre MUKISA, Alain MAPENDO, Cédric BEBYO, Enock KATEGHE, Fidèle OBUTU et
Christian KAKASU.
Je ne terminerai pas sans avoir exprimé mes remerciements envers toutes les
personnes qui ont contribué de près ou de loin à la réalisation de ce travail.
iii
TABLE DES MATIERES
EPIGRAPHE ............................................................................................................................... i
DEDICACE ................................................................................................................................ ii
REMERCIEMENTS .................................................................................................................. iii
SIGLES ET ABREVIATIONS................................................................................................... vii
LISTE DES FIGURES .............................................................................................................. viii
LISTE DES TABLEAUX .......................................................................................................... viii
RESUME .................................................................................................................................... x
ABSTRACT ................................................................................................................................xi
iv
II.5. MOTIVATION ET JUSTIFICATION D'UTILISATION D'UN CAPTEUR VIDEO ............ 18
II.6. LE CAS PARTICULIER DES FEUX DE CIRCULATION .................................................... 19
II.7. SYSTEME DE CONTROLE OU DE REGULATION DU TRAFIC EXISTANT ............... 20
II.7.1. Système de contrôle Manuel [28] ...................................................................................... 20
II.7.2. Système de contrôle à temps fixe (Système de contrôle traditionnel) ............................... 20
II.7.3. Système de contrôle à temps dynamique ............................................................................ 21
II.7.4. Système de signalisation utilisant le traitement d'image..................................................... 21
II.8. GESTION DU TEMPS DE FEUX VERT [1] .......................................................................... 22
II.9. CONCLUSION PARTIELLE ................................................................................................... 23
v
IV.2.5. Description du diagramme d’activité du cas d’utilisation « Détecter Accident» ........... 47
IV.2.6. Diagramme Multitâche DART du système ...................................................................... 48
IV.3. CONCLUSION PARTIELLE .................................................................................................. 49
vi
SIGLES ET ABREVIATIONS
CG : Chien de Garde
COCOMO: Constructive Cost Model
CPU : Unité Centrale de Traitement
DARTS : Design Approach for Real-Time Systems
FPS : Frame Per Second
GSM : Global System for Mobile SMS: Short Message System
HM : Homme Mois
HTR : Horloge Temps Réel
IDE : Environnement de Développement Intégré
IR : Infrarouge
IT : Interruption
ITS : Intelligent Transport System
KLOC : 1000 lignes de code
OS : Operating System
RAM : Random Access Memory
RFID : Radio Frequency Identification
SA-RT : Structured Analysis-Real Time
SMS : Short Message Service
SCSTR : Système de Contrôle et Surveillance du Trafic Routier
TDEV : Temps de Développement
UC : User Case
UML : Unified Modeling Language
USD : United States Dollard
vii
LISTE DES FIGURES
Figure I. 1 : Carte arduino MEGA 2560 Rev3 [20]…...........................................................................11
Figure II. 1 Illustration d'un carrefour Isolé [21] . .............................................................................. 13
Figure II.2: Diagrammes débit- densité [6]. ......................................................................................... 15
Figure II. 3: Illustration des différents temps de feu vert pour une phase [1]. .................................... 22
Figure IV.1: Diagramme de contexte générique du système................................................................. 37
Figure III.1: Architecture du Système. ………………………………………………………………………………………………….24
Figure III.2: Schéma global du processus de détection du système proposé…………………………………………….26
Figure III.3: Gestion de véhicule de Priorité. ……………………………………………………………………………………….29
Figure III.4: Gestion d'Infraction au niveau de feux de Circulation………………………………………………………….31
Figure III.5: Schéma du système d'acquisition de données ………………………………………………………….32
Figure III. 6: Schéma du processus de détection de la vitesse d'un mobile ……………………………………………..34
Figure III.7: Schéma de configuration pour la déduction de la vitesse du Mobile..........................................34
Figure IV. 2: Diagramme préliminaire du système par la méthode SA-RT. ....................................... 38
Figure IV. 3: Diagramme de cas d'utilisation du système .................................................................... 39
Figure IV.4: Représentation des tâches ................................................................................................ 42
Figure IV. 5 : Communication entre taches ......................................................................................... 42
Figure IV. 6: Activation des tâches. ...................................................................................................... 43
Figure IV. 7: Module de donnée............................................................................................................ 43
Figure IV. 8: Description du diagramme d’activité du cas d’utilisation « Réguler Feu Circulation » 44
Figure IV. 9: Description du diagramme d’activité du cas d’utilisation « Détecter Véhicule de
Priorité » ............................................................................................................................................... 45
Figure IV. 10: Description du diagramme d’activité du cas d’utilisation « Détecter Infraction»....... 46
Figure IV.11: Description du diagramme d’activité du cas d’utilisation « Détecter Accident».......... 47
Figure IV.12: Diagramme multitâche DARTS du système...................................................................... 48
Figure V.1: quelques images positives .................................................................................................. 51
Figure V.2: quelques images négatives ................................................................................................ 51
Figure V. 3: Fixation de la caméra ....................................................................................................... 52
Figure V. 4: Estimation du champ de vision de la caméra .................................................................. 53
Figure V. 5: schéma électronique du projet ........................................................................................... 54
Figure V.6: Image temps réel du trafic avant détection ...................................................................... 55
Figure V.7: Image temps réel du trafic avant après détection ............................................................ 55
Figure V. 8: Output console du système de détection de véhicule ....................................................... 56
Figure V.9: Image du trafic après détection d’un accident .................................................................. 56
Figure V. 10: Output console du système après détection d’un accident ............................................ 57
Figure V. 11: image du trafic pendant la détection de la vitesse .......................................................... 57
Figure V. 12: Output console du système pendant la détection de la vitesse....................................... 58
Figure ANNEXE-A. 1: Caractéristiques pseudo-har à seulement deux caractéristiques ..................... 72
Figure ANNEX-A.:2: caractéristiques pseudo-haar avec différentes orientations ............................... 74
viii
LISTE DES TABLEAUX
Tableau III.1: Processus décisionnel pour le contrôle le feu de signalisation ....................................... 27
Tableau V.2: Liste des matériels ........................................................................................................... 58
Tableau V.3: Découpage en Module ..................................................................................................... 59
Tableau V.4: Dépôts internes ................................................................................................................ 59
Tableau V.5: entrés externes ................................................................................................................. 60
Tableau V.6: Comptage des points de fonction non ajusté ................................................................... 60
Tableau V.7: fonctions d’ajustement.................................................................................................... 60
Tableau V.8: Conversion de points de fonction aux lignes de code...................................................... 61
Tableau V.9: Estimation COCOMO de base ....................................................................................... 62
Tableau V.10: Distribution de l’effort par phase en pourcentage ......................................................... 63
ix
RESUME
De nos jours, de nombreux travaux de recherche à travers le monde portent sur le
transport routier. La gestion du trafic en milieu urbain nécessite le déploiement de solutions et
techniques innovantes pour améliorer la fluidité des déplacements et la qualité
environnementale des transports des personnes et marchandises.
Cependant, malgré les nombreuses recherches dans le domaine de la vision par ordinateur,
l'analyse et la compréhension automatique du trafic reste un défi. C’est pour cela qu’un
capteur vidéo doit être équipé de toutes les données nécessaires à la réalisation de nombreuses
fonctions (telle que celle du comptage de véhicule, de la détection d'un incident ainsi que celle
de la détection du dépassement de la vitesse limite) ; ce capteur vidéo est à la fois très
flexible et économiquement intéressant.
Mot clés : Arduino, SA-RT, DARTS, UML, openCv, vision par ordinateur, capteurs à
ultrasons HC-SR04, SMS.
x
ABSTRACT
Today, there is a lot of research around the world on road transport. Traffic
management in urban areas requires a deployment of innovative solutions and techniques to
improve the travel fluidity and the environmental quality of the people and goods transport.
However, despite of the many researches in the field for computer vision, analysis and
automatic understanding of traffic remains a challenge. For this reason, a video sensor must
be equipped with all the data necessary to perform many functions (such as vehicle counting,
incident detection and over range speed limit detection); this video sensor is both very flexible
and economically interesting.
In this work we propose a control and surveillance system of the urban road traffic by use of a
video sensor integrating different subsystems in particular:
a system that uses the computer vision technique to regulate the traffic light with
intelligent, adaptive and efficient manner by taking real-time images of traffic status at
a junction.
a traffic light control system incorporating the management of emergency or priority
vehicles using GSM technology,
a notification and a system detection of the exceeding speed limit as well as accidents
detection observed on the road way,
a system for detecting infringements observed at the traffic light and on the road way,
In this proposed system, the entire image processing process is performed by a central
processing unit and the traffic light logic control is implemented on the microcontroller
(ATMega2560) level. The central processing unit analyses the traffic data in real time, takes a
decision and sends the results to the microcontroller and then according to that the
microcontroller adjusts the traffic light.
Key words: Arduino, SA-RT, DARTS, UML, openCv, computer vision, ultrasonic sensor
HC-SR04, SMS.
xi
CHAPITRE 0: INTRODUCTION GENERALE
0.1. PROBLEMATIQUE
De nos jours, se déplacer est devenu un aspect essentiel de la vie quotidienne : qu’il
s’agisse de transports en commun ou de véhicules personnels, le vaste réseau formé de ces
moyens de locomotion est immensément complexe à gérer. Sa gestion recouvre l’ensemble des
techniques humaines et automatisées permettant d’assurer la surveillance, l'analyse et le contrôle
des transports, au mieux un gain de performance dans l’acheminement des différents flux.
La gestion du trafic routier, surtout en milieu urbain, est un aspect essentiel de la vie
quotidienne; elle est même au cœur de nombreuses problématiques. En effet, il y a de plus en
plus des véhicules, de personnes, mais avec le même espace à partager et peu de budget pour
aménager les infrastructures. Jouer sur les leviers technologiques pour rendre l’existant plus
efficace est donc nécessaire [1].
Cette gestion du trafic routier s’est amplifié en l’espace de quelques années, engendrant de
nombreux problèmes qui coûtent quotidiennement en temps, argent, santé et qualité
environnementale, que ce soit par l’intermédiaire des embouteillages, des tracasseries, des
accidents ou encore des infractions.
Il y a une chose qui pose problème dans toutes les villes du monde : la circulation ; or on ne peut
pas régler ce problème en augmentant la taille ou le nombre de routes, par manque de place.
Pour la gestion du trafic routier, les problèmes de circulation sont généralement traités au niveau
d’un seul véhicule ou d’un sous-système (par exemple, dans un couloir spécifique artériel ou une
partie d’une route urbaine). Or cette vue parcellaire est inefficace pour améliorer la mobilité [2].
Il est donc nécessaire d'avoir recours à l'automatisation pour prendre en charge les fonctions
évoluées maintenant disponibles. A cela se rajoute un trafic plus intense et un environnement
plus dense. Il faut alors pouvoir compter sur des systèmes rapides et robustes pour prolonger la
perception humaine.
1
Comment utiliser la technologie pour rendre le trafic plus fluide ?
Quels mécanismes beaucoup plus économiques et efficaces pouvons-nous proposer afin
de pouvoir bien assurer le contrôle, l'analyse, la surveillance et rendre certaines
composantes du système autonomes ?
Dans ce travail, nous nous intéressons à l’utilisation des technologies de la vision par
ordinateur et d'un réseau fixe de capteurs vidéo afin d’améliorer la surveillance, l'analyse et le
contrôle du trafic routier dans un environnement urbain. En effet, le cadre urbain est celui qui
engendre le plus de problèmes (ralentissements, engorgements, etc.), mais est aussi le plus
complexe. En outre, il offre la plus grande possibilité de surveillance, d'analyse et de contrôle
par un système de transport intelligent.
0.2. HYPOTHESES
Comme nous l'avions mentionné dans la problématique, nous pensons que les
embouteillages, la pollution, les tracasseries, ou encore les accidents seraient, à priori réglables
si un meilleur contrôle leur était réservé. Ceci nous laisse supposer que:
une meilleure gestion des feux de circulations routières intelligentes nous permettrait
d’améliorer l’expérience des usagers et de réduire les coûts globaux.
La nécessité de la fourniture de l'état du trafic en temps réel contribuerait à la
surveillance et au contrôle du trafic routier.
2
Proposer une méthode de détection d’infraction et d’accident observé sur la voie de
circulation ;
Augmenter les fréquences de surveillance qui permettrait notamment de donner des
informations en quasi-temps réel.
parvenir à optimiser et gérer les phénomènes de congestion par le moyen d'un feu de
signalisation intelligent;
Réduire les coûts financiers ;
D'une manière beaucoup plus simple, l'objectif du présent travail est de pouvoir
développer un système temps réel d'aide à l'analyse, au contrôle et à la surveillance du trafic
routier. Le système développé doit réagir en fonction de l'environnement à partir de la vision par
ordinateur et de l'utilisation des quelques capteurs.
Pour un meilleur aboutissement aux objectifs de notre travail nous nous sommes servi
de quelques techniques et méthodes de recherche scientifique dont notamment :
Méthodes:
3
Techniques:
Premièrement, du point de vue personnelle, notre centre d’intérêt est de pouvoir nous
familiariser et d'enrichir nos connaissances dans la combinaison du développement d'un système
d'acquisition de données en temps réel par vision d'ordinateur et d'un système embarqué à
travers une mise en situation pratique de l'objet de ce présent travail.
4
CHAPITRE I: ETAT DE L'ART ET CONCEPTS DE
BASE
Dans [3], les auteurs présentent un système de suivi d'images et ses applications
pour la surveillance du trafic et la détection des accidents aux intersections routières.
Les emplacements des motos ainsi que des automobiles sont obtenus en temps réel en
utilisant l'approche du modèle de contour actif. Le traitement d'image est en outre
incorporé aux techniques de filtrage de Kalman pour suivre le mouvement de chaque
véhicule.
Dans [5], l'auteur propose un système de contrôle du trafic routier pour contrôler
automatiquement le feu de signalisation ; la détermination du nombre de véhicule se fait
en utilisant un approche basée sur un ensemble des capteurs IR (Infrarouge) placés au
bord de la route et d'un module RFID (Radio Frequency Identification) pour pouvoir
détecter la présence d'un véhicules d'urgence. Cependant, compte tenu du volume de
5
trafic en temps réel et de la capacité des capteurs IR, ce système ne peut pas être
considéré comme très fiable.
Dans [6], les auteurs ont proposé un système permettant de gérer deux problèmes
de circulation routière : détection de véhicules volés et changement du feu de circulation
en vert pour le véhicule d'urgence. Différents composants matériels ont été utilisés, tels
que ZigBee, RFID incorporé dans chaque véhicule. Lorsque le véhicule d'urgence se
retrouve à la jonction de la circulation, le module émetteur ZigBee du véhicule envoie un
signal au récepteur ZigBee du module de contrôle de feu de circulation pour que le feu de
circulation change en vert. En outre, le RFID est utilisé pour détecter les véhicules volés.
Apres avoir analysé les quelques travaux mentionnés dans l'état de l'art, nous constatons
que la plus part de solutions proposées par les auteurs nécessitent d'utiliser beaucoup de
capteurs sur la voie de circulation, d'intégrer dans le véhicule certains modules tel que : le
RFID, ZigBee,... Le système est donc dépendant des différents dispositifs matériels intégrés
dans des véhicules ou sur la voie de circulation.
Notre approche vise à pouvoir rendre le système indépendant des différents dispositifs
matériels intégré dans le véhicule, réduire considérablement la quantité des capteurs intégré sur
la voie de circulation tout en utilisant des méthodes et de technologies disponibles et moins
couteuses en ressource dont notamment le GSM, les capteurs vidéo (la vision par ordinateur) et
quelques capteurs à ultrasons HC-SR04 pour automatiser la gestion du trafic routier (feux de
circulation, véhicule d'urgence, détection du dépassement de la vitesse limite du véhicule,
détection d’infraction, détection d’accident).
I.3. CONCEPTS
Dans cette partie nous allons présenter quelques notions et outils d’analyse qui
seront ensuite utilisés dans notre système de contrôle et de surveillance du trafic routier urbain.
Les systèmes de transport intelligents (STI) apparaissent comme étant "l’application des
technologies de l’information et de la communication au domaine des transports". Le terme
système est vague et se décline en un ensemble de moyens mis en place pour gérer au mieux les
6
contraintes liées au trafic routier, telles que les embouteillages, la sécurité ou même la pollution
[7]. En particulier, ces systèmes offrent un caractère réactif à une infrastructure pourtant fixe,
mais dont la population peut grandement varier.
Le trafic est constitué de deux composantes majeures [8]: l'infrastructure et les mobiles.
Un mobile est défini comme étant un usager qui conduit son véhicule au sein de l'infrastructure.
Ils sont au cœur de notre considération. Par contre, les piétons (vaquant à pied) ne sont pas
considérés car leurs mouvements sont supposés dépendre de celui des mobiles.
Les Carrefour sont les lieux de croisement d'au moins deux routes. Un tel croisement peut
revêtir de nombreuses formes, tant dans l'infrastructure que dans les règles de franchissement.
Une route est caractérisée par sa longueur, son nombre de voies, ainsi que par le sens de
circulation et la vitesse maximale autorisée sur la voie [9].
7
Vision par ordinateur : (aussi appelée vision artificielle, vision numérique ou plus
récemment vision cognitive) est une branche de l'intelligence artificielle dont le but est de
permettre à une machine de comprendre ce qu'elle «voit » lorsqu'on la connecte à une ou
plusieurs caméras [14].
OpenCV est une bibliothèque libre de vision par ordinateur. Cette bibliothèque est écrite
en C et C++ et peut être utilisée sous Linux, Windows et Mac OS X. Des interfaces ont
été développées pour Java, Python, Ruby, Matlab et autre langage. Open CV est orienté vers des
applications en temps réel [14].
Le tracking est un procédé de localisation d’un (ou plusieurs) objet en mouvement en temps
réel en utilisant une caméra. Un algorithme analyse les photogrammes de la vidéo et
localise les cibles en mouvement sur la vidéo. La principale difficulté dans le tracking sur une
vidéo est d’associer la localisation des cibles dans les photogrammes successifs,
particulièrement lorsque les objets bougent rapidement par rapport au frame rate. Les
systèmes de tracking sur une vidéo utilisent normalement un modèle en mouvement qui
décrit comment l’image de la cible peu changer en tenant compte du mouvement possible de
l’objet traqué [14].
Le rôle d’un algorithme de tracking est d’analyser les photogrammes dans l’ordre et
d’estimer les paramètres de mouvement. Ces paramètres caractérisent la localisation de la cible.
Pixel [15] : Une Image est constituée d'un ensemble de points appelés pixels.
Le mot pixel provient d'une abréviation de l'expression britannique PICture ELement. Le pixel
représente ainsi le plus petit élément constitutif d'une image numérique. L'ensemble de ces pixels
est contenu dans un tableau à deux dimensions constituant l'image finalement obtenu. Etant
donné que l'écran effectue un balayage de gauche à droite et de haut en bas, on désigne
généralement par les coordonnées [0,0] le pixel situe en haut à gauche de l'image.
Image [16] : Une image est avant tout un signal 2D (x, y), qui représente souvent une réalité 3D
(x, y, z). D'un point de vue mathématique, une image est une matrice de nombres représentant
un signal; plusieurs outils permettent de manipuler ce signal. Une image contient
plusieurs informations sémantiques, il faut en interpréter le contenu au-delà de la valeur des
nombres.
8
Il existe trois principaux types d'images :
2. les images binaires (uniquement en noir et blanc) et dont la valeur égale soit 0 soit 1.
Un contrôleur de feux est un équipement permettant de veiller au bon fonctionnement des feux
de circulation. Il applique une stratégie de signalisation en enclenchant séquentiellement les
feux. Il est traditionnellement rattaché à un seul carrefour mais peut, dans certains cas, en gérer
plusieurs [1].
Une LED (Light-Emitting Diode) est un composant électronique qui émet de la lumière lorsqu'il
est parcouru par un courant électrique [17].
Un capteur à ultrasons est un dispositif de contrôle industriel qui utilise les ondes sonores
supérieures à 20 000 Hz, trop élevées pour être captées par l'oreille humaine, pour mesurer et
calculer la distance du capteur à un objet cible spécifié [18].
9
I.4. PRESENTATION D’ARDUINO [19].
Tel que l'a toujours dit John NUSSEY, Arduino est un outil, une communauté et une
façon de penser qui transforme notre regard sur la technologie et l'usage que nous en faisons
C’est une plateforme et un outil permettant de construire des dispositifs qui peuvent interagir
avec l'environnement qui les entoure.
Avant d’aller loin, notons que le nom Arduino désigne un ensemble de choses. Il peut
s’agir de la carte Arduino - le matériel - ou de l’environnement Arduino - c’est-à-dire, un logiciel
qui tourne sur notre ordinateur – ou encore d’Arduino en tant que sujet de recherche. La carte
Arduino est un circuit imprimé, spécifiquement conçu pour héberger un microcontrôleur
(d'architecture Atmel AVR comme l'Atmega328p, et d'architecture ARM comme le Cortex-M3
pour l'Arduino Due) et donner accès à toutes ses entrées et sorties.
La carte Arduino Mega 2560 est basée sur un ATMega2560 cadencé à 16 MHz. Elle
dispose de 54 E/S dont 14 PWM, 16 analogiques et 4 UARTS. Des connecteurs situés sur les
bords extérieurs du circuit imprimé permettent d'enficher une série de modules complémentaires.
Le contrôleur ATMega2560 contient un bootloader qui permet de modifier le programme sans
passer par un programmateur.
Caractéristiques principales:
- version: Rev. 3
- via port USB ou de 7 à 12 V sur connecteur alim
- microprocesseur: ATMega2560
- mémoire flash: 256 kB
10
- mémoire SRAM: 8 kB
- mémoire EEPROM: 4 kB
- 54 broches d'E/S dont 14 PWM
- 16 entrées analogiques 10 bits
- intensité par E/S: 40 mA
- cadencement: 16 MHz
- 3 ports série
- bus I2C et SPI
- gestion des interruptions
- fiche USB
- dimensions: 107 x 53 x 15 mm
Un exemple d’image d’une carte arduino MEGA est illustré à la figure ci-dessous :
Dans ce chapitre, nous avons présenté brièvement l’état de l’art en rapport avec les
systèmes de transport intelligents («Intelligent Transport System», ITS); ensuite nous avons
présenté notre approche de gestion du contrôle et de surveillance du trafic routier urbain et par la
suite nous avons présenté quelques notions et matérielles utilisés dans notre système de
contrôle et de surveillance du trafic routier urbain.
11
CHAPITRE II: GENERALITES SUR LE TRAFIC
ROUTIER URBAIN
Dans ce chapitre, nous présentons les éléments de base composant un trafic routier
urbain. Ensuite, nous introduisons quelques méthodes émergentes et ainsi que quelques
notions importantes utilisées pour la régulation du trafic au niveau des carrefours.
La gestion du trafic routier s’inscrit dans le domaine des STI (Système de Transport
Intelligent), qui visent à proposer des outils et modèles afin de gérer les aléas de ce dernier,
ceci par le biais ou non d’équipements réactifs dits dynamiques. L’application de tels
systèmes va avoir de multiples objectifs, parmi lesquels la fluidification du trafic, la
surveillance temps-réel du trafic, la qualité environnementale des transports de personnes
et marchandises, la diffusion d’informations ou de consignes variables aux automobilistes ou
encore la réduction en conséquence de la pollution et des bruits.
Le système qui surveille, contrôle et maintient les feux de circulation d'une manière
complètement automatisée est appelée système automatisé de contrôle de la circulation.
12
II.2. COMPOSANTES DU TRAFIC ROUTIER
Un réseau routier est conçu afin de permettre à ses usagers de se déplacer d’un point
à un autre. Dans ce contexte, il est composé d’un ensemble de routes avec plus ou moins de
voies, en fonction des zones d’activités et des lieux d’habitation. Les croisements entre les
routes étant inévitables en milieu urbain, de par leur concentration, des intersections
permettent de gérer les flux de véhicules entrant en conflit, pour leur sécurité et afin d’éviter
les inters blocages et de permettre aux automobilistes de changer de route. Ces intersections,
ou dans certains cas des carrefours giratoires, régulent le trafic et appliquent généralement des
règles de priorité à droite ou à gauche dans les pays anglais où sont équipés de feux de
circulation pour gérer les situations particulièrement dangereuses [1].
Le réseau routier urbain peut donc être vu comme étant une collection d’intersections, liées
les unes aux autres par des routes, auxquelles peuvent venir se greffer des éléments
opérationnels (panneaux, feux de circulation, etc.).
Comme nous pouvons le voir sur la Figure II.1, un carrefour simple est composé
de quatre routes (ou quatre directions). Une route est caractérisée par sa longueur, son
nombre de voies. Cette figure montre également les zones fonctionnelles : la « zone de
conflit », commune aux deux routes et la « zone de stockage ». On peut aussi définir la «
longueur de stockage » comme la longueur sur laquelle se stockent tous les véhicules
pouvant pénétrer le carrefour pendant la durée du feu vert.
13
Un « mouvement »est défini par son origine et sa destination. Une voie n’est pas allouée à
chaque type de mouvement, mais ceux-ci sont au contraire regroupés en flux sur une même
voie mixte. Un flux de mobiles est donc l’ensemble des mouvements des véhicules qui
proviennent d’une même branche d’accès à un carrefour et qui sont admis simultanément au
moyen d’un même groupe de signaux.
Les indications des feux – vert, orange, rouge – se succèdent à l’intérieur d’un « cycle »,
défini comme étant la durée constante séparant deux passages successifs de l’ensemble des
signaux par le même état. Le cycle est divisé en « phases », temps pendant lequel un ou
plusieurs flux sont admis dans le carrefour.
Une phase est dite spéciale quand elle a pour seul but de favoriser l’écoulement d’un
mouvement tournant. Elle est dite saturée lorsqu’ au moins un véhicule de cette phase est
contraint d’attendre plus d’un cycle pour franchir le carrefour. Le carrefour est lui-même
saturé quand au moins une de ses phases est saturée.
La figure II.2(a) représente la forme générale de ce diagramme. Des variantes existent, telles
que celle suggérée par la théorie des trois phases du trafic [23].
Elle considère un état supplémentaire d’embouteillage, comme représenté sur la figure II.2(b).
Compte tenu de la relation liant les deux variables (le débit et la densité), la loi
d’écoulement du trafic sur une section de route peut donc être formulée par une fonction liant
deux des trois variables : débit, concentration et vitesse. Le diagramme fondamental est
sensible à de nombreux facteurs comme la géométrie de la route, la nature et la composition
du trafic, les conditions météorologiques, les mesures d’exploitation, ...
14
Figure II.2: Diagrammes débit- densité [6].
Les pneumatiques
Les boucles électromagnétiques
Les ultrasons
Le capteur vidéo
15
d’essieux passant sur le capteur en cumulant les impulsions dans un compteur. Les comptages
sont par la suite exprimés en u.v.p (unité de voiture particulière): 1 u.v.p. = 2 essieux.
Ces capteurs, encore répandus pour les comptages routiers, présentent quelques avantages,
notamment :
La facilité de pose
La bonne portabilité de l’ensemble capteur-détecteur
La possibilité de fonctionnement sur batterie procurant une autonomie de plusieurs jours
En revanche, le système est d’un coût moyen élevé. De plus, le câble peut être arraché lors
du passage de véhicules lourds. En régime saturé, l’imprécision peut parfois dépasser les 20%.
Le capteur est constitué d’une boucle inductive, noyée dans le revêtement de la chaussée. Le
passage de la masse métallique d’un véhicule au-dessus de la boucle provoque une variation
du champ électromagnétique. Cette variation se traduit par un créneau de tension dont la
longueur est liée à celle du véhicule et à son temps de passage.
Avec une seule boucle par voie, on mesure bien sûr le débit mais aussi le taux d’occupation t,
défini par :
∑
= (II.1)
16
Figure II.3: Principe de fonctionnement d'un capteur à ultrasons HC-SR04
Où :
- t étant le temps qui s’écoule entre le début de l’émission et le début de la réception
- et v étant la vitesse du son qui est de 340 m.s-1.
Caractéristiques technique d’un capteur à ultrason HC-SR04:
17
II.4.4. Le capteur vidéo
Ce domaine fait aujourd’hui l’objet de nombreuses recherches, particulièrement
dans le cadre européen. Le principe de ce capteur consiste à utiliser une caméra vidéo et à
traiter de manière automatique les images fournies par cette caméra afin d’en déduire les
paramètres du trafic. Dans la suite de ce présent travail, nous allons nous focaliser sur ce
capteur vidéo.
On distingue généralement deux catégories de capteurs: les capteurs intrusifs (qui sont
installés dans la chaussée) et les capteurs non-intrusifs (installés aux abords des routes, en
portique ou berne centrale ou encore embarqué dans des véhicules).
Les capteurs intrusifs sont la plupart du temps des boucles inductives, placées dans chaque
voie de circulation, qui vont réagir au passage des véhicules.
Cependant, l'inconvénient majeur des boucles inductives est la nécessité d'intervenir dans la
route (et donc de perturber le trafic) pour l'installation et la maintenance, nécessitent une
durée d’installation beaucoup plus longe comparativement à un capteur non-intrusif
(camera).
De plus, les boucles inductives sont limitées à des fonctions de comptage, de mesure et de
classification individuelle par bande de circulation. Les capteurs non-intrusifs sont des
senseurs distants qui utilisent diverses technologies: laser, ultrasons ou vidéo.
Cependant, la caméra est devenue aujourd'hui un capteur fiable et très peu coûteux,
elle fournit une représentation (images) directement exploitable par l'être humain, car elle
fournit un signal proche de celui perçu par le cerveau et surtout l’œil, qui en est un de ces
capteurs privilégiés, de plus les systèmes basés sur la vision par ordinateur ont démontré leur
efficacité pour des applications d’aide à la conduite. Voilà pourquoi un système basé sur la
18
vision par ordinateur me semble logique si on envisage d’implémenter une technique à la
fois rapide, flexible et moins chère.
L’intérêt des feux de circulation en milieu urbain n’est plus à démontrer. En premier
lieu, ils servent à la sécurité des utilisateurs, sur des carrefours (ou intersections dans la suite
du document) subissant une charge suffisamment importante pour être considéré dangereux.
Sans ces systèmes, si plusieurs flux de véhicules importants venaient à se croiser sur une
intersection, le comportement individualiste des utilisateurs rendrait la traversée des
carrefours périlleuse et augmenterait le temps perdu.
La mise en place des séquences temporisées permettant de régir le passage des véhicules
Le premier feu de circulation aurait ainsi été installé à Londres le 10 décembre 1868,
sous la forme d’une lanterne à gaz pivotante aux couleurs rouge et verte. Pour fonctionner, il
était nécessaire qu’un agent de police soit présent pour la manœuvrer. Aujourd’hui, et dans
de nombreux pays, il est courant de voir des feux de circulation dont les ampoules sont
remplacées par des diodes électroluminescentes et qui affichent le décompte des secondes
restant avant un changement d’état [1].
19
II.7. SYSTEME DE CONTROLE OU DE REGULATION DU TRAFIC
EXISTANT
Dans cette partie, nous présentons différents système existant utilisé pour contrôler
le trafic et leurs inconvénients sont discutés ci-dessous:
20
Le principal inconvénient est que l'algorithme de contrôle ne vise que les véhicules sur le feu
vert sans tenir compte du nombre de véhicules en attente au niveau des feux rouges.
Dans un Système de contrôle du trafic par traitement d'image, une caméra est
installée à côté de feu de signalisation, capture les séquences d'image, et ensuite analyse ces
images. Le système détecte les véhicules à travers des images au lieu d'utiliser des capteurs
électroniques intégrés dans le trottoir.
Le traitement d'image est une meilleure technique pour contrôler le changement
d'état de feu de circulation ainsi que du trafic. Cela montre qu'il peut réduire la congestion
du trafic et éviter que le temps ne soit gaspillé par un feu vert sur une route vide. Il est
également plus cohérent dans la détection de la présence du véhicule car il utilise des images
de trafic réelles. Il visualise la réalité afin qu'elle fonctionne bien mieux que les systèmes qui
dépendent de la détection du contenu métallique des véhicules.
21
II.8. GESTION DU TEMPS DE FEUX VERT [1]
Un cycle se décompose en plusieurs phases, qui ont chacune une durée de feu vert qu’il
est primordial de bien régler. En effet, une phase trop courte peut ne pas laisser suffisamment de
temps à une file de se décharger. À l’inverse, une phase trop longue augmente le temps d’attente
des automobilistes présents sur les autres phases, sans être utile.
Le temps de feu vert pour une phase i est généralement calculé proportionnellement au temps
de cycle, en fonction de différentes contraintes (p. ex., statistiques connues de débit ou d’attente).
Dans certains systèmes, ce temps est calculé dynamiquement et est borné entre un temps
minimal et un temps maximal [30]. Une fois le temps de feu vert minimal écoulé, un
La somme des durées de chaque phase, en tenant compte des temps intermédiaires, doit être égale
au temps de cycle. Ceci est vérifié par la relation suivante :
=∑( + + ) (II.2)
Figure II. 3: Illustration des différents temps de feu vert pour une phase [1].
Notons que le temps de feu vert maximal a fait l’objet de nombreuses études. Les
auteurs de [31] observent qu’il doit se situer entre 30 et 60 secondes. Dans [32], il est
suggéré que ce temps maximal doit être assez long pour laisser passer 1,3 fois la longueur
moyenne de la file concernée. Néanmoins un feu vert maximal élevé n'a que peu d'impact sur
un system adaptatif, si le trafic est peu important. Ce qui est tout à fait le cas contraire pour
un système à temps fixe (carrefour à temps fixe).
22
II.9. CONCLUSION PARTIELLE
Dans ce chapitre, nous avons présenté les éléments de base composant un trafic
routier urbain. Ensuite, nous avons introduit quelques méthodes émergentes et ainsi que
quelques notions importantes utilisées pour la régulation du trafic au niveau des carrefours.
23
CHAPITRE III. CONCEPTION DU SYSTEME
Dans ce chapitre, nous présentons l'architecture principale de notre système. Ensuite,
nous présentons différentes approches et mécanismes que nous avons utilisés pour assurer une
bonne gestion de contrôle et de surveillance du trafic routier urbain.
Pour parvenir à la réalisation de notre système, nous avons implémenté l’architecture matérielle
ci-dessous.
Camera
LED
CPU
Microcontroller
Line
Accès Internet
Capteur à ultrason HC-SR04
GSM
Le microcontrôleur est le cœur du système, il est celui qui se charge d’ajuster le feu de
circulation (LED) en fonction des informations fournies par le CPU.
Le GSM joue le rôle d'un écouteur du microcontrôleur, pour détecter une présence
éventuelle d'un véhicule d'urgence, ambulance, VIP, cortège, etc.
Le capteurs à ultrasons HC-SR04 a pour rôle principale de pouvoir détecter la préséance d'un
véhicule (conducteur) qui viole la loi de circulation, par exemple lorsque qu'un véhicule
essaye de passer pendant que le feu de circulation est rouge.
24
III.2. REGULATION DES FEUX DE CIRCULATION
Cependant, l'étape de la détection du véhicule reste la partie la plus primordiale; nous allons
essayer d'élucider la manière dont on parvient à détecter le véhicule dans le sous point
suivant.
25
Création de la base d'apprentissage:
Image Positive et image Négative
Détecter le véhicule
Les étapes 1 à 3 sont exécutées une seul fois, et les étapes 4 à 7 sont exécutées d'une
manière répétitive et simultanée en temps réel.
Dans ce système proposé, nous donnons l'illustration d'un processus décisionnel pour le
contrôle des feux de signalisation qui est décrit ci-dessous (Tableau III.1).
26
La sortie de la caméra sera balayée deux fois pour vérifier le l'état de la circulation ; ce
balayage est décrit dans le Tableau III.1 comme cam_check_1 et cam_check_2, où N est le
nombre de véhicules détecté par le système.
Tout en nous référant au diagramme fondamental du trafic ainsi qu’à la théorie des trois
phases du trafic (figure II.2), nous avons considéré trois conditions de circulation différentes,
notées comme situation_1, situation _2, et situation _3.
Nous signalons que la valeur seuil du nombre de voitures peut varier en fonction de
la taille de la route, ainsi que de la hauteur, de l'angle de positionnement de la caméra, dans
notre cas la valeur seuil est estimer à 33 voitures:
On/Off Time( On/Off Time( On/Off Time( N >33 N<33 N >33 N<33
Sec) Sec) Sec)
1 5s 0 0s 0 0s 1 0
Embouteillage 0 0s 1 60s 0 0s
0 0s 1 30s 0 0s 1 0
0 0s 0 0s 0 0s
Situation_2 Yellow Green Red
On/Off Time( On/Off Time( On/Off Time( N >33 N<33 N >33 N <33
Sec) Sec) Sec)
Intermédiaire 1 5s 0 0 1 0
0 0s 1 60s
0 0s 0 0s 0 0s 0 1
Situation_3 Yellow Green Red
On/Off Time( On/Off Time( On/Off Time( N >33 N<33 N >33 N <33
Sec) Sec) Sec)
Fluide 1 5s 0 0s 0 1
0 0s 1 30s
0 0s 0 0s 0 1
Comme nous travaillons avec une intersection à quatre voies (routes), pour l'instant,
nous allons nous focaliser (simuler) sur une seule route. Pour chaque route, nous vérifierons
deux fois la circulation.
Nous allons démontrer dans la suite que nous pouvons couvrir près de 33 voitures (32,66
voitures exactes) avec notre caméra pour une route spécifique.
Donc, nous allons considérer un seuil de 33 voitures, cela signifie que si notre caméra vidéo
pourrait détecter 33 voitures, alors le CPU enverra un caractère spécifique à la carte
Arduino via un port de communication, le microcontrôleur prendra alors une discision en
fonction du nombre de véhicules détecté.
27
Nous avons pour cela 3 types des situations:
Situation 1 (Embouteillage Majeur): où le système détecte un nombre de
véhicules supérieur ou égale à N pour la première fois; le microcontrôleur alloue
une période de 60 secondes au feu vert, et si encore pour la deuxième
vérification après 56 secondes le système détecte toujours un nombre supérieur
ou égale à N dans ce cas le microcontrôleur ajoutera encore 30 secondes de
surplus pour le feu vert. Dans cette situation, le temps Maximale pour le feu vert
est de 90 secondes.
La gestion de véhicule des priorités (ambulance, véhicule VIP,...) est possible grâce
à un shield GSM, qui devra recevoir un SMS en provenance d'un véhicule de priorité; le
shield GSM envoie à son tour l'information au microcontrôleur, ce dernier analyse
l'information reçue, prend une décision et ajuste le feu de circulation en fonction de
l'information reçu; face à cette situation exceptionnelle, le microcontrôleur alloue un temps de
feux vert de 90 Secondes.
28
Nous avons choisi d'estimer un temps de feu vert de 90 secondes pour différentes raisons:
Nous ne connaissons pas avec exactitude le nombre des véhicules qui sépare le
véhicule d'urgence et le point de feu vert,
il peut s'agir d'un cortège présidentiel, mariage, enterrement, .... d'où le nombre de
véhicule qui forme le cortège nous est inconnu.
Le message qu'un utilisateur peut envoyer au système est de la forme: source_destination ;
avec ces deux informations le système est en mesure de pouvoir détecter la destination du
véhicule et alors le microcontrôleur ajustera le feu de circulation en fonction de cela.
Par exemple comme nous avons une intersection à 4 entrées (routes), les routes sont
numérotées de gauche vers la droite en utilisant les 4 lettres de l'alphabet: A, B, C, D.
29
III.3.1. Mesures de sécurité
Pour des raisons de sécurité, nous avons pris en compte différentes spécifications:
1) Tous les véhicules d’urgence doivent être enregistrés avec 2 numéros de téléphone (un
numéro principale et un numéro secondaire) aux près de la police de circulation. Seul un
numéro enregistré sera en mesure de pouvoir utiliser le module de gestion de priorité de
véhicules d'urgence.
3) Un numéro de Téléphone ne peut pas utiliser plus d'une seul fois le module de gestion de
priorité dans un intervalle inférieur à 5 minutes.
30
III.4. GESTION D'INFRACTIONS AU NIVEAU DES FEUX DE
CIRCULATION
Le système est conçus de manière à pouvoir détecter et identifier tout véhicule qui
viole la loi de circulation et spécialement au niveau de feux de circulation. Pour mettre en
œuvre cette fonctionnalité deux élément doivent intervenir notamment: une caméra et un
capteur à ultrason HC-SR04. Comme nous avons au total une intersection à 4 routes, ce deux
éléments sont multipliées par 4 (d'où on aura 4 cameras et 4 capteurs à ultrason HC-SR04).
Un exemple du fonctionnement du module est illustré à la figure ci-dessous:
1. le Feux de Circulation est Rouge; 2. une caméra pour capturer l'image du véhicule en
infraction, 3. un capteur à ultrason HC-SR04 pour détecter la préséance du véhicule.
Une fois que le feu de circulation est rouge, le microcontrôleur active un capteur à
ultrason HC-SR04, celui-ci devra détecter tout passage d'un véhicule. Si une fois un véhicule
est détecté alors le microcontrôleur recevra le signal et activera à son tour une caméra qui
devra capturer l'image du véhicule et l'enregistrer dans un répertoire. Pour éviter de trop
surcharger l'unité de contrôle de feux de circulation, toutes les images (véhicules) capturées
pendant la journée doivent être envoyées automatiquement vers minuit (par exemple vers 1
heure du matin) à un serveur de données de la police de circulation routière.
Une fois que les données sont arrivées, reçues et archivées au niveau du serveur de la police
de circulation, la police de circulation décide et génère une amande d'infraction en fonction
de la loi en vigueur du pays.
31
III.5. GESTION D'INFRACTIONS AU NIVEAU DE LA VOIE DE
CIRCULATION
600 ± 5m
Dans le processus de récupération des données, le camera est placée sur un support
métallique ou en béton avec une hauteur de ± 5 mètres. Cette hauteur est la hauteur standard d'un
pont routier qui nous permettra aussi de bien visualiser la plaque d'immatriculation du mobile.
La détermination de l'angle β de 60º est basée sur la recherche qui a été menée par Li, et al. [33].
Selon Li, à β=60º d'angle, le résultat de la mesure est plus précis et optimal (où β est l’angle
d’inclinaison de la camera face à la voie de circulation).
32
III.5.2. Conception du programme
A. Distance d'étalonnage
33
Vidéo Prétraitement du Modélisation de l'arrière-plan Vidéo
processus (Background Modeling)
Foreground Extraction
Détection du Mobile
Détermination de la
vitesse du Mobile
Ligne A Ligne B
(x2,y2)
(x1,y1)
X
t1 t2
DistanceEtalonnage
Figure III.7: Schéma de configuration pour la déduction de la vitesse du Mobile
34
5. Détermination de la vitesse du Mobile: la phase de détection de la vitesse du mobile
intervient après celle de détection du mobile, la vitesse du mobile s’évalue comme suit :
vitesse = (III.3)
35
CHAPITRE IV: ANALYSE FONCTIONNELLE
ET MODELISATION DU SYSTEME
Dans cette partie, nous allons nous focaliser sur l'analyse fonctionnelle du système.
Pour cela nous allons faire intervenir la méthode d’analyse fonctionnelle selon SA-RT
(Structured Analysis-Real Time). Pour compléter cette phase d'analyse fonctionnelle nous
allons aussi faire recours au diagramme de cas d’utilisation du système.
La méthode SA-RT est une méthode d’analyse fonctionnelle et opérationnelle des
applications de contrôle-commande. Cette méthode permet de réaliser une description
graphique et textuelle de l’application en termes de besoins, c’est-à-dire de « ce que l’on a à
faire » ou le « quoi » (What ?) [36].
36
IV.1.2. Diagramme de contexte
Mise_en_marche
Module GSM
Etat_urgence
Etat_infraction
HC-SR04
37
Signal_Etat_trafic Acquérir
feu_circulation commande_feu
Etat_trafic
1
Mise_en_marche 3
Consigne_Etat_trafic E/D
E/D
Signal_Etat_accident
Rappelons que l’événement couplé «E/D» est utilisé pour piloter un processus
fonctionnel de type «boucle sans fin» et l’événement «T» est utilisé pour activer un processus
fonctionnel de type «début-fin »
Un acteur représente l'abstraction d'un rôle joué par des entités externes (utilisateur,
dispositif matériel ou autre système) qui interagissent directement avec le système étudié.
38
La mise en marche du système nécessite essentiellement un acteur principale et 4 cas
d'utilisation:
Détecter Infraction,
Réguler Feux Circulation,
Détecter véhicule de Priorité,
Détecter accident,
uc UC
SCSTR
Réguler Feu
Circulation
Détecter Infracttion
Détecter Accident
39
Tableau IV. 3: Documentation du diagramme de cas d’utilisation «Détecter Infraction»
40
Tableau IV.5: Documentation du diagramme de cas d’utilisation «Détecter Accident »
Dans la partie précédente, nous avons présenté les différents diagrammes de cas
d’utilisation, le diagramme de contexte, ainsi que le diagramme préliminaire qui nous
décrivent un comportement fonctionnel du système. Cependant, dans cette partie du
chapitre, nous allons présenter en détails le comportement dynamique du système en
faisant appel à la méthode de conception DARTS ainsi qu'au diagramme d'activité d'UML.
41
IV.2.1. Les syntaxes graphiques de la méthode DARTS [36]
En premier lieu, nous trouvons la tâche qui représente l’entité de base de l’architecture
multitâche. Nous pouvons avoir un ou plusieurs flots de données en entrées et un ou plusieurs
flots de données en sortie. Les tâches sont modélisées par un parallélogramme qui comporte une
étiquette ou label explicite comme illustré par la figure IV.4.
Signal d'activation
Acquérir_Etat_Trafic Sortie
Entrée
Entrée
Figure IV.4: Représentation des tâches
Synchronisation unique
Signal « Horloge temps réel – HTR ». Ce signal, qui provient d’une horloge matérielle
interne à l’ordinateur, correspond à un signal rigoureusement périodique.
Signal «Interruption – IT ». Ce signal qui provient du procédé externe doit toujours être
considéré comme apériodique du fait de l’asynchronisme du monde extérieur par rapport au
cadencement de l’ordinateur.
42
Signal «Chien de garde – CG ». Ce signal provient d’une horloge interne utilisée comme
un réveil. En termes de signal, il est identique à l’horloge temps réel (signal interne) ; mais il
se produit de façon apériodique.
Les activations sont donc représentées par un symbole orienté (ligne brisée) avec
une étiquette ou label explicite comme illustre ci-dessous :
Acquérir_Etat_Trafic
Signal Etat_Trafic
Figure IV. 6: Activation des tâches.
Le dernier élément à modéliser est le module de données qui permet une protection
des accès à une unité de gestion de données en exclusion mutuelle par deux ou plusieurs
tâches.
Les modules de données sont représentés par un rectangle associé à des entrées permettant de
réaliser une action sur les données : READ, WRITE, etc. Ce symbole du module de données
est représenté avec une étiquette ou label explicite formé de :
Read
Write
43
IV.2.2. Description du diagramme d’activité du cas d’utilisation « Réguler
Feu Circulation »
Activity Initial
Détecter Véhicule
Appliquer Algorithme
Activity Final
Figure IV. 8: Description du diagramme d’activité du cas d’utilisation « Réguler Feu Circulation »
Sur la figure ci-dessus, nous avons fait une représentation graphique du diagramme
d'activité permettant de représenter le déclenchement d'événements en fonction de l’état
du système pour le cas du diagramme de cas d’utilisation « Réguler Feu Circulation».
44
IV.2.3. Description du diagramme d’activité du cas d’utilisation « Détecter
Véhicule de Priorité »
act Détecter Véhicule de Priorité
Verifier Numéro
[ ! OK ]
ActivityFinal
[ OK ]
Vérifier Compteur
[ cp >1 ]
[ cp <2 ] ActivityFinal
Incrémenter Compteur
Activity Final
Figure IV. 9: Description du diagramme d’activité du cas d’utilisation « Détecter Véhicule de Priorité »
45
IV.2.4. Description du diagramme d’activité du cas d’utilisation « Détecter
Infraction»
act Détecter Infraction
Activity Initial
Determiner
Activ er Capteur IR Activ er Capteur Video DistanceEtalonnage
Modéliser Arrière-plan
Détecter Véhiculer
Detecter Foreground
[ ! detected ]
[ ! detected ]
[ detected ] Activity Final
Activity Final
Capturer Image [ detected ]
Activity Final
Detecter VitesseMobile
[ normal ]
Capturer ImageMobile
Sauv egarder
ImageMobile
Activity Final
Figure IV. 10: Description du diagramme d’activité du cas d’utilisation « Détecter Infraction»
Sur la figure ci-dessus, nous avons fait une représentation graphique du diagramme
d'activité et une modélisation des comportements pouvant être en parallèles permettant de
représenter le déclenchement d'événements en fonction de l’état du système pour le cas
d’utilisation « Détecter Infraction».
46
IV.2.5. Description du diagramme d’activité du cas d’utilisation « Détecter
Accident»
act Détecter Accident
Détecter Accident
Activity Initial
[ ! Level_OK ]
Env oyer Notification
ActivityFinal
Activity Final
Sur la figure ci-dessus, nous avons fait une représentation graphique du diagramme
d'activité permettant de représenter le déclenchement d'événements en fonction de l’état
du système pour le cas d’utilisation « Détecter Véhicule de Priorité».
47
IV.2.6. Diagramme Multitâche DART du système
HTR(N)
IT (Evt_Etat_urgence)
Acquérir Write
Signal_Etat_trafic Write Détecter
Etat_trafic Etat_urgence
Etat_trafic Etat_urgence Signal_Etat_urgence
Read
Read
IT (Evt_feu_rouge)
Evt_feu_rouge_true Controller Commande_feu
feu_circulation
Détecter
Etat_infraction Réguler Trafic Niveau_Trafic
Signal_Etat_infraction
Etat_infraction Capturer
IT (Evt_vitesse_limite)
image_infraction
Détecter
Etat_infraction
Signal_Etat_infraction Etat_infraction
Write
IT (Evt_Etat_accident) Read
Détecter
Etat_accident Image_infraction
Signal_Etat_accident Write
Read
Donnée_accident
Figure IV.12: Diagramme multitâche DARTS du système.
48
Sur la figure ci-dessus, nous avons fait une représentation graphique du comportement
dynamique multitâche du système en faisant appel à la méthode de conception DARTS.
49
CHAPITRE V. EXPERIMENTATION ET ESTIMATION DU
COUT DU PROJET
V.1. EXPERIMENTATION
Le système est constitué de deux parties principales; chacune de ces parties sera codée dans
un langage de programmation spécifique:
le CPU sera codé en C++ et utilisera les bibliothèques OpenCV pour pouvoir prendre
des photos (ou image vidéo en temps réel) à l’aide d'une caméra. Cette dernière est
considérée comme l'œil du système et a comme fonction principale de fournir au
microcontrôleur les informations sur l'état du trafic.
le microcontrôleur sera codé en langage Arduino, son rôle sera d’ajusté le feu de
circulation en fonction de l'état du trafic tout en implémentant la logique que nous
avions élaborée (Tableau III.1).
A. Environnement du travail:
50
B. Environnement Logiciel:
Lors du développement de notre projet, nous avons utilisé les outils suivants :
1. Qt Creator (Community, Version 3.3.1, Basé sur Qt 5.4.1 (MSVC 2010,32 bit)):
Cette IDE nous a servi comme éditeur du code en langage C++, sous le compilateur
CGUI
2. l'IDE Arduino (Version 1.6.2): Vu que notre microcontrôleur (ATMega2560) sera
code en langage arduino et que ce dernier repose sur le matériel et logiciel. Cet IDE nous
a servi comme éditeur du code en langage Arduino.
3. Proteus ISIS Professional (version 7.10): Vu que notre système est basé sur quelque
capteurs et composants électroniques, le logicielle Proteus ISIS nous a bien servi pour la
modélisation et la simulation de schéma électroniques.
Images Positives:
Images négatives:
51
V.1.3. Fixation de la caméra (positionnement de la caméra)
Le fonctionnement du système repose sur la détection des véhicules. La qualité des
images vidéo est un facteur important pour la robustesse et la précision du système. Pour
détecter une voiture ou tout autre véhicule, le positionnement de la caméra est une phase très
importante pour une détection précise de véhicule.
La hauteur et l'angle parfaits pour la caméra permettent une grande précision pour la
détection de voitures, en assurant la plus grande couverture de la région. Plus la couverture de
la caméra est élevée, meilleure est la décision que prendra le système.
Dans le cadre du présent travail, en fonction des données enregistrées, nous estimons que la
caméra doit être positionnée dans une certaine gamme de hauteur afin que le système puisse
détecter autant de voitures que possible sur une route.
Après avoir pris des échantillons à différentes hauteurs, nous avons constaté que lorsque la
hauteur de la caméra est au-delàs de 7,62 m elle nous donne le meilleur résultat.
52
L’estimation du champ de vision de la caméra est illustrée par la figure ci-dessous :
β
62, 53 m
7, 62 m
A 90
0
& C
62, 06 m
Figure V. 4: Estimation du champ de vision de la caméra
Supposons que nous avons une route à 4 colonnes des voitures, ainsi nous nous retrouverons
avec 8,1658 × 4 = 32,66 voitures (33 voitures approximativement).
Nous signalons que l'objectif principale est de pouvoir couvrir le plus d'espace que
possible (accroitre les distances AC et AB) en vue de pouvoir détecter plus des véhicules que
possible.
53
V.2. SCHEMA ELECTRONIQUE DU PROJET
SONAR1
4
ULTRASONIC SENSOR
[Link]
R2 TestPin
R5 R6
220k
220k 220k
TestPin
D4 D5
Trigger
D6
Echo
LED-GREEN LED-YELLOW
Gnd
+5V
[Link]
LED-RED
DUINO1 +5V
ARDUINO MEGA2560 R3 Trigger
Echo
Gnd
R3
220k
1 D7
RESET
AREF D2 SONAR4
LED-GREEN ULTRASONIC SENSOR
PB7/OC0A/OC1C/PCINT7
13 R9
12
PB6/OC1B/PCINT6 LED-GREEN
D8 A0 PB5/OC1A/PCINT5
11 10k
A1
PF0/ADC0
PB4/OC2A/PCINT4
10 D1
A2
PF1/ADC1
PH6/OC2B
9 R1
PF2/ADC2 8
R10 A3 PH5/OC4C
PWM
LED-YELLOW PF3/ADC3 220k
10k A7 LED-YELLOW
PF7/ADC7/TDI 7
A6 PH4/OC4B
ANALOG IN
A5
PF6/ADC6/TDO
PH3/OC4A
6 D3
D9 PF5/ADC5/TMS R8
ATMEGA2560
5
16AU 1126
A4 PE3/OC3A/AIN1
PF4/ADC4/TCK 4
[Link]
PG5/OC0B
3 10k
A8 PE5/OC3C/INT5 LED-RED
PK0/ADC8/PCINT16 2
3
LED-RED A9 PE4/OC3B/INT4
PK1/ADC9/PCINT17 1
R11 A10 TX0 PE1/TXD0/PDO
PK2/ADC10/PCINT18 0
10k A11 RX0 PE0/RXD0/PCINT8
PK3/ADC11/PCINT19 COMUNICATION
A12
PK4/ADC12/PCINT20 14
A13 TX3 PJ1/TXD3/PCINT10
PK5/ADC13/PCINT21 15
A14 RX3 PJ0/RXD3/PCINT9
PK6/ADC14/PCINT22 16
A15 TX2 PH1/TXD2
PK7/ADC15/PCINT23 17
RX2 PH0/RXD2
18
TX1 PD3/TXD1/INT3
19 GSM1
RX1 PD2/RXD1/INT2
20 Power BTN
PB2/MOSI/PCINT2
PB3/MISO/PCINT3
SDA PD1/SDA/INT1
PB1/SCK/PCINT1
21 NEXT [Link]
PB0/SS/PCINT0
SCL PD0/SCL/INT0
DIGITAL
SONAR3
PL5/OC5C
PL3/OC5A
PL4/OC5B
PL0/ICP4
PL1/ICP5
PG2/ALE
PA7/AD7
PA6/AD6
PA5/AD5
PA4/AD4
PA3/AD3
PA2/AD2
PA1/AD1
PA0/AD0
PC2/A10
PC4/A12
PC5/A13
PC6/A14
PC7/A15
STATUS
PG0/WR
PC3/A11
PG1/RD
ULTRASONIC SENSOR
PC0/A8
PC1/A9
PD7/T0
PL2/T5
PL6
PL7
ON SIM900D
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
TXD
[Link]
RXD
S2-1041Y-Z097C
Gnd
CE0980
Echo
Trigger D11 D10 D12
+5V LED-GREEN LED-YELLOW LED-RED
SIM Card
R7 R13 SIM900D-GREEN
TestPin
220k
SONAR2
[Link]
ULTRASONIC SENSOR
TestPin
2
Figure V. 5: schéma électronique du projet
54
Sur la figure V.5, est illustré le schéma électronique du projet commandé par un
microcontrôleur ATMega2560, hormis la partie CPU qui est liée directement aux différentes
caméras. Nous avons utilisé la carte arduino méga, vu que cette dernière a plusieurs broches
(53 digitales et 16 analogiques) et que nous avons plusieurs composants à y brancher. Elle est
alimentée avec source de tension de 9 Volts via le port Universal Serial Bus (USB) de
l’ordinateur.
Sur la figure ci-dessus (figure V.6) est illustré l’état du trafic routier avant la détection
(comptage du nombre des véhicules) par le système.
55
Sur la figure ci-dessus (figure V.7) est illustré l’état du trafic routier après détection
(comptage du nombre des véhicules) par le système. Cette détection indique qu’il y a 11
véhicules comptés sur la route.
Sur la figure ci-dessus (figure V.8) est illustré l’output console du système indiquant
l’heure, la date et le nombre des véhicules détectes (11 véhicules détectes) par le système pour
le cas du module de comptage de véhicule.
Sur la figure ci-dessus (figure V.9) est illustré l’état du trafic routier après détection
d’accident par le système.
56
B.2. Output console du système :
Sur la figure ci-dessus (figure V.10) est illustré l’output console du système du
module de détection d’accident indiquant l’heure, la date, le lieu et l’accident détecté par le
système.
Sur la figure ci-dessus (figure V.11) est illustré un processus de détection de la vitesse
du véhicule par le système pour le cas du module de détection du dépassement de la vitesse
limite.
57
C.1. Output console du système :
Sur la figure ci-dessus (figure V.12) est illustré l’output console du système pour le
cas du module de détection du dépassement de la vitesse limite, indiquant l’heure, la date, et
la vitesse du mobile détecté par le système.
A. COUT MATERIEL:
Le tableau ci-dessus (Tableau V.1), nous donne une illustration du coût et des
différents matériels nécessaire pour la mise en place de notre système. Pour cela le coût
matériel est estimé à 1 033 USD.
58
B. Cout Logiciel avec COCOMO:
Constructive Cost Model« COCOMO » c’est un modèle qui permet d'estimer le coût,
l'effort et le temps nécessaire au développement d’un logiciel. La méthode COCOMO se base
sur une approche algorithmique pour déterminer « l’effort » et le « temps de développement »
d’une application. Son principe est basé sur le nombre de lignes de code en Kilo (KLOC)
[37].
Module Fonctionnalité
Gestion Feu_circulation - Détecter véhicule,
- Regulerfeu_circulation,
- Détecter véhicule_prioritaire.
Le tableau ci-dessous (Tableau V.2) donne les différents modules principaux de notre
système.
59
2) Intrants aussi appelés entrés externes
Le tableau ci-dessus (Tableau V.4) représente la somme de tous les intrants du système
estimé à 5 intrants.
Ainsi, les points de fonction non ajustés sont calculés avec la grille suivante :
Composantes TOTAL
Simple Moyenne Complexe
Dépôt internes 0 0 6 56
Intrants 0 1 0 3
Nombre de point de fonction non ajustée 59
Le tableau ci-dessus (Tableau V.5) représente la somme de tous les points de fonction non
ajustée qui est estimée à 83 points de fonction non ajustée.
Les facteurs d’ajustement à prendre en compte pour calculer les points de fonctions sont :
60
Le tableau ci-dessus (Tableau V.6) illustre la répartition du degré d’influence en fonction
des différents facteurs qui est estime à 33 degrés d’influence.
Nous allons subdiviser notre point de fonction en deux en fonction de ces deux langages de
programmation (C++ et arduino):
D’où le PFA pour le C++ = 34 * 0,98= 33,32 et le PFA pour Arduino =25*0,98= 25,5
61
Pour réaliser notre application il faut :
En faisant la somme des lignes de code nous obtenons : 2 906, lignes de code soit 1 732,64 +
1 173.
En considérant que notre projet est Médian. Les paramètres pour le calcul de l’effort et de la
durée suivant COCOMO basique sont :
HM COCOMO basique = 2.4 *(KDSI) 1,12 avec KDSI : taille en millier des codes sources
livrées
D’où HM COCOMO basique = 2.4 *(2,90) 1,12 = 7,91 HM
, ,
= , ×( ) = , ×( , ) =5,16 Mois
62
é= = , /
,
,
= = ,
,
63
Tableau V.11: Synthèse du cout Logicielle
Le tableau ci-dessus (Tableau V.11) donne le coût total du logiciel qui est estimé à
3 600 USD
64
CHAP VI. CONCLUSION GENERALE ET PERSPECTIVES
Nous voici au terme de notre travail qui a porté sur le « contrôle et surveillance du
trafic routier urbain».
Au fil de ce document, nous avons vu plusieurs aspects de la gestion du trafic routier urbain et
par la suite nous avons présenté et implémenté un système qui réalise automatiquement et
en temps réel le contrôle et la surveillance du trafic routier urbain. En fusionnant les
résultats de plusieurs approches complémentaires, ce système implémenté donne un
ensemble des pistes des solutions face aux problèmes rencontrés dans la gestion du trafic
routier urbain (congestion du trafic, feux de circulation, tracasseries, accidents, véhicule
d’urgence,…). Ainsi nous pouvons qualifier ce système d’un :
système qui utilise le technique de vision par ordinateur pour réguler le feu de
circulation d’une manière intelligente, adaptative et efficace en prenant des images en
temps réelle de l’état du trafic à une jonction;
système de contrôle de feu de circulation intégrant la gestion des véhicules d’urgence
ou prioritaire par utilisation de la technologie GSM;
système de détection du dépassement de la vitesse limite ainsi que celui de détection
des accidents observé au niveau de la voie de circulation ;
système de détection d’infraction au niveau du feu de circulation et sur la voie de
circulation.
Certes ce système reste perfectible mais il pourrait constituer une base de réflexion
pour la promotion de solutions informatiques.
Pour parvenir à implémenter notre système de contrôle et surveillance du trafic urbain, nous
sommes passés par plusieurs phases :
65
La deuxième phase quand à elle consistait tout d’abord à introduire quelques notions
importantes sur le trafic routier urbain et sur quelques systèmes régulation du trafic existant;
en suite nous avons aussi parlé des différents capteurs de mesures usuelle du trafic. De cella
nous avons montré que le capteur vidéo est un capteur fiable et très peu couteux. Nous
avons opté pour l’utilisation d’un capteur vidéo qui est adapté aux exigences et objectifs de
notre travail. Ainsi, nous avons conclu qu’un système basé sur la vision par ordinateur nous
semble beaucoup plus logique si on envisage implémenter une technique à la fois rapide,
flexible et moins chère.
Dans la troisième phase, nous avons commencé d’abord par une étude conceptuelle,
dans cette partie nous avons présenté et décri l’architecture matériel de notre système;
ensuite nous avons présenté la logique de fonctionnement (logiciel, matériel, mesure de
sécurité) du système. Par la suite nous avons entamé l’étape d’analyse fonctionnelle et
modélisation du système; dans cette étape nous avons réalisé une description graphique et
textuelle de l’application (du système) en faisant recours au diagramme de cas d’utilisation,
d’activité et aussi aux méthodes d’analyse et conception d’application contrôle-comment
de SA-RT et DARTS.
Suite aux éléments de nos hypothèses et vue les résultats des différentes phases énoncées ci-
haut, nous confirmons nos hypothèses avec certitude que :
66
Comme perspective, nous proposons de continuer par le développement et l’intégration
d’un module de détection des plaques d’immatriculation ainsi que celui d’une recherche
exhaustive d’un véhicule suspect ou en poursuite par le service de la police de circulation
pour essayer de renforcer la fréquence de contrôle et de surveillance du trafic routier.
67
BIBLIOGRAPHIE
A. REFERENCES :
[1] F. Sébastien, «Contrôle et gestion du trafic routier urbain par un réseau de capteur sans fils,»
Paris telecom, Paris, pp.2-5, 2014.
[2] F. KSONTIN, Modèle d’agent fondé sur les affordances : application à la simulation de trafic
routier, Université de VALENCIENNES ET DU HAINAUT-CAMBRESIS, pp. 6-19, 2013.
[3] J.-C. Tai, S.-T. Tseng, C.-P. Lin et K.-T. Song, «Real-time image tracking for automatic traffic
monitoring and enforcement applications,» IJART, vol. 3, n° 25, pp. 5-7, 2016.
[4] B. Zhou, «Adaptive Traffic Light Control in Wireless Sensor Network-Based Intelligent
Transportation System,» Vehicular Technology Conference Fall, vol. 2, n° 72, p. 3, 2010.
[5] V. Patil, «Intelligent Traffic Control System,» ICIET, vol. 2, n° 144, p. 4, 2016.
[6] S. Brand et S. Stalin, «Design of Intelligent Traffic Control System,» IEEE, vol. 1, n° 1345, pp. 2-4,
2016.
[8] T. Cherif et L. Dimitri, «Des carrefours Intelligent pour une meilleur gestion du trafic urbain,»
VCRE, vol. 2, n° 141, pp. 2-4, 2015.
[10] T. Yang et S. Li, «Real-time and accurate segmentation of moving objects in dynamic scene,»
New York, 2004, pp. 5-10.
[11] C. Wren et A. Azarbayejani, «Real-time tracking of the human body,» ICJR, p. 4, 1997.
[12] N. Oliver et B. Rosario, «A Bayesian computer vision system for modeling human interactions,»
IEEE Trans, pp. 3-5, 2000.
[13] N. Verbeke, Suivi d'objets en mouvement dans une séquence vidéo, vol. Thèse en Informatique,
Université Paris Descartes, pp.25-35, 2007.
[14] A.-C. MAHEO, Méthodes de suivi d'un objet en mouvement,, Institut Supérieur de l'électronique
et du Numérique, pp. 35-44, 2015.
[17] S. Landrault et W. Henry, Arduino : Premier pas en Informatique Embarquée, Paris: Creative
68
Commons, pp. 10-18, 2014.
[19] J. Nussey, Arduino pour les nuls, Paris: Editions First, pp. 45-76, 2017.
[22] S. Debashish, Statistical physics of vehicular traffic and some related systems, pp. 24-28, 2012.
[24] J. Shibata et T. Yamamoto “Detection and control of congestion in urban road networks”. Dans :
Traffic engineering & control , pp. 438–444, 1984.
[25] C. S, Ingénierie du Trafic Routier : Eléments de théorie du trafic et applications, Ecole National
des Ponts et Chaussées, 1993.
[26] T. Kamata, «Concise encyclopedia of traffic and transportation systems,» chez Detectors for
road trafic pergamon Press, pp. 17-20, 2009.
[27] W. M. e. X. Yang, «Design and Evaluation of an Adaptive Bus Signal Priority System Base on
Wireless Sensor Network,» p. 4, 2008.
[28] W. Kavya et S. Jyothi, «Trafic Light Control Sytsem Using Image Processing,,» IJIRCCE, vol. 2,
n° 1,Special Issue 5, p.5, 2014.
[29] W. Daywane, «Performance evaluation of Los Angeles adaptive traffic control system (ATCS) on
an arterial corridor,» Los Angeles, pp. 38-45, 2012.
[30] R. Gordon, Traffic control systems handbook, US Dept. of Transportation: Federal Highway
Administration,p. 26, 2005.
[31] J. Fullerton, «Manual of Traffic Signal Design,» Englewood Cliffs, vol. 3, pp. 33-38, 1998.
[32] O. F., “The Traffic Signal Book. Englewood Cliffs, PrenticeHall, p.28, 1993.
[33] L. Chen et Powers F, «Evaluation From Precison, Recall, and F-Factor to ROC,Informedness,
Markedness & Correlation,» vol. 3, p. 12, 2007.
69
[39] V. Paul et J. Michael, «Rapid Object Detection using a Boosted Cascade of Simple Features,» IEEE
, vol.2, 2001.
B. LIENS :
[7] «Les transports intelligents» [En ligne]. Available: http ://[Link]/. [Accès le
25 septembte 2017].
70
ANNEXE A
Une avancée majeure dans le domaine a été réalisée par les chercheurs Paul Viola et
Michael Jones en 2001. Ces derniers ont proposé une méthode basée sur l’apparence
(Appearance-based methods) [38].
La méthode de Viola et Jones est une méthode de détection d’objet dans une image
numérique, elle fait partie des toutes premières méthodes capables de détecter efficacement et en
temps réel des objets dans une image. Inventée à l’origine pour détecter des visages, elle peut
également être utilisée pour détecter d’autres types d’objets comme es voitures ou des avions.
La méthode de Viola et Jones est l’une des méthodes les plus connues et
les plus utilisées, en particulier pour la détection de visages et la détection de personnes.
En tant que procédé d’apprentissage supervisé, la méthode de Viola et Jones nécessite
de quelques centaines à plusieurs milliers d’exemples de l’objet que l’on souhaite détecter,
pour entraîner un classifieur. Une fois son apprentissage réalisé, ce classifier est utilisé
pour détecter la présence éventuelle de l’objet dans une image en parcourant celle-ci de
manière exhaustive, à toutes les positions et dans toutes les tailles possibles.
Considérée comme étant l’une des plus importantes méthodes de détection d’objet, la
méthode de Viola et Jones est notamment connue pour avoir introduit plusieurs notions
reprises ensuite par de nombreux chercheurs en vision par ordinateur, à l’exemple de la
notion d’image intégrale ou de la méthode de classification construite comme une cascade
de classifieurs boostés.
Cette méthode bénéficie d’une implémentation sous licence BSD dans OpenCV, la
bibliothèque utilisée dans notre application.
Principe
La méthode de Viola et Jones consiste à balayer une image à l’aide d’une fenêtre de
détection de taille initiale 24px par 24px (dans l’algorithme original) et de déterminer
si un visage y est présent. Lorsque l’image a été parcourue entièrement, la taille de la
fenêtre est augmentée et le balayage recommence, jusqu’à ce que la fenêtre fasse la taille de
l’image. L’augmentation de la taille de la fenêtre se fait par un facteur multiplicatif
de 1.25. Le balayage, quant à lui, consiste simplement à décaler la fenêtre d’un pixel. Ce
décalage peut être changé afin d’accélérer le processus, mais un décalage d’un pixel assure
une précision maximale.
Cette méthode est une approche basée sur l’apparence, qui consiste à parcourir
l’ensemble de l’image en calculant un certain nombre de caractéristiques dans des zones
rectangulaires qui se chevauchent. Elle a la particularité d’utiliser des caractéristiques très
simples mais très nombreuses.
71
Il existe d’autres méthodes mais celle de Viola et Jones est la plus performante à
l’heure actuelle. Ce qui la différencie des autres est notamment :
• l’utilisation d’images intégrales qui permettent de calculer plus rapidement les
caractéristiques.
• la sélection par boosting des caractéristiques.
• la combinaison en cascade de classifieurs boostés, apportant un net gain de temps
d’exécution.
Apprentissage du classifieur
Les caractéristiques
72
L’image précédente présente des caractéristiques pseudo-haar à seulement deux caractéristiques
mais il en existe d’autres, allant de 4 à 14, et avec différentes orientations.
Malheureusement, le calcul de ces caractéristiques de manière classique coûte cher en
terme de ressources processeur, c’est là qu’interviennent les images intégrales.
L’image intégrale
Pour calculer rapidement et efficacement ces caractéristiques sur une image, les auteurs
proposent également une nouvelle méthode, qu’ils appellent image intégrale. C’est
une représentation sous la forme d’une image, de même taille que l’image d’origine, elle
contient en chacun de ses points la somme des pixels situés au-dessus et à gauche du
pixel courant. Plus formellement, l’image intégrale ii au point (x; y) est définie à partir
de l’image i par :
Le calcul de la somme des valeurs des pixels appartenant à une zone rectangulaire
s’effectue donc en accédant seulement à quatre pixel de l’image intégrale : soit un rectangle
ABCD dont les sommets sont nommés dans le sens des aiguilles d’une montre en
commençant par le sommet supérieur gauche et soit x la valeur sous la représentation
intégrale d’un sommet X du rectangle (X ε {A; B; C; D}). La somme des valeurs des
pixels appartement à ABCD est, quelle que soit sa taille, donnée par c - b - d + a.
Une caractéristique de Haar étant une combinaison linéaire de tels rectangles ABCD,
son calcul se fait alors en un temps indépendant de sa taille.
Le deuxième élément clé de la méthode de Viola et Jones est l’utilisation d’une méthode
de boosting afin de sélectionner les meilleures caractéristiques. Le boosting est un
principe qui consiste à construire un classifieur fort à partir d’une combinaison pondérée
de classifieurs faibles, c’est-à-dire, donnant en moyenne une réponse meilleure qu’un tirage
aléatoire. Viola et Jones adaptent ce principe en assimilant une caractéristique à un classifieur
faible, en construisant un classifieur faible qui n’utilise qu’une seule caractéristique.
L’apprentissage du classifieur faible consiste alors à trouver la valeur seuil de la caractéristique
qui permet de mieux séparer les exemples positifs des exemples négatifs.
Le classifieur se réduit alors à un couple (caractéristique, seuil).
73
Figure ANNEX-A.:2: caractéristiques pseudo-haar avec différentes orientations
74
= |ℎ ( ) − |
les wi étant les poids associés à chaque exemple et mis à jour à chaque itération en
fonction de l’erreur obtenue à l’itération précédente. On sélectionne alors à l’itération t le
classifieur ht présentant l’erreur la plus faible : = min( )
Le classifieur fort final h(x) est construit par seuillage de la somme pondérée des
classifieurs faibles sélectionnés :
Cascade de classifieurs
La méthode de Viola et Jones est basée sur une approche par recherche exhaustive
sur l’ensemble de l’image, qui teste la présence de l’objet dans une fenêtre à toutes les
positions et à plusieurs échelles. Cette approche est cependant extrêmement coûteuse en
calcul. L’une des idées-clés de la méthode pour réduire ce coût réside dans l’organisation
de l’algorithme de détection en une cascade de classifieurs.
Appliqués séquentiellement, ces classifieurs prennent une décision d’acceptation ; la fenêtre
contient l’objet et l’exemple est alors passé au classifieur suivant, ou de rejet ; la fenêtre ne
contient pas l’objet et dans ce cas l’exemple est définitivement écarté. L’idée est que l’immense
majorité des fenêtres testées étant négatives (c.-à-d. ne contiennent pas l’objet), il est avantageux
de pouvoir les rejeter avec le moins possible de calculs. Ici, les classifieurs les plus simples, donc
les plus rapides, sont situés au début de la cascade, et rejettent très rapidement la grande majorité
des exemples négatifs. Cette structure en cascade peut également s’interpréter comme un arbre de
décision dégénéré, puisque chaque nœud ne comporte qu’une seule branche [39].
75
ANNEXE B
#include<opencv2/core/[Link]>
#include<opencv2/highgui/[Link]>
#include<opencv2/[Link]>
#include<opencv2/objdetect/[Link]>
#include "opencv2/objdetect/[Link]"
#include "opencv2/highgui/[Link]"
#include "opencv2/imgproc/[Link]"
#include <iostream>
#include <stdio.h>
#include <thread>
#include <mutex>
ofstream fs("K:/OpenCv/DataSetCar/[Link]");
if (fs.is_open()) {
fs<<sizeC;
[Link]();
}else {
76
return 0;
int printHome(){
cout<<"----------------------------------------------------"<<endl;
cout<<"----------------------------------------------------"<<endl;
cout<<"***************************************************"<<endl<<endl;
return 0;
printHome();
int nCars=0;
int saveS=0;
CascadeClassifier cascadeDetect;
if () {
77
return 0;
cv::VideoCapture capture(sourceReference);
if (![Link]()){
cout << "Error loading the image that was passed in" << endl;
return 1;
bool stop(false);
cv::namedWindow("Extracted Frame",WINDOW_AUTOSIZE);
// cv::namedWindow("Extracted Frame",WINDOW_AUTOSIZE);//[Link]('image',
600,600)
while (!stop) {
if ()
break;
vector<Rect> detected;
78
// minSize – Minimum possible object size. Objects smaller than that are ignored. maxSize –
Maximum possible object size. Objects larger than that are ignored.
cv::imshow("Extracted Frame",frame);
if ([Link]()>1) {
saveS ++;//initialize Counter after 3 Frame then I can chage the Value
// cout<<"i="<<saveS;
cout << "Accident detected => "<< [Link]() <<"at MABANGA on [ "<<
ctime(&now)<<"]"<<endl;
waitKey(0);
return 1;
79
ANNEXE C
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>
#include <avr/wdt.h>
int btn13=20,btn24=21;
int counter1=1,counter2=1,timeSec13=0,timeSec24=0;
void setup() {
pinMode(y1, OUTPUT);
pinMode(r1, OUTPUT);
pinMode(y2, OUTPUT);
pinMode(r2, OUTPUT);
pinMode(y3, OUTPUT);
80
pinMode(r3, OUTPUT);
pinMode(y4, OUTPUT);
pinMode(r4, OUTPUT);
//ambulance signal
pinMode(ambulance1, OUTPUT);
pinMode(ambulance2, OUTPUT);
pinMode(btn13, INPUT);
pinMode(btn24, INPUT);
void loop() {
randSize13=random(0, 40);
randSize24=random(0, 40);
// randSize13=3000;
randTime13=300;
// randSize13=6000;
randTime13=6000;
}//Line 13
//Line 24
//randSize24=3000;
randTime24=3000;
81
//randSize24=6000;
randTime24=6000;
digitalWrite(ambulance1, LOW);
digitalWrite(ambulance1, LOW);
digitalWrite(g3, HIGH);
//Line 2/4
digitalWrite(r4, HIGH);
int divVar13=randTime13/1000,divVar24=randTime24/1000;
for(int i=0;i<divVar13;i++){
emergancyDetect(24,oldVal13,oldVal24,randTime13,randTime24 }
digitalWrite(g1, LOW);
digitalWrite(g3, LOW);
//line 2/4
digitalWrite(r2, LOW);
digitalWrite(r4, LOW);
82
digitalWrite(y1, HIGH);
digitalWrite(y3, HIGH);
//Line 2/4
digitalWrite(y2, HIGH);
digitalWrite(y4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y3, LOW);
//Line 2/4
digitalWrite(y2, LOW);
digitalWrite(y4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(g2, HIGH);
digitalWrite(g4, HIGH);
//LINE 2/4
delay(5000);
for(int i=0;i<divVar24;i++){
emergancyDetect(13,oldVal13,oldVal24,randSize13,randSize24 }
digitalWrite(r1, LOW);
digitalWrite(r3, LOW);
digitalWrite(g2, LOW);
digitalWrite(g4, LOW);
digitalWrite(y3, HIGH);
//LINE 2 AND 4
83
digitalWrite(y2, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(y4, HIGH);
digitalWrite(y1, LOW);
digitalWrite(y3, LOW);
//LINE 2 AND 4
digitalWrite(y2, LOW);
digitalWrite(y4, LOW);
oldVal13=HIGH;
digitalWrite(g2, LOW); //
digitalWrite(g4, LOW);
//Line 2/4
digitalWrite(r2, LOW);
digitalWrite(r4, LOW);
digitalWrite(r1, LOW);
digitalWrite(r3, LOW);
digitalWrite(y3, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y4, HIGH);
84
delay(1000);
digitalWrite(y3, LOW);
digitalWrite(y2, LOW);
digitalWrite(y4, LOW);
digitalWrite(r2, HIGH);
digitalWrite(r4, HIGH);
digitalWrite(g1, HIGH);
digitalWrite(g3, HIGH);
//turnig Off
digitalWrite(r1, LOW);
digitalWrite(r3, LOW);
digitalWrite(r2, LOW);
digitalWrite(r4, LOW);
digitalWrite(g1, LOW);
digitalWrite(g3, LOW);
digitalWrite(ambulance1, LOW);
if((digitalRead(r2)==HIGH) | (digitalRead(r4)==HIGH)){
digitalWrite(ambulance2, HIGH);
oldVal24=HIGH;
digitalWrite(g2, LOW);
digitalWrite(g4, LOW);
digitalWrite(r2, LOW); //
digitalWrite(r4, LOW);
85
digitalWrite(g1, LOW);
digitalWrite(g3, LOW);
digitalWrite(y1, HIGH);
digitalWrite(y3, HIGH);
digitalWrite(y2, HIGH);
digitalWrite(y4, HIGH);
delay(5000);
digitalWrite(y1, LOW);
digitalWrite(y3, LOW);
digitalWrite(y2, LOW);
digitalWrite(y4, LOW);
digitalWrite(r1, HIGH);
digitalWrite(r3, HIGH);
digitalWrite(g2, HIGH);
digitalWrite(g4, HIGH);
digitalWrite(r1, LOW);
digitalWrite(r3, LOW);
digitalWrite(g2, LOW);
digitalWrite(g4, LOW);
} }
else {
delay(5000);
86