Page | I
EPIGRAPHE
« L'invention scientifique
réside
dans la création d'une
hypothèse
heureuse et féconde ; elle est
donnée
par le génie même du savant qui
l'a
créée ».
Claude Bernard
Page | II
DEDICACE
A mon père Benjamin BUMFUIDI qui n'a pas cessé
de m'enseigner l'art de la sagesse, la manière de réussir dans
mes entreprises et m'avoir guidé dans la vie chrétienne.
A ma maman chérie Helene BAYIMISA pour son soutien
spirituel, tant de sacrifices et peines à mon égard, voilà
l'expression de ma profonde gratitude.
A mes très chers frères et soeurs Herve
BUMFUIDI, Samira DIEYABANZA, Jenovic BUMFUIDI, Enisse BAKABUKILA et Patrick
BONDA pour tout le soutien tant moral que financier qu'ils ont manifesté
à mon endroit.
A mon oncle paternel Bernard DIKU et ma tante Rose BAKEBILA,
Voici le plus grand cadeau que votre fils vous offre, fruit de vos efforts et
conseils qui ont constitué notre force de réussite.
A ma tendre Deborah BWANAHALI, pour son soutien qui a
été une force continûment puissante et présente, me
permettant de surpasser mes limites.
Je dédie ce travail
DIASOLUA LUZILA Jeancy
DIASOLUA LUZILA Jeancy
Page | III
REMERCIEMENTS
Au terme de notre second cycle universitaire, qu'il me soit
permis d'adresser mes sentiments de reconnaissance à tous ceux qui de
diverses manières ont contribué à la réalisation de
ce travail.
Ainsi, mes remerciements s'adressent particulièrement :
A Dieu tout puissant, mon créateur qui m'a
donnée la grâce d'être ce que je suis et les
capacités de faire ce travail de fin d'étude.
A Monsieur le Professeur Docteur Eugene MBUYI MUKENDI qui a
volontiers accepté la direction de ce travail du début à
la fin malgré ses multiples occupations.
A l'Assistant Felicien MASAKUNA JORDAN pour l'encadrement
ainsi que le suivi attentif qui a contribué à l'aboutissement
heureux du présent travail, en ceci je lui exprime ma profonde
gratitude.
Nous exprimons aussi notre profonde gratitude aux
autorités académiques, en générale et en
particuliers à celles de la Faculté des Sciences de
l'université de Kinshasa « UNIKIN » en sigle pour leur
détermination à faire de nous une des personnes respectables de
notre société.
Nous ne pouvons pas terminer, sans pour autant remercier nos
compagnons de lutte plus précisément : Friedrich KIBANGO,
Christian MUNDELE, Herve NYOKA, Christian BELEWETE, Steve KOPI qui n'ont
cessé de nous encourager au cours de notre parcours estudiantin.
Outre, nous adressons nos sincères remerciements aux
membres du jury qui ont bien voulu nous honorer de leur appréciation
à ce modeste travail.
Aussi, nous n'oublions pas de penser à tous ceux et
celles qui nous ont aidés d'une manière ou d'une autre et dont
les noms ne sont pas repris ci-haut, qu'ils trouvent ici l'expression de notre
reconnaissance.
Page | IV
LISTE DES ABREVIATIONS
o RDC : République Démocratique du Congo
o IA : Intelligence Artificielle
o IAD : Intelligence Artificielle Distribuée
o IAP : Intelligence Artificielle Parallèle
o RDP : Résolution Distribuée de
Problèmes
o SMA : Système Multi-Agents
o STI : Système de Transport Intelligent
o BC : Base de Connaissance
o MI : Moteur d'Inférence
o OpenCv : Open Computer Vision
Page | V
LISTE DES FIGURES ET
TABLEAUX
1. FIGURES
Figure 1 : Transport en Commun 3
Figure 2 : Feux de Signalisations 6
Figure 3 : Agents de circulation routière 8
Figure 4 : Le Robot Roulage en RDC 11
Figure 5 : Capture de la circulation 24
Figure 6 : Architecture du système 28
Figure 7 : Capture de la circulation 28
Figure 8 : Capture de la circulation 28
Figure 9 : Image avec Objets détectés 28
Figure 10 : Image avec objets Comptés 29
Figure 11 : IA 31
Figure 12 : Aperçu sur le STI 35
Figure 13 : De l'IA aux systèmes experts 37
Figure 14 : Simulateur 45
Figure 15 : Capture de la circulation 46
Figure 16 : Capture de la circulation 46
Figure 17 : Résultat Simulateur 46
2. TABLEAUX
Tableau 1 : Principe dans la constitution d'une collection
18
Tableau 2 : Avantages d'un modèle architectural 27
Tableau 3 : Version de C# 41
Tableau 4 : Bibliothèque logicielle 42
Tableau 5 : Module OpenCV 43
Page | 1
INTRODUCTION GENERALE
Depuis la création de l'humanité, l'homme a
toujours exprimé le désir de faire personnellement un mouvement
d'un milieu à un autre ou d'emporter avec lui ses effets, tout en tenant
compte de la donne temps. Malgré sa ferme volonté d'atteindre
rapidement le lieu de son déplacement, l'homme est dans la plus part des
cas confronté à des obstacles de tout genre, allant de son propre
fait à celui d'autrui.
Le problème d'embouteillage se pose avec acuité
dans notre pays, celui-ci est dû soit au comportement des usagers de la
voie publique soit au comportement de ceux qui sont appelés à
réguler la circulation routière. Face à ce problème
crucial, l'homme tient à apporter des solutions susceptibles de
réduire voire de supprimer ces embouteillages qui constituent une perte
de temps énorme. C'est pour cette raison que l'Etat, dans le cadre de
son pouvoir régalien, a mis sur pied une institution
dénommée « Police de circulation routière »,
institution qui renferme en son sein un personnel dont la mission principale
est de réguler la circulation routière.
Le travail humain ayant ses faiblesses, l'être humain a
cherché à les combler par l'installation d'un robot roulage
intelligent qui agit en lieu et place de l'agent de sécurité
routière.
Le constat fait nous amène à comprendre qu'en
dépit de ce robot roulage intelligent, bien que doté d'un sens
d'automatisme, le problème lié aux embouteillages semble ne pas
être résolu, en ce que le robot roulage intelligent ne tient pas
compte dans sa régulation de flux des véhicules. Voilà
pourquoi nous avons proposé l'installation des robots roulages
intelligent améliorés.
Partant de ce qui précède, nous nous posons la
question de savoir l'existence des
embouteillages dans certain carrefour du pays, comment les
réduire ou les supprimer, et le robot roulage intelligent sera-t-il en
mesure de raisonner comme le ferait le policier de circulation routière
qu'il est censé remplacer ?
Tout travail intellectuel doit avoir un intérêt
précis. Le nôtre a comme intérêt
l'amélioration des robots roulages intelligents placés au niveau
des différents carrefours de notre pays pour assurer la fluidité
dans la circulation routière.
Notre travail porte essentiellement sur la capture des images
des véhicules sur la voie publique, piétons et autres exclus.
Une image est une représentation de la
réalité. Cette représentation pourrait être
présenté sous diverse vue, tout dépendra de l'objectif
attendu. Ce pour cela que tenant compte des limites de l'environnement, nous
avons choisi de mener nos études par rapport à la vue en hauteur
de la voie de circulation.
Quant aux méthodes et techniques utilisées, nous
avons eu à exploiter la combinatoire pour le comptage des objets et au
niveau de l'évaluation du trafic, nous avons retenu le modèle de
programmation linéaire.
Notre étude part du mois d'octobre 2013 et porte sur
l'ensemble du territoire national. Nous nous ne sommes pas servis du premier
prototype qui a été conçu pour aider les piétons
à traverser les boulevards, mais du second qui prend pour modèle
un policier de circulation routière.
Page | 2
Hormis l'introduction générale et la conclusion,
notre travail est divisé en cinq chapitres :
Chapitre 1 : Problème, prospective et approche
Chapitre 2 : Technique de comptage et Evaluation du trafic
Chapitre 3 : Modèle architectural et comportement
Chapitre 4 : Intelligence Artificielle
Chapitre 5 : Simulation et Résultat
Page | 3
CHAPITRE 1 : PROBLEME, PROSPECTIVE ET APPROCHE
[9], [10], [11], [12]
Dans le souci de faire une bonne régulation de la
circulation, une étude préalable du trafic routier reste une
nécessité. Celui-ci est un phénomène qui est
à la fois très important et complexe. D'une part parce que
l'homme dans sa nature a besoin de se déplacer pour satisfaire ses
besoins et désirs, être en contact avec le monde extérieur
et de l'autre à cause du nombre élevé des acteurs qui
participent dans ce phénomène. Des règles permettant de
réguler la circulation et d'améliorer le confort des usagers en
apportant plus de sécurité ont été
développée.
C'est ainsi que nous parlerons d'abord en détails du
système existant, de certains problèmes rencontrés dans la
gestion de la circulation, et jusqu'aux méthodes que nous avons
jugées utile de développer, puis
présenter en vue d'optimiser l'utilisation liée à
certaines activités de ce secteur.
1.1 La Police
Etymologiquement, le mot la police vient du latin politia qui
signifie « régime politique, citoyenneté, administration,
partie civile ». Notons qu'il existe aussi une autre conception de la
police, selon le marxisme, qui considère que la police fait partie de
l'appareil répressif de l'Etat, le quel fonctionne à la violence
physique ou non et constitue un instrument de la bourgeoisie par lequel elle
assure son pouvoir et sa position dominante ; et dont le but n'est pas de
supprimer le crime mais de le contrôler suivant certaines limites et de
l'utiliser selon ses propres intérêts.
La police est une institution de l'Etat, ayant pour but
principal d'assurer la sécurité des personnes et des biens. Pour
ce faire, elle est chargée de faire respecter la loi. La police peut
être militaire ou civile. Créée le 22 avril 1997, la Police
Nationale Congolaise, remplaçant la gendarmerie nationale et la garde
civile, assure la sécurité des personnes et des biens sur
l'ensemble du territoire national.
1.2 Le Transport sur la voie publique
Le transport peut être défini comme le
déplacement des personnes, objets, marchandises, animaux et autres d'un
endroit à un autre.
Figure 1 : Transport en Commun
Parmi les modes de transport figurent le transport
aérien, le transport routier, le transport maritime, le transport
fluvial, le transport par câble, le transport par voie ferrée, le
transport spatial.
L'utilisation d'un de ces modes de transport dépend du
type de véhicule ou d'infrastructure utilisé. Notre travail
étant axé sur le véhicule (automobile), notre attention
sera focalisée sur la régulation des véhicules sur la voie
publique.
Page | 4
Il est connu que le transport routier est une activité
règlementée de transport terrestre qui s'exerce sur la route. Il
englobe à la fois le transport routier de personnes, le transport
routier des marchandises et le déménagement.
Les types de véhicule ci-après sont compris dans le
transport routier :
Les véhicules particuliers
Les véhicules particuliers sont des véhicules
automobiles à roues propulsées par un moteur et destinés
au transport terrestre des personnes, des bagages et de petits objet. Le
véhicule particulier communément appelé
«automobile» est le moyen de transport le plus répandu dans le
monde entier.
Les véhicules utilitaires
Ces sont des véhicules capables d'assurer des fonctions
très différentes, généralement à des fins
professionnelles. Il peut s'agir d'un fourgon, d'un pick-up, d'un camion, d'une
camionnette, utilisés pour le transport de matériel, de
personnes, les évacuations sanitaires, les missions de combat...
Les deux roues
Ce sont des véhicules munis de deux roues
disposées en long et destinés au transport d'une personne,
parfois deux. Ils sont souvent munis d'une selle pour le conducteur et parfois
pour un passager, et sont dans la plupart des cas dotés d'un embryon de
carrosserie.
La bicyclette, le vélo tout terrain ou
équipé d'un moteur électrique, la motocyclette, le
cyclomoteur, le scooter, etc sont classés parmi les véhicules
à deux roues.
Considérant le nombre croissant des véhicules
sur les voies publiques, L'Etat dans ses prérogatives régaliennes
et dans le souci d'assurer la sécurité de tous a mis sur pieds
des règles impératives et opposables à chaque conducteur
et autres usagers de la voie publique, communément appelées
« code de la route » ou « code de circulation routière
».
1.3 Code de la route
1.3.1 Définition
C' est l'ensemble des lois et règlements relatifs
à l'utilisation des voies publiques (trottoirs, chaussées,
autoroutes, ...) par les usagers (piétons, cyclistes, deux-roues
à moteur, automobilistes, etc.). Dans certains pays francophones, il
s'agit d'un code législatif, au même titre que le code de
l'environnement et le code pénal, à la différence qu'il
exprime aussi la combinaison de lois, réglementations et règles
de civisme et de savoir-vivre. Le non-respect des dispositions du code de la
route expose le contrevenant à des sanctions de divers niveaux allant de
l'amende à la peine de prison, selon la gravité de l'infraction.
Il n'est pas un instrument figé, puisqu'il varie selon la perception des
autorités et de la population, s'appuyant sur ce qui est important.
1.3.2 Code de la route en RDC
La RDC qui dispose d'un réseau routier important a
règlementé, par la loi n° 78/022 du 30 Aout 1978, portant
code de la route le comportement des uns et des autres sur la voie publique.
Nonobstant ce dispositif légal, il est constaté,
avant toute référence aux statistiques relatives aux accidents de
circulation routière, que les usagers de la route n'obéissent pas
aux règles régissant ce secteur ; et l'inobservance de ces
règles entraine un taux croissant d'accident, d'embouteillage dans les
différents carrefours et à ceci s'ajoute la pollution
quotidiennement croissante et la réduction de vie tant des
automobilistes, piétons que d'autres usagers de la route.
Page | 5
Fort de ce qui précède, nous nous permettons, vu
le manque des moyens matériels adéquats dans le chef de la Police
Spéciale de Roulage, de conclure à l'inefficacité du
travail abattu par ses agents disséminés sur l'ensemble de la
RDC.
Notre démarche vise à comprendre en premier lieu
les causes qui sous-tendent les différentes violations du code de la
route et proposer des solutions appropriées. Parmi les causes, nous
pouvons citer l'ignorance du code la route, le manque de formation et
d'information des usagers de la voie et la liste n'est pas exhaustive. Quant
à la solution, nous proposons la vulgarisation du code de la route et le
respect de la signalisation routière.
1.3.3 Composants du Code de la route
Par rapport aux éléments recueillis, le code de la
route peut contenir des règles relatives :
aux qualités ou compétences qu'un usager doit
posséder selon l'usage qu'il fait de la voie publique (permis de
conduire, âge minimum, examen médical,...) ; aux
caractéristiques qu'un véhicule doit posséder
(homologation des véhicules, contrôle technique régulier,
couverture par assurance de la responsabilité du conducteur, ...) ;
à la façon dont un usager peut utiliser la voie publique (rouler
à droite ou à gauche, limitations de vitesse, stationnement,
présence de frein et de bandes réfléchissantes sur les
pédales, ...) ;
à la façon dont les usagers interagissent entre eux
(règles de priorité par exemple) ; à la façon dont
les autorités peuvent imposer des règles locales sur certaines
portions de voie publique (signalisation, policier, ...).
Outre les différentes règles émises
ci-haut, le code de la route devra inclure des informations sur certains
concepts, notamment :
Le sens de circulation des véhicules. Le respect du
sens de circulation des véhicules est important dans l'organisation du
trafic routier. Les véhicules sont tenus de circuler sur un coté
précis de la chaussée, gauche ou droite. Il s'agit probablement
d'après les statistiques de la règle de circulation la plus
ancienne.
La vitesse maximale autorisée. Ce paramètre
dépend d'un pays à un autre étant donné qu'il
connait de fortes variations. Ainsi, pour chaque type de route, il existe une
vitesse en dessous de laquelle les véhicules sont habilités
à circuler.
Face au taux élevé d'accident, nous allons
analyser certaines des méthodes de régulations des voies en
émettant leurs performances ainsi que leurs limites. Mais avant de les
aborder, nous nous proposons de définir le concept «
Régulation de la route», étant donné qu'il constitue
le point focal de notre travail.
1.3 Régulation de la route
Le terme régulation peut avoir plusieurs acceptions.
D'une manière générale, la régulation est
l'ensemble des techniques permettant le maintien de la constance d'une
fonction. Dans le domaine des procédés Industriels, elle concerne
la mise en oeuvre de l'ensemble des moyens théoriques, matériels
et techniques permettant le maintien de chaque grandeur physique essentielle
constatée égale à une valeur désirée,
appelé consigne, par action sur une grandeur réglante, et ce,
malgré l'influence des grandeurs perturbatrices dudit système.
Page | 6
En d'autres termes, La régulation de la route est une
opération qui consiste à contrôler le caractère de
ce qui doit être conforme au code de la route. La grandeur physique
constatée représente le comportement d'un conducteur de
véhicule qui devrait être conforme à la valeur
désirée, qui quant à elle représente le code de la
route. Les embouteillages ainsi que d'autres imprévus pouvant survenir
sur le trafic sont des perturbations du système, amenant de fois les
conducteurs à manifester un comportement inattendu, souvent brutal se
trouvant à la base de nombreux cas d'accidents constatés dans
certains coins du pays. D'où, le but de la régulation du trafic
routier qui est le maintien de l'état stable, conforme à ce qui
doit être respecté, par rapport au fonctionnement du
système.
Le problème de la circulation des automobiles est de
grande importance. C'est ainsi que
nous nous proposerons de présenter certaines solutions
qui ont été insérées dans la circulation pour
assurer la sécurité des personnes et des biens.
Plusieurs éléments peuvent être
utilisés pour désengorger, réguler la circulation. Nous
retenons deux éléments, à savoir : La signalisation
routière et la police de circulation routière.
1.3.1 La signalisation routière
Elle désigne l'ensemble des signaux conventionnels
implantés sur le domaine routier et destinés à assurer la
sécurité des usagers de la route, soit en les informant des
dangers et des prescriptions relatifs à la circulation ou bien des
éléments utiles à la prise de décisions, soit en
leur indiquant les repères et équipements utiles à leurs
déplacements.
Il existe deux grandes familles dans la signalisation
routière, la signalisation routière verticale(les panneaux de
signalisations, les balises, les feux de signalisations, ...) et la
signalisation routière horizontale constituée des marquages au
sol et des plots, appelé à coexister de par leurs conceptions.
Nous présenterons les feux de signalisations, l'un des
régulateurs de la circulation le plus fréquent dans notre pays,
et qui frise notre sujet.
1.3.1.1 Les feux de signalisations
Figure 2 : Feux de Signalisations
Un feu de signalisation, circulation routière est un
dispositif lumineux devant permettre la régulation du trafic routier
entre les usagers de la route, les véhicules et les piétons. Les
feux destinés aux véhicules à moteurs sont
généralement de types tricolores, auxquels peuvent s'ajouter des
flèches directionnelles, et ceux destinés aux piétons sont
bicolores, se distinguant souvent par la reproduction d'une silhouette de
piéton.
Une solution souvent retenue est d'installer des
détecteurs de véhicules pour actionner certains feux au
débouché de branches secondaires à des heures de faible
trafic, ou des boutons
Page | 7
1.3.1.1.1 Usage
L'emploi des feux de signalisation a pour but d'assurer la
sécurité de tous les usagers de la voirie, piétons et
conducteurs, et de faciliter l'écoulement des flux de circulation
denses. A titre d'exemple d'emploi, nous avons :
La gestion du trafic aux intersections ;
La traversée des piétons, autour des intersections
où le moment de trafic est élevé, où le
sentiment d'insécurité des piétons est
important ;
L'affectation de certaines voies d'une chaussée à
un sens de circulation en fonction des
besoins ;
Le contrôle d'accès à certaines voies rapides
;
La gestion d'un point de contrôle des personnes ou des
véhicules nécessitant leur arrêt
(péages) ;
Et d'autres.
1.3.1.1.2 Séquences de feux
Il existe en général trois séquences de feux
:
Rouge : Tout conducteur doit marquer l'arrêt absolu
devant un feu de signalisation rouge, fixe ou clignotant ;
Vert : autorise le passage de véhicule ;
Jaune : Marque l'arrêt. Devant un feu de signalisation
jaune fixe, sauf dans le cas où lors de l'allumage dudit feu, le
conducteur ne peut plus arrêter son véhicule dans des conditions
de sécurité suffisante.
1.3.1.1.3 Avantages et Inconvénients Avantages
En imposant l'arrêt total aux usagers susceptible de
croiser leur trajectoire, les feux de circulation permettent aux usagers
observant le feu vert de franchir en toute sécurité et à
la vitesse maximale autorisée les intersections de la voirie. La
réduction des cycles freinage -arrêt-accélération
imposée par les feux améliore le confort de conduite et
réduit la consommation du carburant. Sur des axes rapides à fort
trafic, les feux de circulation facilitent et sécurisent l'insertion des
véhicules provenant d'axes secondaires et la traversée des
piétons.
En ce qui concerne les feux tricolores, ils peuvent
également réguler l'affluence à des intersections
régies par d'autres régimes de priorité. Ils sont
particulièrement adaptés à la gestion du trafic dense et
rapide, engendré par les véhicules motorisés sur des axes
importants en agglomération.
Inconvénients
La multiplicité des usages de la voirie
(piétons, cyclistes, motorisés, transports en commun...) peut
rendre le réglage et la synchronisation des feux de circulation d'un axe
ou d'un quartier très complexe, et parfois insatisfaisante pour tout ou
partie d'entre eux. Comme illustration, une voirie urbaine sur laquelle les
feux sont synchronisés en onde verte à 40 km/h est bien
adaptée au trafic motorisé privé, mais porte
préjudice aux autobus urbains qui ont des arrêts fréquents
et aux cyclistes qui circulent moins vite. Pour être efficace, le
réglage des phases doit être adapté à la variation
de la circulation, en particulier aux heures de trafic réduit où
le caractère régulateur du système de feux tricolores
disparaît.
Page | 8
déclencheurs pour les piétons et,
éventuellement, les cyclistes. Certains feux tricolores peuvent
être donc sous arrêt momentané de quelques heures au maximum
en cas de circulation inactive.
Les feux de circulation sécurisent le franchissement
d'une intersection à plus de 30 km/h, et des accidents graves peuvent
survenir s'ils ne sont pas observés correctement. De plus, les feux en
phase verte incitent les usagers à rouler en survitesse pour franchir
l'intersection avant la fin de la phase verte, malheureusement cela
accroît l'insécurité des usagers les plus lents.
L'emploi des feux de signalisation doit donc être
limité à la régulation de trafic et, sur certains axes, au
confort de conduite des usagers. D'après plusieurs études, les
feux de circulation seraient responsables de la moitié des files et donc
de la moitié de la pollution, et des feux mal réglés
peuvent entraîner le triplement de la consommation de carburant, donc les
émissions de CO, lorsque la circulation est encombrée ou trop peu
dense.
1.3.2 La police de circulation routière
1.3.2.1 Police de Circulation
Le terme police désigne de manière
générale l'activité consistant à assurer la
sécurité des personnes, de bien et maintenir l'ordre public en
faisant appliquer la loi.
La police de circulation routière est une instance de
la police habilitée à agir sur la sécurité des
véhicules, la commodité des personnes sur les voies
routières, et cela en vertu de la loi ou règle établie.
Celle-ci va consister à limiter la vitesse, fixer les règles de
priorité de passage aux intersections, réglementer le
stationnement, ...
1.3.2.2 Mission de la police routière
La police de circulation routière a pour mission
d'assurer la sécurité sur le trafic routier des personnes ainsi
que leurs biens et de garantir un climat de paix dans la circulation des
automobiles à travers la commodité de passage sur les voies
publiques, en appliquant avec rigueur le code de la route.
La police de circulation routière est une institution
composée des personnes formées dans l'objectif de bien asseoir
les fondements, les raisons qui ont poussé à l'instauration de
celle-ci. Et ces personnes sont nommés « agents de la circulation
».
1.3.2.3 Les agents de la circulation
Figure 3 : Agents de circulation routière
Les agents de la circulation sont des policiers qui ont pour
mission principale de contribuer activement à l'application du code de
la route. Ils jouent aussi un rôle primordial dans le maintien de l'ordre
sur le réseau routier. Ils effectuent un contrôle de la
circulation à des endroits stratégiques et surtout très
bien ciblés de manière à faciliter le déplacement
des
Page | 9
automobilistes dans les villes. Le service trafic de notre
corps de police se consacre entièrement à garantir tous les
aspects de la fluidité de trafic menant à une bonne circulation
routière sur tous le territoire de la zone de police.
Outre, le métier de sécurité
routière peut aussi consister à intervenir sur l'autoroute lors
d'un accident de circulation, ou bien lors d'une apparition de certain
phénomène, communément connu sous le nom de bouchon. Ils
nous protègent en nous informant après un accident avec des
panneaux lumineux, radios, ainsi que d'autres outils y afférents
à leur utilisation.
Visant à réguler ce secteur d'activité et
d'assurer une uniformisation dans l'exercice de leur métier, les agents
de la circulation routière devront bien faire leur travail en maitrisant
le code de la route, qui sert de balise à leur action.
1.3.2.4 Les réalités constatées
dans le service de sécurité routière
Les enquêtes menées nous ont permis
d'épingler des réalités suivantes :
Le nombre réduit et la non qualification du
personnel
A ce niveau, il y a lieu de relever que notre pays a un nombre
impressionnant des véhicules exerçant le trafic routier, et vu
son poids démographique, la RDC est appelée à avoir un
nombre suffisant d'agents qualifiés, affectés au service de la
sécurité routière.
Pour qu'un service soit à la hauteur de sa mission,
celui-ci doit être doté d'un personnel suffisant et
qualifié. Ce postulat souffre dans son application dans nos services de
sécurité routière étant donné le nombre
insuffisant du personnel qui plus n'est pas qualifié pour faire face
à cet énorme travail qui est la régulation de la
circulation routière.
Le déséquilibre temporel dans la
régulation de la circulation routière
Le policier chargé de la régulation de la
circulation routière affecté à un carrefour est
appelé à faire en sorte que la voie publique soit
dégagée par ses utilisateur. Dans la pratique, il est
constaté que le déséquilibre temporel dans la
régulation de la circulation routière par le policier
amène inexorablement à la congestion des véhicules sur la
voie publique. Ceci est dû au fait que le policier, être humain,
contrairement à une machine mécanique, électronique et
informatique, est voué à la perfection et connait des limites
quant en ce qui concerne son travail.
Le manque des matériels appropriés
Dans le monde des technologies avancées,
l'activité humaine doit être appuyée par des
matériels appropriés. Curieusement, le service de
sécurité routière ne dispose pas des matériels
susceptibles de permettre aux agents de travailler avec beaucoup
d'efficacité. Ce qui complique davantage le travail des agents sur
terrains.
Les tracasseries policières
Sans être le fait des chauffeurs et autres, certains
embouteillages le sont suites aux tracasseries organisées par les
policiers qui profitent de leurs situations administratives pour
rançonner les usagers de la route, plus précisément les
chauffeurs des véhicules, des motos et autres.
Dans son travail, le policier doit faire face à
beaucoup des contraintes telles que les intempéries de tout genre, les
accidents de circulation, l'impatience des chauffeurs qui dans la plupart des
cas sont mal formés. La solution la mieux adaptée à toutes
ces situations est la mise sur pied d'une assistance continue des nouvelles
technologies de l'information et de la communication.
Page | 10
1.4 Le robot roulage intelligent
La mise en place d'un robot découle du domaine de la
robotique. Elle est un domaine de l'IA qui consiste à mettre en
place ou à développer des robots qui sont capables de manipuler
des objets et réagir face à des modifications de l'environnement.
Autrement dit, on définit la robotique comme étant un ensemble de
techniques permettant la conception et la mise en oeuvre des dispositifs
destinés à substituer l'homme dans ses fonctions motrices,
sensorielles et intellectuelles. Ces dispositifs peuvent être
programmés pour réaliser des actions bien
déterminées ou pour agir par apprentissage.
1.4.1 Généralité sur le robot
Le terme robot est emprunté de la science-fiction. Il
trouve son origine dans une pièce de l'auteur tchèque Capek,
écrite en 1923, intitulée « Les robots universels de Rossum
». Le mot « robot » ou « robota » est le mot
tchèque, et aussi russe, pour désigner le travail ou un
travailleur.
Un robot est un dispositif mécatronique
(réunissant mécanique, électronique et informatique)
accomplissant automatiquement soit des tâches qui sont
généralement dangereuses, pénibles,
répétitives ou impossibles pour les humains, soit des
tâches plus simples mais en les réalisant mieux que ce que ferait
un être humain.
Un robot intelligent est un assemblage complexe de
pièces mécaniques et de pièces électroniques, le
tout pouvant être piloté par une IA. Le comportement intelligent
que possède cet engin est une action complexe, qui devra être
contrôlée lors de son fonctionnement. Les robots possèdent
souvent une source d'énergie embarqués, par exemple une batterie
d'accumulateurs électriques leur offrant une autonomie, une
mobilité face à l'alimentation.
1.4.2 Constitution d'un robot
D'une manière générale, un robot de par sa
composition devra comprendre entre autre :
Les actionneurs
Le terme actionneur peut désigner tout dispositif
générateur d'effort à vitesse variable qui permet de
modifier la configuration initiale d'un robot. Si on se limite aux actionneurs
pratiquement utilisables, il est possible de les classer suivant :
o le type du mouvement généré ;
Dans l'état actuel de la technologie, on trouve les
actionneurs linéaires qui développent une force et
génèrent un mouvement de translation parallèle à
cette force. Les actionneurs rotatifs développent un couple et
génèrent un mouvement de rotation autour de l'axe du couple.
C'est au travers ce genre d'actionnaire qu'un robot pourra être en mesure
de faire un mouvement sur lui-même, et ce par rapport à un besoin
spécifique.
o la nature de la source d'énergie.
On dispose d'actionneurs pneumatiques qui utilisent l'air
comprimé comme source d'énergie, d'actionneurs hydraulique sous
pression, et d'actionneurs électriques qui utilisent l'énergie
électrique. La puissance massique et le pouvoir
d'accélération sont des critères importants qui permettent
une comparaison objective de ces différents types d'actionneurs.
Page | 11
Les capteurs
Le capteur doit cumuler les fonctions d'acquisition et de
conversion en signal électrique de la grandeur physique ou chimique. Il
y a autant des méthodes de détection et de transformation que
l'objet physique permet de réaliser. La liste suivante cite les
principaux capteurs :
o Capteur d'image (image) ;
o Microphone (son) ;
o Thermistance, thermocouple (température) ;
o Capteur à éléments semi-conducteurs
(rayonnement) ;
o Capteur optoélectronique semi -conducteur, pile
thermique, élément infrarouge.
La robotique est un ensemble des disciplines et des
techniques déjà connues et sur lesquelles la recherche est
active, et cela pour deux raisons à savoir :
Le désir des industriels d'automatiser leurs
unités de production ; Le développement de l'information et son
couplage à la mécanique.
Ce domaine fait appel aux autres domaines tels que le domaine
de la reconnaissance de la parole pour former la robotique et sémantique
et celui de la reconnaissance des formes pour former la robotique et
visionique.
1.4.3 Le Robot roulage dans la circulation
Figure 4 : Le Robot Roulage en RDC
Nous vivons dans un monde où l'automatisation prend de
plus en plus de l'ampleur. Les
scientifiques cherchent à réduire l'effort
humain au profit d'un raisonnement automatique pouvant être
effectué par une machine de manière à obtenir un
résultat satisfaisant.
Le robot roulage intelligent peut être définit
comme étant un robot androïde régulant la circulation
routière. Le robot roulage intelligent est une invention totalement
congolaise, mise au point par les inventeurs congolais avec l'appui financier
de lwomen technologies, une association des femmes ingénieurs de la RDC.
Equipé et alimenté par un panneau solaire, il arrive à
organiser la circulation dans quelques artères de Kinshasa et de
Lubumbashi. Ces machines encore fabriqués dans un atelier rudimentaire
à Kinshasa, arrive jusqu'à ce jour à améliorer la
circulation.
1.4.4 D'un prototype à un autre
Le prototype de départ était conçu juste
pour parer à la traversée périlleuse par les
piétons des boulevards et autres artères de la capitale, devenus
trop grands. Amélioré, le deuxième prototype lancé
en octobre 2013 a été conçu en prenant pour modèle
un roulage (policier de circulation routière) qui travaille dans des
conditions pénibles.
Page | 12
1.4.5 Composition du robot roulage Intelligent
Le robot intelligent est doté des éléments
ci-après :
Un système intégré d'enregistrement et
de diffusion audio
Le robot roulage est conçu de manière à
parler et même chanter si cela s'avérait être
nécessaire. Il peut s'adresser directement aux automobilistes en
diffusant une voix de synthèse (« conducteurs, vous pouvez laisser
le passage aux piétons ») et alerter ainsi les usagers de tout
danger de la route. Il est en outre équipé de quatre
caméras numériques de haute définition qui lui permettent
de capter et enregistrer, sous tous les angles, les scènes et les
éléments d'identification des usagers de la route. Toutes ces
informations sont envoyées en temps réel via un système IP
à la base de données pour leur exploitation adéquate.
Une alimentation électrique autonome
Vu l'intermittence constatée dans la fourniture de
l'énergie électrique à Kinshasa, les concepteurs du robot
intelligent l'ont doté d'un panneau solaire et sa composition lui permet
de résister face aux fortes chaleurs, au froid et à la pluie.
Le robot intelligent a double utilité :
Pour les usagers de la route : Assurer la fluidité
sereine de tous les acteurs de la circulation routière ;
Pour les services publics : Enregistrer les données
susceptibles de permettre à la police d'identifier et de poursuivre les
contrevenants.
1.4.6 Les feux de signalisation dans le robot roulage
intelligent
La conception de ce modèle hybride qui est une
innovation semble surpasser les attentes des utilisateurs.
La machine a été programmée de
manière à offrir le service d'un officier de régulation
routière et celui des feux de circulation. Dans son fonctionnement, la
machine oriente le comportement de la population en ce qu'elle l'amène
à comprendre quand, comment et où traverser.
Les feux de signalisation du robot peut être
tantôt rouge, tantôt vert, comme le ferait un agent de la
circulation pour stopper les véhicules dans un sens, ou autoriser le
passage d'autres véhicules alignés en perpendiculaire.
De tout ce qui précède, apparait l'utilité
du robot roulage.
1.4.7 Utilité du robot roulage intelligent
L'instauration du robot est intervenue de manière
à combler des lacunes ci-dessous que nous constatons dans le
système actuel.
Le robot roulage vient résoudre le problème des
tracasseries auxquelles les conducteurs des automobiles étaient
confrontés en ce qu'ils ne sont plus en contacts directs avec les
policiers de circulation routière.
La réduction sensible du personnel et du budget
Avant l'avènement de robot roulage intelligent, l'Etat
avait disposé d'un effectif pléthorique du personnel et un budget
conséquent pour faire face au problème lié à la
circulation routière. Actuellement, dès l'installation des robots
roulages intelligent, le nombre du personnel a sensiblement baissé, y
compris le budget y affecté.
Le problème d'embouteillage occasionné par les
agents de sécurité est résolu, d'autant plus que le robot
roulage a un comportement rationnel résultant de la logique qui a
été
Page | 13
implantée lors de sa conception dans l'atelier de
fabrication, lui permettant d'imposer un rythme au le flux de véhicule
qui circule sur le trafic.
1.5 Une évolution face aux besoins
Comme tout oeuvre humaine, le robot roulage intelligent n'est
pas parfait. Ce qui pousse les concepteurs à ajouter de nouvelles
fonctionnalités en vue de perfectionner cet outil permettant d'organiser
le trafic routier. C'est ainsi qu'en mai 2015, une entreprise américaine
connue sous le label de Telecom Group(DHI) avait proposé de lancer
l'opération des transmissions d'images des robots roulages au Service
Network Central (NOC). Pour une première fois, en raison d'essai, la
transmission d'images s'est effectuée dans la commune de lingwala de la
Ville-Province de Kinshasa.
Les technologies mises en place par la société
DHI précisent que les robots roulages intelligent devront
posséder de cameras performantes pour envoyer les images en temps
réel sur tout ce qui se passe sur les voies routières et ensuite
les acheminer vers le Commissariat Provincial de la Police. Ainsi, toute
violation au code de la route devra être sanctionnée, car au
niveau du commissariat, ils devront être capables de voir de loin les
plaques d'immatriculation, contrôler la vitesse et aussi enregistrer les
accidents. Tout ceci, en fonction d'une contrainte de temps bien
précise.
1.6 Limite du robot roulage Intelligent
Comme toute oeuvre perfectible, le robot roulage intelligent
a encore un long chemin à parcourir. Il est important à ce niveau
de soulever les différentes prouesses réalisées par cette
invention des techniciens congolais.
Au regard de multiples efforts consentis pour garantir un
travail bien fait par ses différents appareils mécanique,
électronique et informatique, de multiples inadéquations sont
toujours en vigueur jusqu'à ce jour. Il apparait qu'un des
problèmes majeurs qui semble n'est pas préoccupé le
concepteur de ce système, qui fait l'objet de notre étude est que
le robot roulage intelligent repartit dans certains endroits du pays fonctionne
par minuterie, alors que le temps seul est un paramètre important certes
mais insuffisant pour réguler la circulation avec efficacité. La
régulation automatique, rationnelle et surtout réfléchie,
conduisant le robot roulage à appréhender l'environnement puis
à réagir comme le ferait un agent de sécurité, un
être humain est la prochaine fonctionnalité, la prochaine
étape vers laquelle nous tendons, que nous comptons inclure dans son
fonctionnement. Et pour y arriver, le robot roulage devra se servir des
informations qu'il capte pour premièrement les envoyer dans un
commissariat de police, et deuxièmement les traiter au niveau local, les
examiner en extrayant les maximum des connaissances enfuis dans les images puis
en suite connaitre la voie qui doit avoir le plus de priorité, en
d'autres termes de prendre une position convenable.
La non robustesse face à certaines intempéries
ainsi qu'une fréquence faible de maintenance et de mises à niveau
de ce chef d'oeuvre sont des problèmes que nous devons penser à
remédier, car il arrive de fois qu'au courant de la journée dans
certains coins de la capitale, le robot roulage ne fonctionne pas et ce
dysfonctionnement inattendu est de fois source des accidents.
Page | 14
1.7 Le robot roulage Intelligent, peut-il remplacer la
police de circulation routière ?
L'apport d'un être humain doté de sens et de
certaines facultés comme celle de raisonnement est un facteur important
qui même l'automatisation de certains outils, dans certains secteurs
d'activités semble être incapable de s'en passer. Il est
évident que le robot roulage arrive à repousser les limites de
l'homme sans beaucoup d'ambigüité et avec le maximum
d'efficacité, mais malgré ses capacités, Il aura toujours
besoin de l'assistance d'un expert humain.
C'est le cas avec la production insuffisante des roulages
androïdes et dans le souci d'une régulation convenable et
permanente, la police de circulation routière est l'institution
adéquate, la mieux placée pour épauler les robots dans le
travail quotidien qu'ils sont appelés à faire. Donc, le robot
roulage, bien que réduisant l'effort de l'homme qui n'est plus contraint
de travailler dans des environnements précaires ne l'exclut pas de ce
champ d'action mais se joint à la police de circulation en tant que
membre de cette institution en vue de renforcer et d'offrir aux piétons
ainsi qu'aux conducteurs des automobiles la sécurité
adéquate.
1.8 Une évolution face aux besoins
Espérant trouver une solution beaucoup plus
appropriée aux problèmes liés au trafic routier, en tenant
compte des limites de l'être humain, ainsi qu'à celles du robot
roulage existant, nous avons choisi d'améliorer le système
existant. Il s'avère que le régulateur automatique le mieux
adapté pour indiquer aux acteurs routiers le moment où ils
pourront accéder à la voie, c'est le robot roulage.
Le prototype que nous sommes en train de mettre au point
s'appelle « Robot roulage Intelligent Amélioré ».
L'amélioration vient du fait que le robot roulage qui existe de nos
jours est toujours incapable de réagir comme un être humain.
Sachant qu'il est équipé des caméras de surveillance qui
lui permettent de faire des enregistrements sur la circulation, nous pensons
nous servir de ces informations.
En effet, le robot roulage intelligent amélioré
devra être en mesure d'user de ses données pour évaluer le
trafic en vue d'agir en temps réel. Les nouvelles technologies ainsi que
les ateliers modernes, ensemble avec des chercheurs disponibles permettront
d'améliorer le robot roulage, de manière à lui permettre
de réagir, d'avoir un comportement comme le ferait un expert humain. Le
robot roulage intelligent permet de réguler la circulation en tenant
compte d'un timing précis, alors que face à la
réalité, un policier peut arriver à donner à une
voie plus de temps que prévus en tenant compte de certains
paramètres environnementaux. D'où nous sommes en train de penser
à la manière qui permettrait aux robots roulages intelligents de
tenir compte en plus du timing habituel de son environnement, du nombre de
véhicules sur le trafic, la surface de la voie et tous ces facteurs
l'aideront à prendre une position adéquate et d'après nos
estimation, cela aura pour conséquence la réduction des
embouteillages.
Ce qui implique qu'ils hériteront de certaines
fonctionnalités d'un expert dans le domaine, et ceux-ci seront
combinés avec l'IA de manière à leur permettre
d'exécuter leur tâche avec efficacité. Avec la mise en
place de ces machines, nous ne pourrons affirmer que tous les problèmes
liés à ces domaines ne seront plus, mais néanmoins un
professionnalisme rationnel sera fait dans les taches qui seront
affectées à ceux-ci.
C'est ainsi que dans les lignes qui suivront, il sera
question de présenter les méthodes qui permettent de compter les
objets au travers les images recueillies par le roulage, ensuite évaluer
chaque voie en considérant comme source d'information la capture de
celle-ci prise en temps réel en vue d'attribuer des couts
d'évaluation correspondante.
Nous savons que l'écran par sa conception effectue un
balayage de gauche à droite et de haut en bas, Et
généralement on désigne les coordonnées [0.0] comme
point de départ, il s'agit là
Page | 15
CHAPITRE 2 : TECHNIQUE DE COMPTAGE ET EVALUATION DU
TRAFIC
[3], [7], [9], [14]
C'est avec beaucoup de délicatesse que nous continuons
peu à peu à construire notre puzzle. Ce présent chapitre
éclaire sur certains coins sombres qui se dégagent de la
problématique de notre travail.
En effet, Il sera question de compter les véhicules se
trouvant dans différentes routes au travers des images capturées,
puis d'évaluer le trafic à l'aide d'une méthode en vue de
trouver la direction qui devrait avoir plus de priorité, ceci dans le
but de déduire un cout d'évaluation.
Dans un premier lieu, quelques concepts sur l'image seront
présentés, d'autant plus que c'est elle qui nous donne un
aperçu de l'environnement.
2.1 L'image En informatique
Une image est une représentation ou une reproduction
visuelle, voire mentale, de quelque chose et cette chose pourrait être un
objet, un être vivant ou dans le cas contraire un concept. Elle est
obtenue par transformation d'une scène réelle par un capteur.
Une des plus anciennes définitions de l'image est
celle énoncé par Platon: « J'appelle image d'abord les
ombres ensuite les reflets qu'on voit dans les eaux, ou à la surface des
corps opaques, polis et brillants et toutes les représentations de ce
genre ».
De toutes ces définitions, il en ressort que l'image
possède les caractéristiques suivantes :
o Elle peut être naturelle dans le cas d'une ombre ou d'un
reflet par exemple ;
o Elle peut être artificielle. une peinture, une
photographie, une vidéo, une radio graphie ;
o Elle peut être mentale lorsqu'elles correspondent
à des représentations de nature consciente ou inconsciente,
résultant du phénomène subjectif de perception, selon une
dimension individuelle ou collective. l'image psychique correspond à une
métaphore, une représentation mentale, un rêve, une
imagination .
Un autre paradoxe peut se dégager de la
représentation d'une image. Les objets servant à
représenter une image sont une nature discrète, cela entraine une
représentation nécessairement discrète alors que l'image
en ce qui le concerne, est de nature continue. Par la nature continue d'une
image, nous voyons le monde dans lequel nous vivons. La problématique de
la représentation des images émerge, certains capteurs effectuent
une opération connue sous le nom de la « discrétisation
». Dans des appareils photos numériques, nous pourrons retrouver
cette opération intégrée sous forme de fonction, ce qui
n'est pas le cas avec les appareils photos argentiques.
D'où, faire une étude sur l'image
elle-même devient donc primordiale avant de parler de son traitement
éventuel.
2.2 Quelques notions sur les images
o Pixel
L'unité de base, l'élément essentiel
permettant de mesurer la définition d'une image numérique
matricielle. Son nom provient de la locution anglaise « picture element
», qui signifie « élément d'image ».
Page | 16
du premier pixel situé en haut à gauche de
l'image. Les axes de l'image sont orientés de la manière que
voici :
L'axe X est celui qui est orienté de gauche à
droite ; L'axe Y est celui qui est orienté de haut en bas.
Une image est constituée d'un ensemble de points
appelés pixels, représentant son plus petit élément
constitutif. Pour stocker, traiter les informations imagées, on fait
usage à un tableau à deux dimensions. Il pourra contenir les
informations sur chaque pixel constituant l'image dans son
intégrité.
Un pixel n'a pas de dimension, si on regarde une photo, un
pixel d'un objet situé près de la camera correspond à une
taille plus petite qu'un pixel d'un objet situé loin de la camera,
même si ces deux pixels font partie de la même image.
Valeur d'un pixel
Un pixel a une valeur qui peut être un scalaire servant
à représenter un niveau de gris, ou un vecteur
représentant une couleur, ou toute autre chose suivant le nombre de bit
qui définisse l'encodage. Dans la même logique d'idée, nous
pouvons affirmer que les images dites noir et blanc sont composées de
pixels noirs ou blancs, en d'autre terme deux valeurs possibles. Les images en
niveaux de gris quant à eux sont composées de pixel de valeurs
scalaires représentant la luminosité. En générale,
les valeurs que nous pouvons les attribuées sont entières et
comprises entre zéro (0) qui représente le noir et deux cents
cinquante-cinq (255) qui représente le blanc et cela suivant le codage
sur huit bits.
o Définition et Résolution
On appelle définition le nombre de points (pixel)
constituant l'image, c'est-à-dire sa « dimension informatique
». Le nombre de colonnes de l'image qui multiplie son nombre de lignes.
Par exemple une image possédant 640 pixels en largeur et 480 en hauteur
aura une définition de 640 pixels par 480, notée 640x480.
La résolution est un terme souvent confondue avec la
définition, détermine par contre le nombre de points par
unité de surface, exprimé en points par pouce (PPP, en anglais
DPI pour Dots Per Inch). Un pouce représente 2.54 cm. La
résolution permet ainsi d'établir le rapport entre le nombre de
pixels d'une image et la taille réelle de sa représentation sur
un support physique.
o Le codage de la couleur
Une couleur est un phénomène psychophysique
faisant intervenir la physique de la matière, notamment avec les
interactions des ondes électromagnétiques avec les
matériaux physiques. C'est également un phénomène
psychophysiologique, nous voyons l'aspect interprétation des
phénomènes psychophysiques par le système visuel de
l'être humain constitué notamment de l'oeil et du cerveau.
Fort de ce qui précède, pour représenter
informatiquement une image, il suffit donc de créer un tableau de pixels
dont chaque case contient une valeur. La valeur dans une case est codée
sur un certain nombre de bits déterminant la couleur ou
l'intensité du pixel, on l'appelle profondeur de codage (parfois
profondeur de couleur).
2.3 La détection d'objet
En vision par ordinateur, la détection d'objet est une
méthode permettant de détecter la présence d'une instance
(reconnaissance d'objet) ou d'une classe d'objets dans une image
numérique. Une attention particulière est portée à
la détection de visage et la détection de
Page | 17
personne. Ces méthodes font souvent appel à
l'apprentissage supervisé et ont des applications dans de multiples
domaines, tels la recherche d'image par le contenu ou la vidéo
surveillance.
En dépit de tout cela, la détection d'objet est
une étape importante, que nous devons tenir compte lors de l'analyse de
la circulation routière, face à laquelle nous n'allons pas nous
atteler dans ce présent travail. Mais soulignons qu'avant de parler du
comptage des objets, une étape préliminaire devra être
faites qui est celle consistant à parcourir nos images recueillies dans
leurs globalités, et pour chacune, il sera question de localiser,
détecter les véhicules s'y trouvant, en passant par la
segmentation.
2.4 Comptage des objets
Le comptage est la détermination d'une valeur ou d'une
grandeur numérique par un calcul ou une suite de calculs, le plus
souvent, par une énumération, un dénombrement.
Il existe plusieurs techniques de comptage, chacune pouvant
être utilisées suivant le problème à traiter. Il
nous arrive de fois de vouloir compter le nombre d'objets dans un ensemble
quelconque. Les objets en question peuvent être des nombres, des lettres,
des véhicules ou autres entités mathématiques se trouvant
dans un environnement. Mais dans la mesure où la quantité
d'objets dans l'ensemble serait énorme, ou bien l'environnement dans
lequel se trouvant nos données serait complexe, il sera souvent
difficile, voire même impossible de les compter un par un. Il est donc
bon d'avoir à notre disposition des techniques de comptages.
Déterminer le nombre d'éléments d'un
ensemble revient à dénombrer celui, ainsi ce concept fera l'objet
des lignes suivantes.
2.4.1 Le dénombrement
En mathématiques, le dénombrement peut
être définit comme étant la détermination du nombre
d'éléments d'un ensemble, il s'obtient en général
par un comptage ou par un calcul de son cardinal à l'aide de techniques
combinatoires.
Il s'emploie à étudier et à
dénombrer divers types de groupements que l'on peut faire à
partir d'ensemble fini. Il est né de l'étude des jeux de hasard
et s'est fortement développé sous l'influence du calcul des
probabilités.
Face à une collection d'au plus quatre objets,
l'être humain et peut-être certains animaux grâce à la
perception semblent avoir une notion immédiate de la quantité
présentée sans énumération. Ce
phénomène, aussi appelé subitizing, peut être
étendu au-delà de quatre dans certaines configurations, comme les
points sur les faces d'un dé, Les nombres figurés peuvent
être ainsi plus facilement repérables.
Dénombrer un ensemble revient à
déterminer le nombre de façons de construire un
élément quelconque de cet ensemble. Ainsi, avant de
dénombrer un ensemble, il faut prendre soin de déterminer avec
précision la nature des éléments qui le constituent, afin
d'éviter les « oublis» (oublier des éléments) ou
les « ajouts » (Compter des éléments en trop ou
plusieurs fois). En d'autres termes, il y a lieu de préciser avec soin
:
o La structure de l'ensemble des objets(les objets qui
composent les éléments de l'ensemble sont-ils discernables ?)
;
o La structure des dispositions des objets (y a- t- il
répétition éventuelle d'objets dans la constitution des
éléments de l'ensemble à dénombrer ? y a- t- il un
ordre dans la manière dont sont constitués les
éléments de l'ensemble à dénombrer ?)
Page | 18
C'est ainsi que nous ressortirons les éléments
de l'image au niveau du comptage, éléments qui sont des
véhicules de manière à constituer notre collection
d'objet.
Ensemble et Collection
Un ensemble est définit comme étant une
collection ou un groupement d'objets distincts dont l'ordre n'a pas
d'importance. Par exemple, les ensembles {2,3} et {3,2} sont les mêmes
ensembles. Ces objets s'appellent les éléments de cet ensemble,
On parle aussi d'ensemble vide si celui-ci ne possède aucun
élément. Retenons qu'une chose est un ensemble si nous pouvons
affirmer ou pas qu'un objet est un élément de cette chose.
2.4.2 Principes dans la constitution de la collection
Dans notre démarche visant la constitution de la
collection d'objet, nous devrons tenir compte de :
Principe
|
Détail du principe
|
Adéquation unique
|
Dans la constitution de la collection visant le comptage des
objets, chaque objet ne sera associé qu'à un et un seul
élément de la collection
|
Ordre stable
|
C'est dans un ordre pré établie que les objets
devront être représentés dans notre collection
|
Cardinal
|
Pour connaitre le nombre d'objet compté, se trouvant
sur une image, il suffirait d'énoncer le dernier mot-nombre
enregistré
|
Abstraction
|
Ce principe permet à ce qu'on puisse faire un comptage
des objets hétérogènes
|
Non pertinence
de l'ordre
|
Le parcoure des objets dans la collection pourra se faire
dans n'importe quel ordre
|
|
Tableau 1 : Principe dans la constitution d'une
collection
En ce qui concerne le calcul, la détermination du
cardinal de la collection d'objets, dans la mesure où nous ne sommes
capable d'estimer avec précision le nombre pouvant correspondre à
priori à la taille de notre groupement, soit dans le cas où nous
sommes en présence des ensembles abstraits et en particulier pour des
ensembles mathématiques, le dénombrement peut se faire à
l'aide de la combinatoires.
2.4.3 Technique de Comptage
2.4.3.1 La combinatoire
En mathématiques, la combinatoire, appelée
aussi l'analyse combinatoire étudie les configurations de collections
finies d'objets ou les combinaisons d'ensembles finis, et les
dénombrements.
Cette technique vise en la constitution d'une collection
d'objet, de cette collection se fera une évaluation. Et cette collection
d'objet ainsi constituée représente notre ensemble sur laquelle
nous mènerons nos études de manière par la suite à
connaitre son cardinal.
En particulier, La combinatoire s'intéresse aux
méthodes permettant de compter les éléments dans des
ensembles finis (combinatoire énumérative) et à la
recherche des optima dans les configurations ainsi qu'à leur existence
(combinatoire extrémale).
Page | 19
Etant donné que ce présent travail est plus
axé sur le comptage des objets, nous allons plus nous intéresser
à la combinatoire énumérative, l'un des domaines de la
combinatoire.
2.4.3.2 Combinatoire Enumérative
La combinatoire énumérative est le domaine le
plus classique de la combinatoire, et s'intéresse au dénombrement
de certains objets combinatoires. Il s'agit là de trouver des
décompositions d'objets, de trouver le nombre d'objets ayant une taille
donnée. La suite des nombres de Fibonacci est un exemple de base d'un
problème de combinatoire énumérative.
Avec nos ensembles, il y a diverse manière permettant
de compter les éléments, les différents groupements, et
pour connaitre le nombre maximal de groupement éventuellement possible
à réaliser, nous pouvons faire recours à :
o Arrangement
Lorsque nous choisissons k objets parmi n objets et que
l'ordre dans lequel les objets sont sélectionnés revêt une
importance, nous pouvons les représenter par un k-uplet
d'éléments distincts et on en constitue une liste ordonnée
sans répétition possible, c'est-à-dire dans laquelle
l'ordre des éléments est pris en compte. Une telle liste
ordonnée est appelée un arrangement.
Départ sa notation, elle s'écrit :
(??-??)! ???? 0 = ?? = ??
??!
A??? ? ={
0 ??????????
o Combinaison
A la différence de l'arrangement, on se moque de
l'ordre. Elle désigne le nombre des parties à p
éléments d'un ensemble à n éléments.
Elle se calcul comme suit :
??! (??-??)! ???? 0 = ?? = ??
??!
C?? ?? ={
0 ??????????
2.4.4 Fonction de comptage
Soit C?? ?? , A?? ?? l'ensemble des combinaisons ou
d'arrangement de {1, 2, ..., n}. Nous pouvons considérer la
fonction f(n) une fonction qui à n associe le nombre de
combinaison ou d'arrangement éventuellement possible.
Face à une collection infinie qui résulte du
fait que l'image peut contenir plusieurs objets inconnus à priori, il
sera question de constituer un ensemble finis {????/ n? N} indexée par
l'ensemble des entiers naturels, représentant les objets de l'image. La
fonction de comptage est appelé à être en mesure de trouver
le nombre d'éléments, de groupement que nous pouvons construire
à partir de En.
Toujours en faisant usage à notre fonction de
comptage, le nombre de groupement que nous devrons constituer dépendra
de l'étude dont nous nous apprêtons à faire. La
combinatoire présente au travers ses binômes des
éléments permettant l'étude de la constitution de notre
ensemble.
Page | 20
Notre fonction de comptage quant à elle se calcul de la
manière suivante :
o f(n)= C?? ??
o f(n)= ??????
L'usage d'une combinaison ou d'un arrangement dépendra
du type d'évaluation que nous envisageons de faire. L'évaluation
pourra être axée sur un comptage d'élément soit
d'une combinaison, soit d'un arrangement d'objets, des véhicules
constituant la collection. Le résultat de ce comptage sera la valeur du
la fonction de comptage, obtenue en appliquant soit la combinaison, soit
l'arrangement de n éléments.
Pour être bref, dans le cadre de ce travail, il est
question de constituer un seul groupement, donc p sera égal à 1.
De cela nous pourrons tirer la valeur de f(n) qui sera utilisé lors de
l'évaluation du trafic routier
2.5 Evaluation du trafic
Une autre étude sur le trafic routier, qui est celle
de son évaluation s'avère être indispensable si nous
voulons étudier l'affluence des automobiles. Et cela se fera en fonction
de certains critères qui ont été jugés pertinents
après les analyses. Apres le comptage des objets sur l'image, certains
paramètres seront connus, à savoir :
o Le nombre de véhicule qui ont été
recensé, correspond au nombre des objets sur l'image, après
l'application du technique de comptage ;
o La surface de la route ;
o La surface de tous les véhicules
détectés, se trouvant dans la circulation.
De ceux-ci va se dégager un programme linéaire
qui modélise le comportement de la circulation en un coin
donné.
2.5.1 Programme Linéaire
En optimisation mathématique, un problème
d'optimisation linéaire vise à minimiser, maximiser une fonction
linéaire sur un polyèdre convexe. La fonction que l'on minimise,
maximise ainsi que les contraintes sont décrites par des programmes
linéaires, d'où le nom donné à ces
problèmes. L'optimisation linéaire est la discipline qui
étudie ces problèmes et qui est également
désignée sous le nom de programmation linéaire, terme
introduit par George Dantzig vers 1947.
La programmation linéaire est par définition un
programme qui consiste à trouver n
variables X1, X2 , ..., X?? qui optimise
la quantité ? C?? X ??
?? ??=1 (1*) , et qui satisfont à l'ensemble des
contraintes que voici :
a11 X1 + a12 X2 + ? +
a13 X3 = ??1 a21 X1 + a22
X2 + ?+ a23 X3 = ??2
...
(2*) a??1 X1 + a??2 X2 + ?+
a??3 X3 = ????
...
a??1 X1 + a??2 X2 + ? +
a??3 X3 = ???? ???? X1 = 0;X2 =
0;X3 = 0 (3*)
Page | 21
La quantité (1*) est la fonction
économique qu'il nous est demandé d'optimiser.
Les contraintes (2*) sont appelées les contraintes
liées car elles lient des variables, elles peuvent aussi se mettre sous
la forme =bi ; (i = 1,2,..., n).
Les contraintes (3*) sont appelées les contraintes libres
de non négativité.
Les variablesX1, X2 , ..., X?? sont
appelées pour le moment les variables de décisions mais plus loin
elles seront appelées les variables structurelles des
décisions.
Les C?? sont appelés les coefficients
économiques.
Il sera question de trouver les variables X1,
X2 , ..., X?? qui respectent l'ensemble des contraintes
et qui optimisent la fonction économique, et cette démarche passe
par certaine méthode spécialisée dans le résolution
d'un programme linéaire. Nous dans notre cas, nous allons parler de la
méthode graphique qui, elle aussi peut être utilisée pour
la résolution de programme linaire.
2.5.1.1 Méthode Graphique
Nous cherchons à modéliser un problème
pratique par un programme linéaire. Dans la démarche visant
à résoudre ce programme, étant donné que nous
n'aurons qu'à représenter deux variables, la méthode
graphique semble être l'une des premières méthodes
utilisées à ce sujet.
Système d'axes
Une des conditions de la réussite de notre
représentation graphique est le choix d'un système d'axes. Un
mauvais choix peut rendre une représentation non claire et
imprécise.
|
Grace aux contraintes de non-négativité des
variables de décision, nous nous intéressons seulement au cadran
positif, région communément appelé « la
région des solutions possibles
du problème »
|
|
Représentation graphique des
contraintes
Parmi les solutions possibles d'un problème, il y aura
ceux qui vont satisfaire après l'application de la méthode toutes
les contraintes du programme, appelés solutions réalisables, et
ceux qui vont satisfaire une partie ou aucune de ces contraintes,
appelés solutions non réalisables. Une représentation
graphique des inégalités nous permettra de déterminer
l'ensemble des solutions réalisables.
Résolution graphique du Programme
linéaire
Cette méthode se base sur les théorèmes
fondamentaux du programme linéaire que voici : o Théorème
2 (de Weyl)
Page | 22
Dans ????, tout système d'équation ou
d'inéquation linéaire détermine un ensemble convexe qui
est :
soit ensemble vide : c'est à dire les contraintes sont
contradictoire ;
Optimiser (z=????X??
+ ??2X2)
{X?? = ?? ,X2 = ??
X2= 2X?? + ?? X2 = X??
L'ensemble des solutions réalisables est vide ; Aucun
point de ??2 ne satisfait les 2 contraintes ; cela signifie que les
contraintes sont contradictoires ou incompatibles.
soit un polyèdre convexe ; Optimiser
(z=????X?? +
??2X2)
{X?? = 2 X?? + X2 = ?? -X??+ X2= ?? X?? =
?? , X2 = ??
|
|
|
L'ensemble des contraintes détermine un
polyèdre convexe de n=5 sommets (L'ensemble des SBR est un
polyèdre convexe)
soit un ensemble convexe non borné : c'est à dire
la solution optimale est infinie.
Optimiser (z=????X??
+ ??2X2)
{X?? - X2 = ?? -2X?? + X2 = ?? X?? = ??
,X2 = ??
|
|
|
L'ensemble des SBR est un ensemble convexe non
borné.
o Théorème 3 (THEOREME D'OPTIMALITE)
Dans un P.L dont l'ensemble des SBR est un polyèdre
convexe, l'optimum est nécessairement atteint en un sommet du
polyèdre convexe ; ce qui voudrait dire que la fonction
économique z atteindra son optimum (max ou min) nécessairement en
un sommet.
o Théorème 6 (THÉORÈME
D'INDÉPENDANCE LINÉAIRE DES VECTEURS DE BASE)
Ce théorème stipule qu'il y a une
identité entre la solution de base réalisable et la notion de
sommet du polyèdre convexe engendré par les contraintes. En
d'autres termes, un sommet du polyèdre convexe engendré par les
contraintes est une solution de base réalisable.
Page | 23
Grace à la méthode graphique nous serons en
mesure de résoudre notre programme linéaire, d'y ressortir la
solution optimal. Au regard de notre travail qui porte sur le robot roulage
intelligent amélioré, il sera question de trouver un
modèle mathématique qui exprime son comportement.
2.5.2 La programmation linéaire avec le robot
roulage amélioré
L'évaluation est un processus mental de l'agir humain.
Il vise à trouver un moyen qui permettrait au robot roulage de raisonner
puis d'agir sur la circulation. N'étant pas doté d'un cerveau
humain, il lui appartiendra d'évaluer en tenant compte de la fonction
économique, en passant par la résolution d'un programme
linéaire dont le résultat en terme numérique lui permettra
de mieux comprendre le trafic.
Sachant que la démarche d'évaluation peut viser
à mesurer, quantifier et caractériser une situation, une
entité, un résultat ou une performance de nature complexe et donc
à priori difficilement mesurable est attendu.
Notre étude sera faite sur la distribution,
répartition des véhicules (Objets) sur l'image, et avant de
présenter les contraintes qui ont été
développé, nous énoncerons d'abord notre hypothèse
de départ.
Hypothèse : Nous sommes en présence d'une
congestion de véhicule sur le trafic routier Et, de cela, nous
pouvons affirmer que :
o La somme des aires des objets détectés doit
être supérieur à l'aire non occupée de la voie ;
o La somme des aires des objets détectés ne doit
pas dépasser l'aire de la route.
Le comptage des objets nous aide à connaitre avec
beaucoup de précision l'aire de la route occupée par des
véhicules détectés.
Ainsi, faudrait-il déterminer ce point qui minimise notre
fonction économique.
2.5.3 Formalisation du Problème sous forme de
programme linéaire
Minimiser f(x,y)=x +y
S/C {
??
|
???? = ??(1)
???? = ???? (2)
= 0 ; ?? = 0 (4)
|
|
Ou x est la variable aléatoire qui identifie le
comportement de l'aire des objets détectés, et y la surface de la
route. t la somme des aires des objets détectes, p la surface de la
voie, k : la somme des aires non occupée par des véhicules.
La dernière contrainte est celle de non
négativité inévitable dans la mise au point d'un programme
linéaire.
2.6 Illustration 2.6.1 Illustration
1
De manière progressive et détaillée,
nous montrerons l'évolution de la fonction économique au fur et
à mesure que le nombre de véhicule croit sur le trafic. Trois
scénarios ont été développés :
Page | 24
Nous sommes en présence d'une voie dont la surface est
de 156800 centimètres carrée. Sachant que les objets sont de la
même taille, avec une aire chacune de 5000 centimètres
carrée. La fonction économique : f(x,y)=x +y , Il nous est
demandé de :
Premier scenario
Evaluer le trafic routier avec un seul véhicule
capturé ;
{
5000 X = 151800 5000X = 156800?? X= 0 ;??= 0 f(x,y) attendra son
minimum au point 31.3281
Deuxième scenario
Evaluer le trafic routier avec cinq véhicules
capturés
{
25000 X = 131800 25000X = 156800?? X= 0 ;??= 0 Ce qui nous
permet d'obtenir f(x,y)=6.11256
Troisième scenario
Evaluer le trafic routier avec dix véhicules
capturés
{
50000 X = 106800 50000X = 156800?? X= 0 ;??= 0 C'est ainsi que
f(x,y)=2.81712
Il apparait évident que plus la valeur de la fonction
économique est faible, plus le flux de
véhicule sur le trafic est important. C'est sur base de
toute ces affirmations, que nous pouvons
nous permettre de traiter un cas beaucoup plus concert.
2.6.2 Illustration 2
Nous sommes en face d'une situation qui se présente comme
suit :
Figure 5 : Capture de la
circulation
Cette présentation n'est qu'une illustration que nous
nous sommes proposé d'analyser dans le souci de montrer explicitement la
manière dont le robot roulage est appelé à
réfléchir.
Ces images proviennent des capteurs postés dans
différents endroits, il appartient au robot roulage de faire le choix
parmi les éventualités qui lui sont affectées. C'est ainsi
qu'après le comptage des objets, une préoccupation émerge
qui est celle de chercher à savoir le trafic dont le
Page | 25
flux des véhicules présent devra attirée
le plus notre machine. Sur ce, les informations suivantes ont été
recensées :
o Sur la première trajectoire destiné à
faire passer quatre véhicules à la fois, les caméras ont
repérées quatorze objets ;
o Sur la deuxième, cinq véhicules sont
présents sur une autre route pouvant faire passer deux véhicules
à la fois.
Formulation du problème sous forme de programme
linéaire Notre fameuse fonction économique :
F(x,y)=x+y
Contraintes
145942.7163 X = 10857.29
{ 145942. 7163X = 156800Y X= 0 ; Y= 0
|
Contraintes
51715.08789 X = 16284.91211
{ 51715. 08789X = 68000Y X= 0 ; Y= 0
|
|
La valeur de la fonction est : 0.1436 La valeur de la fonction
est : 0.5543807
Apres l'application de la méthode graphique, il
apparait que la solution optimale est un sommet du polyèdre convexe non
borné supérieurement. Les valeurs ainsi que les données
qui sont présentées ci-dessus proviennent directement des images
de la figure 2.1 après traitement sur l'ordinateur.
Conclusion : En vertu de nos contraintes, en
tenant aussi compte de nos hypothèses de travail, nous pouvons affirmer
que la priorité devra par la suite être accordée à
la première trajectoire car sa valeur de la fonction économique
est faible, après comparaison, ce qui traduit un très fort niveau
de concentration de véhicule sur sa route.
2.7 Intervention du robot après
évaluation du trafic
L'engin va traiter les différentes images provenant
des différentes voies prisent en temps réel. Pour chaque image
correspondra une valeur de la fonction f(x,y). Tel dans notre
précédente illustration, le robot après
l'évaluation du trafic a eu à comparer et ressortir la voie qui
devra le plus attirée le robot roulage intelligent amelioré.
Le policier de circulation se sert de ses sens, de sa
capacité à réfléchir pour guider ses choix et faire
son travail avec beaucoup de finesse, Il a été notre travail de
trouver un moyen qui permettrait au robot roulage intelligent
amélioré de travailler comme un être humain doté de
raisonnement, et ce moyen passe par le comptage et l'évaluation du
trafic routier au travers la programmation linéaire.
Nous avons eu à parler du rôle des robots
roulages, ainsi que de la manière dont ceux-ci arriveront à
réagir sur la circulation. Un autre problème qui fera l'objet du
chapitre suivant est celui de savoir les différentes étapes
liées au traitement des données.
Page | 26
CHAPITRE 3 : MODELE ARCHITECTURAL ET COMPORTEMENT
[9], [13]
Nous avons eu à parler des robots roulages, qui ont
pour objectifs de réguler la circulation, de maintenir l'ordre sur le
trafic routier. Nous avons également développé une
technique de comptage des objets détectés sur l'image
capturée par les différents capteurs ainsi qu'une méthode
permettant d'évaluer la congestion des véhicules à travers
le « Coût du trafic »
A ce niveau il sera définit une architecture
convenable, son comportement tous en tenant compte des différentes
contraintes liées à la réalisation du système, de
la mise en oeuvre jusqu'à l'installation des nouveaux robots roulages.
Le modèle architectural qui sera proposé est un tous, montrant la
structuration appropriée du système, capable de muter en
intégrant d'autre fonctionnalité et ceux en fonction de
l'évolution des besoins.
3.1 Système de régulation
routière
La compréhension du système de
régulation routier nous aide à comprendre les
éléments qui constituent le robot roulage ainsi que l'importance
de chacun.
Un système est un ensemble d'éléments
interagissant entre eux selon certains principes ou règles, pouvant
être déterminé par :
o La nature de ses éléments constitutifs ;
o Les interactions entre ces derniers ;
o Ses interactions avec son environnement.
Ce qui voudrait dire que le fonctionnement du système
de régulation du réseau routier par le roulage androïde ou
le robot roulage dépendra de la nature ses composants ou
éléments, les différentes interactions entre ces derniers
en suite les interactions avec le trafic qui constitue l'environnement dans
lequel il est appelé à travailler. Comme éléments
constitutifs de la machine mécanique, électronique et
informatique, nous trouvons :
o Les feux de signalisations ;
o Les capteurs et autres éléments pouvant
être utilisé pour la capture des images ;
o Le panneau solaire pour l'alimentation ;
o Et autres.
3.2 Architecture en Informatique
3.2.1 Définition
L'architecture représente en informatique la structure
générale liée à un système informatique,
l'organisation des différents éléments du système
et des relations entre les éléments. Cette structure est
conçue suite à un ensemble de décisions
stratégiques prises durant la conception de tout ou partie du
système informatique dans son entièreté.
En ce qui concerne la structure d'un système
informatique, elle n'est à ce jour assujettie à aucune norme. En
matière de logiciels, elle est représentée sous forme de
graphiques tels que des organigrammes, diagramme, etc. Le diagramme peut
concerner un logiciel, une pièce de matériel, un réseau
informatique, un groupe de machines, un sous-système, voire l'ensemble
des dispositifs informatiques d'une entreprise ou d'une institution.
Page | 27
Il arrive que le diagramme omette volontairement certains
détails pour rendre la perspective plus visible et aussi, Il peut y
avoir plusieurs diagrammes d'architecture pour un même système.
3.2.2 Importance d'une Architecture logicielle
Qu'est-ce qu'une architecture est appelée à faire
?
L'analyse fonctionnelle du problème décrit les
spécifications que devra contenir le système. Mais le
modèle architectural permet de :
o Décrire la manière dont le système devra
être conçu de façon à répondre aux
spécifications ;
o De répondre à la question Comment le faire alors
que l'analyse fonctionnelle décrit le quoi faire.
Outre ce qui précède, l'usage d'un
modèle architectural nous apporte des avantages dans le
développement du système, et ceux-ci peuvent se résumer
à :
Compréhension
|
L'usage d'un modèle architectural facilite la
compréhension des grands systèmes complexes, en offrant une vue
de haut-niveau de leur structure et de leurs contraintes
|
Réutilisation
|
De cette spécificité, il y a lieu de souligner
l'identification des éléments réutilisables, parties de
conception, composants, caractéristiques, fonctions ou données
communes
|
Construction
|
Une architecture peut fournir un plan de haut-niveau du
développement et de l'intégration des modules en mettant en
évidence les composants, les interactions et les dépendances.
|
Evolution
|
Permet de mettre en évidence les points où un
système peut être modifié et étendu
|
Analyse
|
Un modèle architectural peut offrir une base pour
l'analyse plus approfondie de la conception du logiciel, analyse de la
cohérence, test de conformité, analyse des dépendances
|
|
Tableau 2 : Avantages d'un modèle
architectural
Ceci étant dit, de notre analyse nous sommes
arrivés à mettre en oeuvre l'architecture du robot roulage
intelligent amélioré, en ce qui concerne la partie comptage et
évaluation du trafic.
3.2.3 Conception de l'architecture logicielle
La phase de conception logicielle est l'équivalent, en
informatique, à la phase de conception en ingénierie
traditionnelle (mécanique, civile ou électrique). Cette phase a
pour objectif la réalisation dans son entièreté du produit
sous forme abstraite avant la production effective.
Il en résulte aussi que la nature immatérielle
du logiciel rend la frontière entre l'architecture et le produit
beaucoup plus floue que dans l'ingénierie traditionnelle.
De cette conception, l'architecture logicielle nous induit
à obtenir le plus gros livrable d'un processus logiciel. En effet, la
phase de conception devrait consommer autour de 40% de l'effort total de
développement et devrait être supérieur ou égale, en
effort, à la phase de mise en place du système d'information.
Il en résulte qu'à cause de la pertinence
liée à ce sujet, ainsi qu'à ce domaine, certains aspects
de développement ne feront pas l'objet de ce travail. Rappelons que
l'image que les
Page | 28
3.3 Architecture du robot roulage Intelligent
Amélioré
Figure 6 : Architecture du système
3.4 Données à l'entrée et
à la sortie du Système
L'architecture présentée ci-dessus montre avec
beaucoup des précisions le fonctionnement détaillé de la
partie comptage et évaluation du robot roulage intelligent
amélioré. Et dans son fonctionnement, notre engin a besoin des
informations à l'entrées, sur base des quels un traitement va
s'opérer pour enfin restituer un résultat en fonction de certain
besoin.
Les informations à l'entrée pourront se
présenter de la manière suivante :
|
|
Figure 7 : Capture de la circulation
|
Figure 8 : Capture de la circulation Figure 9 : Image avec
Objets détectés
|
|
Page | 29
capteurs prendront, à l'initiale est brute. Un
pré traitement sur celle-ci est indispensable, si nous visons à
obtenir des résultats efficaces. Ensuite, devra intervenir la
détection des objets, un des célèbres algorithmes dans ce
domaine « La marche aléatoire » communément connu sous
le nom de « Random Waker » devra faire l'affaire dans le but de
segmenter l'image en détectant les objets.
Avant qu'intervienne le comptage des objets sur l'image, nous
présumons que les véhicules ont déjà
été repérés, comme nous le démontre la
figure 3.4. C'est ainsi qu'à l'entrée de notre architecture, nous
aurons des images pré traitées avec les objets
détectés.
Et en sortie, le système devra être en mesure de
nous retourner l'image privilégiée, privilégiée
à cause de la masse importante de véhicules sur le trafic en
tenant compte de l'aire de la voie, du nombre de véhicule sur la voie,
...
3.5 Description, Comportement de l'architecture
Chaque opération inclut dans notre
précèdent architecture a sa raison d'être dans le
système, Il apparait utile de parler de la nécessité de
chacune en explicitant les différentes sous opérations qui
pourraient exister. Notre architecture comme nous l'avons constatée
comprend :
o Des compteurs : Leur tâche est d'extraire des
informations contenues dans l'image ;
o Des évaluateurs : L'étude du trafic routier ;
o Un comparateur : La restitution d'un résultat en
sortie.
3.5.1 Compteurs
Au nombre des routes qui nous sera demandés de
réguler la circulation correspondra un nombre d'image à traiter.
Au niveau de l'image à l'entrée du système
nécessitant un traitement correspondra un nombre de compteur d'objets,
habilité à compter avec le minimum d'incertitude.
Figure 10 : Image avec objets Comptés
Pour chaque image, il sera question après avoir
repérés les différents véhicules, de les
comptés en utilisant une des techniques qui a été
émis ci-haut, afin d'avoir une idée plus précise sur la
densité du passage routier.
3.5.2 Evaluateurs
Un évaluateur consiste en une évaluation. Et
l'évaluation quant à elle est un processus mental de l'agir
humain. La démarche d'évaluation peut viser à mesurer,
quantifier et caractériser une situation, une entité, un
résultat ou une performance, de nature complexe et donc à priori
difficilement mesurable.
Page | 30
Pour chaque compteur utilisé correspondra un nombre
d'évaluateur attendu. Son rôle est simplement celui de trouver un
coût du trafic routier relatif à une voie de circulation. Cette
évaluation nécessite la connaissance préalable de certains
paramètres à savoir :
o Le nombre de véhicule sur le trafic résultant du
comptage ;
o La surface de la route, ce paramètre nous permet de
prendre en compte la capacité de la voie ;
o La surface de la route occupée par des
véhicules.
Et ces paramètres proviennent du compteur,
appelé à traduire en numérique certaines informations
provenant de l'image.
L'évaluation passe par :
o La mise au point de la fonction f(x,y),
présentée ci haut ;
o L'utilisation des contraintes émises en fonction de
notre étude sur la circulation ;
o La résolution du programme linéaire ;
o L'estimation de la valeur minimale de la fonction se
rapportant à une image capturée.
3.5.3 Comparateur
Un seul comparateur suffit pour effectuer le filtrage des
images. Le comparateur est la dernière étape qui
précède la restitution de l'image privilégiée. Et
pour cela, nous ferons usage des résultats provenant de
l'évaluation.
Il a pour mission de comparer les valeurs de et celle dont le
coût du trafic sera moins important correspondra à l'image qui
devra être restitué en sortit.
Jusqu'ici, nous avons eu à parler du robot roulage,
les différents apports ainsi que certaine fonctionnalités que
nous avons jugée utiles d'ajouter. Outre, il est aussi nécessaire
de parler du domaine d'étude, l'IA ainsi que les améliorations
que nous avons pensées utile d'incorporer dans le système
existant par rapport à ce domaine dans le souci de le rendre encore plus
performant. Tel sera l'objet de notre prochain chapitre.
Page | 31
CHAPITRE 4 : INTELLIGENCE ARTIFICIELLE
[4], [5], [8], [9], [15]
La pensé d'instaurée un robot roulage
intelligent amélioré nous est venu du faites que le robot roulage
intelligent existant présente des lacunes dans son fonctionnement. Cette
innovation proprement congolaise découlant du domaine de l'IA n'a pas
échappée à se faire remarquer. Alors, La
nécessité de montrer le comportement du nouveau système
face aux nouvelles fonctionnalités et à l'environnement semblent
être indispensable.
4.1 Un domaine plein de ressource
Figure 11 : IA
L'un des créateurs de l'IA, Marvin Lee Minsky, le
définit comme « la construction de programmes informatiques qui
s'adonnent à des tâches qui sont, pour l'instant, accomplies de
façon plus satisfaisante par des êtres humains car elles demandent
des processus mentaux de haut niveau tels que : l'apprentissage perceptuel,
l'organisation de la mémoire et le raisonnement critique ». Deux
mots clés sont inclus dans ce domaine de recherche, à savoir
« artificiel » qui fait allusion à l'usage des ordinateurs ou
de processus électroniques élaborés et « intelligence
» associé à son but d'imiter le comportement des êtres
humains.
En d'autre terme, nous pouvons définir l'IA comme
étant le nom donné à l'intelligence des machines et des
logiciels. Elle se veut être une discipline scientifique recherchant des
méthodes de création ou de simulation de l'intelligence, en
d'autres termes, elle représente la possibilité pour l'homme de
pouvoir être en mesure de créer un être à son image,
de fabriquer des machines qui pourrait penser, raisonner, comprendre,
apprendre, décider, voire rire ou aimer à notre place. Bref,
reproduire les fonctions intelligentes de l'homme, certaines fonctions
biologiques. L'IA devait tout régler : plus besoin de programmer, les
systèmes allaient fonctionner pratiquement tout seuls, sans jamais se
tromper.
Parmi les multiples raisons qui ont milité pour la
création de l'IA, nous pouvons citer :
o Le désir d'une technologie plus conviviale ;
o Le besoin d'une automatisation plus complète afin
que des robots intelligents puissent remplacer les hommes pour des tâches
répétitives ou dangereuses, d'analyser intelligemment beaucoup
d'informations en un temps record.
Page | 32
4.1.1 Présentation du système
|
A l'entrée de notre système, nous aurons une
suite d'image capturée, qui sera envoyée au système d'IA
en vue d'un traitement efficace. Le programme que nous devrons mettre en
oeuvre, représente d'après cet architecture le MI, qui sera
appelé à interroger la base des connaissances et restitué
en sortie une image suivant certains critères émis ci haut.
|
|
En soit, la conception d'un robot roulage intelligent
indépendant des autres n'est pas mauvaise, car celui-ci arrive à
lui seul à réguler en temps réel la circulation, du mieux
qu'il peut. Précédemment, nous avons eu à parler des
caméras servant à recueillir des données et cela dans le
souci de permettre un traitement efficace. Ce qui nous intéressera
encore plus dans les lignes suivantes, c'est de trouver un moyen qui
faciliterait encore plus la fouille des données. Et pour cela, nous
pensons déjà à un système tel que toutes les
informations devront être centralisé, puis synchronisé en
un espace de temps réduit vers un serveur des données. Ce qui
nous amène peu à peu à la naissance d'un système ou
les différents robots roulages repartis dans différents coins du
pays devront se communiquer, échangeant des données. Au niveau du
serveur, ces données pourront par exemple aider à traquer des
criminels circulant sur la voie publique, à repérer les
conducteurs des véhicules qui sont en train d'enfreindre le code de la
route, et autres.
4.2 De l'IA Classique à l'IAD
C'est au début des années 1970 naquit l'IAD,
pour palier à certains problèmes auxquelles nous sommes
butés lorsque nous utilisons l'approche classique de l'IA.
Il a été démontré que le travail
fait par une machine répond plus au besoin que celui fait par l'homme.
Dans un premier temps, les informations qui seront captées par le robot
roulage lui permettront de prendre une position telle que les embouteillages et
autres désagrément seront réduits. Il apparait
après tous cela que les données recueillies sont un
véritable trésor qui nous renseigne sur la circulation des
véhicules, ne pas les exploités convenablement seraient du
gâchis. En tenant compte de l'utilisation diversifiée que nous
pourrions faire des données, un serveur de sauvegarde devient utilise
dans notre cas.
Ce serveur de sauvegarde des images devrait être en
liaison avec plusieurs robots, ce qui nous induit à mettre en oeuvre un
système qui devra gérer la sauvegarde de plusieurs robots
à la fois, ce qui nous induit déjà de penser à
plusieurs agents.
Outre, l'IA s'attache à la construction des programmes
informatique qui sont capable d'exécuté des tâches
complexes en s'appuyant sur une centralisation et une concentration de
l'intelligence au sein du système unique. Il en résulte ainsi un
certain nombre de difficultés dues pour la plupart à la
nécessité d'intégrer au sein d'une même base de
connaissance : l'expertise, les
Page | 33
compétences et les connaissances d'individus
différents qui dans la réalité communiquent et collaborent
à la réalisation d'un but commun. A la différence de l'IA
classique qui modélise le comportement intelligent d'un seul agent,
l'IAD s'intéresse à des comportements intelligents qui sont le
produit de l'activité coopérative de plusieurs agents.
L'IAD s'organise autour de trois axes :
IAP
Elle concerne le développement de langage et
d'algorithmes pour l'IA distribué, en visant l'amélioration des
performances des systèmes, par la proposition de langages concurrents et
d'architectures parallèles sans toutefois s'intéresser à
la nature du raisonnement ni à l'intelligence des comportements.
La RDP
Elle s'intéresse quant à elle à la
manière de décomposer un problème particulier sur un
ensemble d'entités distribuées et coopérants,
s'intéressant aussi à la manière de partager la
connaissance du problème entre entités et d'en obtenir la
solution.
Les SMA
Il s'agit de faire coopérer un ensemble
d'entités proactives et relativement indépendantes appelés
« agents » dotés d'un comportement intelligent et de
coordonner leurs buts et leurs plans d'actions pour la résolution des
problèmes.
Etant donné que le SMA touche de près à
notre étude, nous ne manquerons pas de dire un mot en ce qui le
concerne.
4.3 SMA
Un système d'information est un ensemble
organisé de ressources (personnel, données, procédures,
matériel, logiciel, ...) permettant d'acquérir, de stocker, de
structurer et de communiquer des informations sous forme de textes, images,
sons, ou de données au sein des Systèmes.
Depuis quelques années, les SMA ont pris une place de
plus en plus importante en informatique, que ce soit dans le domaine de l'IA,
ou dans ceux des systèmes distribues, de la robotique, ou même
dans ce champ disciplinaire nouveau qu'est la «vie artificielle», en
introduisant la problématique de l'intelligence collective et de
l''émergence de structures par interactions.
4.3.1 Principe
Longtemps, l'informatique en général et l'IA en
particulier ont considéré les programmes comme des entités
individualisées capables de rivaliser avec l'être humain dans des
domaines précis. Cette compétition entre l'être humain et
la machine s'est accompagnée d'une identification de la machine à
l'humain, un programme représentant directement un «expert»
capable de résoudre un problème par lui-même.
Les problèmes sont parfois naturellement posés
de manière distribuée. Que l'on doive concevoir un ensemble de
robots explorateurs ou que l'on soit amené à définir un
système de contrôle de trafic aérien, routier. Le
problème suppose qu'il existe un certain nombre d'entités
capables d'agir et d'interagir. Dans certains cas, comme dans celui des robots
explorateurs, les interactions peuvent être positives et il est possible
aux agents de s'aider les uns les autres, alors que dans d'autres, tels que le
contrôle de trafic routier, elles peuvent être négatives,
les véhicules
Page | 34
se gênant mutuellement, et la difficulté
consiste à faire en sorte qu'ils y aillent une bonne surveillance
dans la circulation.
C'est ainsi, en mettant l'accent sur les interactions et plus
exactement en analysant les systèmes d'interactions qui existent entre
les agents, que les SMA se distinguent des approches systémiques plus
classiques en prenant le parti de l'émergence et en considérant
que l'action et l'interaction sont les éléments moteurs de la
structuration d'un système dans son ensemble.
4.3.2 Définition
En informatique, un SMA est un système
constitué d'un ensemble d'agents, situés dans un certain
environnement et qui interagissent avec le serveur en vue de stocker des
informations d'après une certaine organisation.
Par définition, un agent est une entité
caractérisée par le fait qu'elle est, au moins partiellement,
autonome dans la mesure où chaque robot régule la circulation en
tenant compte des informations qui sont présentes. Il peut être un
processus, un être humain, un robot tel que dans notre cas,...
Les SMA peuvent être vus comme la rencontre de divers
domaines :
L'IA pour les aspects prise de décision de l'agent L'IAD
pour la distribution de l'exécution les systèmes
distribués pour les interactions
Le SMA met un accent beaucoup plus particulier sur la
distribution de l'intelligence, ainsi, chercherons nous à savoir en quoi
consiste cette distribution de l'intelligence.
4.3.3 Pourquoi distribuer l'intelligence ?
L'évolution technologique aujourd'hui rend la mise au
point des certains système plus aisés. Ce qui était jadis
impossible dans le passé le devient aujourd'hui, la communication entre
diffèrent entité installé sur le réseau devient
monnaie courante. Dans le souci de rendre notre agent artificiel apte à
recevoir puis envoyer un volume important des données, le besoin de
communication naquit. L'évolution technologique et des besoins face
à la mise en place des robots roulages intelligent dans
différents endroits nous amène à parler de la distribution
de l'intelligence.
Avantages de l'informatique distribuée
Les avantages que nous apporte la distribution des
informations sont nombreux, nous les avons résumés en quelques un
:
L'augmentation des ressources : Le seul fait que chaque robot
devra envoyer à un serveur des informations sur le trafic augmente les
ressources disponibles.
La robustesse du système : dans le cas présent,
nous avons eu à émettre l'hypothèse qui stipule que les
robots sont autonomes. En cas de panne au niveau du réseau, cela ne va
pas perturber en aucun cas le fonctionnement du robot.
Page | 35
4.3.4 Rôles du SMA dans la mise au point du robot
roulage Trois principaux rôles ont été
épinglés, entre autre :
Le problème majeur que nous visons à
résoudre est la réduction de la congestion des véhicules
dans une ville, et notre système devra arriver de pallier à ce
dernier de manière distribuée. Les différents agents
repartit un peu partout dans la ville prendront des décisions
rationnelles de manière autonome ;
la simulation de phénomènes complexes. Les
agents simulent des actions des êtres humains ;
La gestion et le maintien d'un environnement de travail.
Précisons que les actions physiques effectuées par les agents
sont des actions réelles, interagissant avec l'environnement
extérieur, qui est leur environnement de travail.
Enfin, La régulation de la circulation se trouve
être un problème qui est étroitement lié au domaine
de transport des véhicules. Aussi, nous ne manquerons pas de dire un mot
sur le STI qui explique mieux les besoins de mettre au point des outils qui
touchent à la circulation.
4.4 STI
La révolution numérique, avec le
développement de l'Internet mobile, des smartphones, de l'open data, du
big data, et l'évolution des technologies de communication comme le LTE
et la 4G, a grandement modifiée la chaîne de valeur des
métiers traditionnels du transport. Cette évolution fait
émerger de nouveaux usages et de nouvelles solutions pour gérer
les flux urbains, la mobilité des voyageurs et des marchandises, le
traitement de l'information en situation normale et perturbée ainsi que
les dispositifs de paiement. Le développement de l'internet mobile et de
la géolocalisation a fait évoluer en profondeur tous les modes de
transport et a permis l'apparition de nouveaux services de mobilité
comme le covoiturage, l'auto partage, la gestion des véhicules sur le
trafic, impactant fortement les modèles économiques traditionnels
des acteurs.
Figure 12 : Aperçu sur le STI
Les STI sont les applications des nouvelles technologies de
l'information et de la communication au domaine des transports. L'intelligence
intervient du faite que leur développement repose sur des fonctions
généralement associées à l'intelligence :
capacités sensorielles, mémoire, communication, traitement de
l'information et comportement adaptatif. On peut retrouver les STI dans
plusieurs champs d'activité, notamment dans l'optimisation de
l'utilisation des infrastructures de transport, dans l'amélioration de
la sécurité (notamment de la sécurité
routière) et de la sûreté ainsi que dans le
développement des services. Les STI interviennent aussi dans un contexte
de congestion du trafic routier d'une part et de
Page | 36
développement des nouvelles technologies de
l'information d'autre part, en particulier dans les domaines de la simulation,
du contrôle en temps-réel et des réseaux de
télécommunication.
4.4.1 Objectif
Il tourne au tour de deux points essentiels à savoir :
L'utilisation des nouvelles technologies de l'information et
de la communication, permet de résoudre le problème de
l'accroissement des moyens de transport répondant à
l'accroissement des besoins ;
Le développement des nouveaux services
dédiés au transport.
Un point très capital reste à traiter. Certes
nous avons eu à parler de l'IA, qui est et reste l'un des domaines
pivots se situant à la racine des nouvelles inventions. Nous avons
également mis un accent un peu particulier sur l'importance de
distribuée l'intelligence à travers les agents, SMA dans le but
d'optimiser l'efficacité des services de sécurité dans la
gestion de la congestion, la sécurisation des agents qui participent
à la circulation routière. Il est évident que
l'intelligence que devra posséder nos agents artificiels ne tombera pas
du ciel. La présence d'un expert dans le domaine de régulation
semble être d'une nécessité débordante. L'autre
aspect des choses serait de trouver le moyen le plus recommandé, pouvant
nous aider à inculquer cette connaissance provenant de l'expert humain
au robot roulage intelligent amélioré. C'est la raison pour
laquelle que l'utilisation d'un des outils de l'IA qui se nomme «
Système Expert » devient important, car les méthodes
algorithmiques exactes semblent être inefficace pour faire cette
tâche.
4.5 Système expert
Les Systèmes Experts constituent l'un des domaines de
l'IA le plus utilisé. L'idée d'un système expert est de
permettre à un expert d'un domaine quelconque tel que la
médecine, la géologie, les assurances, les banques, ... de
communiquer son savoir-faire à un ordinateur dans le but de faire
utiliser son expertise par un non expert. En d'autres termes, nous sommes en
train de faire allusion à la reproduction du raisonnement.
La plus part des activités intelligentes relevant de
l'être humain, reposent sur des connaissances nombreuses et
variées qui sont appelées à être exploités
à bon escient. Ces systèmes sont construits notamment pour
atteindre les performances d'un expert humain dans ses connaissances
limitées en exploitant un ensemble des connaissances acquises par des
experts dans ce domaine. Dans notre cas, le robot roulage sera conçu de
manière à simuler le comportement d'un expert humain, un agent de
sécurité.
Outre, Les systèmes experts sont des logiciels,
bientôt aussi des matériels, destinés à remplacer ou
assister l'homme dans des domaines où l'expertise humaine est reconnue
insuffisamment structurée pour constituer une méthode de travail
précise, sûre, complète, directement transposable sur
ordinateur.
D'une manière générale, un
système expert est un outil capable de reproduire les mécanismes
cognitifs d'un expert, dans un domaine particulier. Il s'agit de l'une des
voies tentant d'interagir à l'IA. Plus précisément, un
système expert est un logiciel capable de répondre à des
questions, en effectuant un raisonnement à partir de faits et de
règles connues. Il peut servir notamment comme outil d'aide à la
décision.
Figure 13 : De l'IA aux systèmes experts
Page | 37
4.5.1 L'Expert
Un expert est une personne qui a longuement travaillé
dans un domaine et qui connaît tous les rouages. Il est différent
d'une personne novice.
Ils constituent le point clé du développement
d'un système expert. Ils doivent donc être suffisamment
disponibles lors de la phase de l'extraction de la connaissance et lors du
suivi de l'application. C'est l'expert qui détient le savoir et le
savoir-faire du domaine d'expertise. C'est aussi l'expert qui fournit les
connaissances nécessaires liées au problème.
4.5.2 Composants
BC
|
|
Ou B.C représente la base des connaissances et M.I, le
moteur d'inférence
|
|
Ce module rassemble le savoir et le savoir-faire de l'expert,
dans le domaine concerné. Il s'agit donc de connaissances qui sont
permanentes et qui sont exprimées sous forme de faits ou de
règles. Les faits constituent des connaissances factuelles et les
règles constituent des connaissances opératoires.
MI
Le MI est un mécanisme qui permet d'inférer des
connaissances nouvelles à partir de la BC du système. Il est
basé sur des règles d'inférence qui régissent son
fonctionnement. Il a pour fonction de répondre à une
requête de la part d'un utilisateur ou d'un serveur afin de
déclencher une réflexion définie par ses règles
d'inférence qui utiliseront la base de connaissance. Il peut alors
fonctionner en chaînage avant, chaînage arrière ou
chaînage mixte.
Le MI est donc un programme qui comprend le modèle de
raisonnement et qui construit un raisonnement en exploitant la BC en fonction
de la situation fournie par la base des faits.
4.6 De l'IA aux Systèmes Experts
Page | 38
Cette petite illustration encapsule certaines notions qui ont
été émises ci-haut, afin de montrer les liens qui s'en
découlent.
Nous avons eu à parler de l'IA qui cherche à
octroyer à des machines de l'intelligence de manière à
leur permettre d'accomplir des tâches qui jusqu'à preuve du
contraire sont accomplies de manière beaucoup plus satisfaisante par
l'homme. Et, face au besoin imminent de distribuer l'intelligence, on a eu
à montrer que l'IAD par son apport, augmente l'efficacité du
système dans une gestion collectif de la circulation. De cette
distribution de l'intelligence, naquit le besoin de coopération des
robots roulages intelligents améliorés, qui ne diminue en aucun
cas l'autonomie de nos engins, mais renforce le besoin d'une
sécurisation plus adéquate. Sachant le principe de minuterie, sur
base de quel fonctionne le robot roulage intelligent actuel, la présence
d'un expert, d'un spécialiste de régulation routière
s'avère être indispensable, afin de donner à notre nouveau
dispositif mécanique, informatique et électronique la
possibilité de réagir comme le ferait un policier humain,
d'où l'entré en scène du système expert.
4.7 Comportement du système
Quelle est le rapport entre ces concepts avec notre travail
qui traite sur la mise au point des robots roulages intelligent
amélioré?
De cette énigme qui se veut être le
résumé de ce chapitre, nous pourrons dire que l'IA se veut
être comme nous l'avons dit précédemment une discipline
scientifique recherchant des méthodes de création dans l'objectif
de simuler l'intelligence. Cet intelligence pouvant provenir de la
capacité du robot roulage à collecter et traiter des informations
en temps réel avec une vitesse de réaction inégalable
à celui d'un être humain, que nous visons à accorder au
robot roulage va être combiné avec l'expertise d'un expert humain,
nous renseignant suivant ses connaissances et son expérience les
difficultés face aux quelles le système sera confronté. Et
tout cela sera incorporé dans des agents, nos robots roulages
appelés à travailler de manière autonome en
réduisant la congestion dans la circulation.
Nous espérons avoir éclaircie les choses, avoir
parlé des notions et concept essentiel en rapport avec la conception de
notre robot roulage intelligent. Il sera question prochainement de donner un
point de vue beaucoup plus pragmatique du système de régulation.
Ce point de vue sera mis en valeur au travers une application, un programme
informatique que nous nous proposons de présenter dans le chapitre
suivant.
Page | 39
CHAPITRE 5 : SIMULATION ET RESULTAT
[1], [2], [6], [9], [16]
Dans l'objectif de donner une image beaucoup plus pratique
sur le comptage des objets et l'évaluation du trafic routier, nous avons
pensé au niveau expérimental de mettre en place un outil
informatique, qui devra nous permettre de tester toutes les théories que
nous avons pu développer tout au long de ce récit, et ce fameux
teste se fera à travers un simulateur qui aura pour but de reproduire de
façon virtuelle le comportement du roulage humain.
5.1 Simulation
Une simulation est un outil utilisé par le chercheur,
l'ingénieur, le militaire, etc. pour étudier les résultats
d'une action sur un élément sans réaliser
l'expérience sur l'élément réel. On parle de
simulation numérique lorsque l'outil de simulation utilise un
ordinateur.
L'objectif poursuivit dans la simulation, par les chercheurs,
les ingénieurs, les militaires et bien d'autres professionnels est
souvent de chercher à savoir : quel sera le résultat d'une
expérience si on exerce une action sur un élément. Dans de
nombreux cas, l'expérience en question pourrait s'avérait
être irréalisable, trop couteux, c'est ainsi qu'on pourrait faire
recours à la simulation pour essayer d'apprivoiser le résultat
escompter.
Simulation en Informatique
Par définition, la simulation informatique
désigne l'exécution d'un programme informatique sur un ordinateur
ou un réseau, en vue de simuler un phénomène physique
réel et complexe. Elle peut permettre de limiter le risque et
d'éviter le cout d'une série d'épreuves réelles, en
offrant un léger aperçu sur le développement d'un
système trop complexe, pour simuler avec des simples formules
mathématiques.
5.2 Analyse du Problème
Nous savons très bien que notre robot roulage
intelligent amélioré sera un mélange de l'informatique,
l'électronique et aussi de la mécanique, au regard de moyen
limité mise à notre disposition, nous avons pensé à
un simulateur, qui aura pour objectif principal de traduire le comportement du
robot appelé à recevoir les données d'entrée qui
seront puiser dans l'environnement, en un résultat attendu à la
sortie.
Rappelons de notre architecture que nous avons
précédemment présenté, montrant les étapes
primordiale du système, nous sommes partie de plusieurs images provenant
des routes au milieu du quel, à côté duquel se trouvent le
robot roulage. Ces différentes images devront au préalable
être traitées, et de ce traitement découlera une
détection de tous les objets.
C'est ainsi que le problème qui reste à
résoudre est celui de chercher à savoir la route à
priorisé indépendamment du seul critère de minuterie qui
dans certains cas nous emmène à une régulation
biaisée. L'image privilégiée résulte d'une suite
d'opération passant par un compteur, un évaluateur puis, un
comparateur.
Outre, le simple fait de posséder un ordinateur reste
de loin suffisant pour permettre à l'outil informatique d'effectuer ce
travail de géant. Il lui faudrait d'autres outils, programmes à y
incorporé, en ajoutant à tout cela des connaissances et
compétences requises pour mettre sur pied
Page | 40
notre simulateur. C'est la raison pour laquelle que nous
aurons à choisir un langage de programmation parmi ceux qui existent
pour le développer.
5.3 Technologie Utilisée
Le choix d'un langage de programmation trouve sa place du
faite que nous sommes appelés à concevoir un logiciel
informatique.
En informatique, un langage de programmation est une notation
conventionnelle destinée à formuler des algorithmes et de
produire des programmes informatiques qui les appliquent. D'une manière
similaire à une langue naturelle, un langage de programmation est
composé d'un alphabet, d'un vocabulaire, des règles de grammaire,
et de significations. Il sert de moyen de communication par lesquels le
programmeur communique avec l'ordinateur, mais aussi avec d'autres
programmeurs.
Notre choix pour le développement d'une application
pouvant servir de simulateur a été porté sur le c#.
5.3.1 C Sharp (C#)
5.3.1.1 Généralité sur le C#
|
C# .NET est le langage de programmation phare de Microsoft.
Il a été développé dans le but de pouvoir
créer facilement divers types d'applications en tirant le meilleur des
produits et technologies Microsoft. Les créateurs du langage se sont
inspirés des langages existants en s'attachant à retenir le
meilleur de chacun d'eux.
|
|
Aussi n'est-ce pas étonnant de retrouver un typage
fort, une approche orientée objet et une syntaxe rappelant à la
fois celle du C++ et du Java. Le couple C# et Framework .NET englobe les
dernières avancées des langages de programmation. Ces
améliorations, fortement inspirées des langages dits
fonctionnels, font de C# un des langages les plus modernes et aboutis, sans que
jamais la productivité et la solidité du code ne soient
compromis. Aujourd'hui, C# .NET est de plus en plus utilisé dans le
monde professionnel. Sa puissance et son interopérabilité avec
les produits et technologies Microsoft font de lui un langage sûr et
pérenne.
Il est un langage de programmation orienté objet comme
cela a été dit précédemment, commercialisé
par Microsoft depuis 2002 et destiné à développer sur la
plateforme Microsoft .NET. Dérivé du C++ et très proche du
Java dont il reprend la syntaxe générale ainsi que les concepts,
y ajoutant des notions telles que la surcharge des opérateurs, les
indexeurs et les délégués, Il est utilisé notamment
pour développer des applications web sur la plateforme
ASP.NET.
Récemment sortit sur le marché, il a
été disponible en versions beta depuis l'année 2000 avant
d'être officiellement disponible en février 2002 en même
temps que la plate-forme .NET 1.0 de Microsoft à laquelle il est
lié. Le langage C# ne peut fonctionner qu'avec cet environnement
d'exécution. Celui-ci rend disponible aux programmes qui
s'exécutent en son sein un ensemble
Page | 41
très important de classes. En première
approximation, on peut dire que la plate-forme .NET est un environnement
d'exécution analogue à une machine virtuelle Java, connue sous le
nom de JDK.
5.3.1.2 Version
C# est un langage de programmation qui a connu beaucoup des
mutations. Et chaque version, est accompagnée d'un ensemble
cohérent de composants logiciels structurels, qui sert à
créer les fondations ainsi que les grandes lignes de tout ou d'une
partie d'un logiciel, connue communément sous le nom de Framework. Le
Framework .NET en ce qui le concerne est une énorme boîte à
outils qui contient beaucoup de méthodes permettant de construire toutes
sortes d'applications.
Nous pouvons résumer l'évolution de ce langage
de programmation dans le tableau ci-
après :
C# 1.0
|
Visual
studio.Net 2002
|
C# 1.2
|
Visual
studio.Net 2003
|
C# 2.0
|
Visual studio 2005
|
C# 3.0
|
Visual studio 2008
|
C# 4.0
|
Visual studio 2010
|
C# 5.0
|
Visual studio 2012
|
C# 6.0
|
Visual studio 2015
|
|
Tableau 3 : Version de C#
5.3.2 Compilateur
Le compilateur que nous avons eu à utiliser est le
Microsoft Visual Studio dans son édition 2012. Il est un ensemble
complet d'outils de développement permettant de générer
des applications web
ASP.NET, des services web XML, des
applications bureautiques et des applications mobiles. Avec le numéro de
version interne qui est 11.0, Visual Basic, Visual C++, Visual C# utilisent
tous le même environnement de développement intégré
(IDE), qui leur permet de partager des outils et facilite la création de
solutions faisant appel à plusieurs langages.
Visual Studio 2012, introduit le développement
d'applications sur l'environnement Windows RT. Le SDK Windows Phone 8.0 est
également d'avantage mis en avant. Il introduit la version 4.5 du .NET
Framework et les versions compatibles de Windows, Windows 7 et Windows 8.
Soulignons déjà l'existence d'une version plus récente de
Visual Studio, sous son édition 2015 avec la version 4.6.1 du Framework,
publie le 17 novembre 2015.
Cette démarche visant à traiter des
informations imagées nous oblige à utiliser une mémoire
considérable, des matériels de bonne qualité. Et pour
nous, l'existence d'une bibliothèque de traitement d'image sur c# ne
vient que nous rendre la tâche encore plus facile, dans le
développement de notre simulateur. Celle-ci se prénomme «
OPENCV ».
5.3.3 Librairie
5.3.3.1 Libraire en Programmation
Apparues dans les années 1950, elles sont devenues un
sujet incontournable de programmation, utilisées pour réaliser
des interfaces de programmation ainsi que des langages de programmation.
Page | 42
En informatique, une bibliothèque ou librairie
logicielle (ou encore bibliothèque des programmes) est une collection de
fonctions utilitaires, qui peut être déjà compilée
et prête à être utilisée par des programmes sans pour
autant avoir à les réécrire. Les bibliothèques sont
enregistrées dans des fichiers semblables, voire identiques aux fichiers
de programmes sous la forme d'une collection de fichiers. Les fonctions dans
une bibliothèque logiciel sont regroupées de par leur
appartenance à un même domaine conceptuel (mathématique,
graphique, tris, ...). Les bibliothèques logicielles se distinguent des
exécutables dans la mesure où elles ne représentent pas
une application. Elles ne sont pas complètes, ne possédant pas
l'essentiel d'un programme comme une fonction principale et par
conséquent ne peuvent pas être exécutées
directement. L'intérêt lié à l'utilisation des
bibliothèques est qu'elles continent du code utile que l'on ne
désire pas avoir à réécrire à chaque
fois.
5.3.3.2 Sortes de Bibliothèque logicielle
Il a été recensé deux sortes de
bibliothèque logicielle, tout dépend de l'utilisation qu'on veut
en faire.
Bibliothèque Statique
|
Une bibliothèque est dite statique si elle est
destinée à être copiée dans un programme qui
l'utilise lors de la construction de ces derniers
|
Bibliothèque partagée
|
Elle est destinée à être associée
aux programmes au moment où ils sont exécutés. Avec une
telle bibliothèque, la même copie de la bibliothèque peut
être utilisée par plusieurs programmes
|
|
Tableau 4 : Bibliothèque logicielle
C'est suivant la même optique, que la librairie Open CV
a été mis au point de manière à rendre disponible
un ensemble des méthodes relatives au traitement d'image.
5.3.3.3 Open Cv
OpenCV est une bibliothèque graphique libre,
initialement développée par Intel, spécialisée dans
le traitement d'images en temps réel, en d'autre terme elle est une
bibliothèque sous licence BSD open-source qui comprend plusieurs
centaines d'algorithmes de vision par ordinateur. C'est en la
société Willow Garage qu'il appartient d'assurer le maintien de
ce support, et ce depuis 2008.
La bibliothèque OpenCV met à disposition de
nombreuses fonctionnalités très diversifiées permettant de
créer des programmes partant des données brutes pour aller
jusqu'à la création d'interfaces graphiques basiques.
OpenCV possède une structure modulaire, ce qui
signifie qu'elle encapsule comprend plusieurs bibliothèques
partagées ou statiques.
Module
|
Utilité
|
noyau
|
un module compact permettant de définir des structures
de données de base, y compris les fonctions de base utilisées par
tous les autres modules
|
imgproc
|
un module de traitement d'image qui comprend le filtrage
d'image linéaire et non-linéaire. Ce fameux module permet en
outre la transformation de l'image
géométrique (redimensionner), la conversion de
l'espace couleur, histogrammes, et ainsi que d'autres
fonctionnalités
|
|
Page | 43
Vidéo
|
un module d'analyse vidéo qui inclut une estimation de
mouvement, la soustraction de fond, et le suivi de l'objet algorithmes
|
calib3d
|
Offrant une base à vues multiples à l'aide des
algorithmes de la géométrie, outre l'étalonnage de
caméra unique et chaîne stéréo, objet estimation de
la pose, algorithmes de correspondance stéréo, ainsi que des
éléments de la reconstruction 3D
|
features2d
|
Un module permettant la détection de trait saillant,
descripteurs, et adaptateurs de descripteurs
|
objdetect
|
détection d'objets (par exemple, des visages, des yeux,
des tasses, des
personnes, voitures, et ainsi de suite) et des instances des
classes prédéfinies
|
highgui
|
module offrant une interface facile à utiliser pour la
capture vidéo, l'image et des codecs vidéo, ainsi que des
capacités de l'interface utilisateur simples
|
|
certains autres modules auxiliaires, tels que Flann et Google
emballages de test, liaisons Python, et d'autres
|
|
Tableau 5 : Module OpenCV
Apres avoir effectué un regroupement en terme des
fonctionnalités liées au traitement d'image, ainsi qu'au
traitement des vidéos, nous sommes arrivés à
déduire que :
Pour le Traitement d'image ;
Open Cv propose la plupart des opérations classiques en
traitement bas niveau des
images:
o lecture, écriture et affichage d'une image ;
o calcul de l'histogramme des niveaux de gris ou d'histogrammes
couleurs ;
o lissage, filtrage ;
o seuillage d'image (méthode d'Otsu, seuillage
adaptatif)
o segmentation (composantes connexes, GrabCut) ;
o morphologie mathématique.
Pour le traitement de Vidéo ;
Cette bibliothèque s'est imposée comme un standard
dans le domaine de la recherche parce qu'elle propose un nombre important
d'outils issus de l'état de l'art en vision des ordinateurs tels que
:
o lecture, écriture et affichage d'une vidéo
(depuis un fichier ou une caméra)
o détection de droites, de segment et de cercles par
Transformée de Hough
o détection de visages par la méthode de Viola et
Jones
o cascade de classifieurs boostés
o détection de mouvement, historique du mouvement
o poursuite d'objets par mean-shift ou Camshift
o détection de points d'intérêts
o estimation de flux optique (Méthode de Lucas-Kanade)
o triangulation de Delaunay
o diagramme de Voronoi
o enveloppe convexe
o ajustement d'une ellipse à un ensemble de points par la
méthode des moindres carrés.
Page | 44
5.4 Modélisation du système
L'approche objet est incontournable dans le cadre du
développement de systèmes logiciels complexes, car il est capable
de suivre les évolutions incessantes des technologies et des besoins
applicatifs. Cependant, la programmation objet est moins intuitive que la
programmation fonctionnelle, comme cela se faisait jadis. En effet, il est plus
naturel de décomposer les problèmes informatiques en termes de
fonctions qu'en termes d'ensembles d'objets en interaction. De ce fait,
d'après la logique des choses l'approche objet requiert de
modéliser avant de concevoir. La modélisation apporte une grande
rigueur, offre une meilleure compréhension des logiciels, et facilite la
comparaison des solutions de conception avant leur développement.
UML est une notation graphique conçue pour
représenter, spécifier, construire et documenter les
systèmes logiciels. Ses deux principaux objectifs sont la
modélisation de systèmes utilisant les techniques
orientées objet, depuis la conception jusqu'à la maintenance, et
la création d'un langage abstrait compréhensible par l'homme et
interprétable par les machines. Le langage UML propose uniquement une
notation dont l'interprétation est définit par un standard, mais
pas une méthodologie complète.
UML permet de construire plusieurs modèles d'un
système : certains montrent le système du point de vue des
utilisateurs, d'autres montrent sa structure interne, d'autres encore en
donnent une vision globale ou détaillée. Dans notre analyse, nous
allons présenter un des modèles, en l'occurrence le diagramme de
cas d'utilisation. Il permet de recueillir, d'analyser et d'organiser les
besoins.
Diagramme de cas d'utilisation
Avec beaucoup de simplicité, de rapidité et un
résultat à la hauteur de nos attentes, il est maintenant temps de
montrer l'interface de notre simulateur, appelé à
réfléchir à la place du robot roulage intelligent
amélioré.
Page | 45
5.5 Fondement du simulateur
Dans notre démarche visant l'instauration d'un outil
simplificateur de traitement d'information pour la régulation du trafic
routier, nous avons pensé au niveau de l'expérimentation mettre
sur pied un logiciel. Et pour y arriver, Visual Studio 2012, C#, OpenCv sont
des éléments dont nous avons eu à faire recours afin de
mettre au point notre robot roulage intelligent virtuel. Nous avons
également développé des fonctions servant successivement
:
o au comptage des objets ;
o à l'estimation de l'aire de la voie ;
o à l'estimation de l'aire occupée par des objets
sur le trafic ;
o au calcul du coût du trafic ;
o à la restitution de l'image en sortie.
Notons que le résultat sera efficace que si l'image
à traiter sera une représentation en hauteur de la voie de
circulation.
5.6 Présentation du simulateur
Aussi simple que cela puisse paraitre, il se présente de
la manière suivante :
Figure 14 : Simulateur
Page | 46
Nous nous proposons dans notre expérimentation, faire
une étude sur un carrefour dans lequel il sera question de traiter deux
images, provenant de deux routes différentes. Les images se
présentent comme suit :
Figure 15 : Capture de la circulation Figure 16 : Capture de
la circulation
Deux images dont la première (Figure 5.2)
représente un voie à trois véhicules au maximum pouvant
passer en une fois, la deuxième deux véhicules pouvant
passés en une fois, alors il appartient au simulateur de traiter
instantanément ces informations.
Ce qui nous emmène à :
Figure 17 : Résultat Simulateur
Page | 47
5.5 Interprétation du résultat
Le formulaire de la figure 5.4 présente de
manière agrégée le résultat obtenu après le
traitement des informations. Il a fallu de seulement quelque milliseconde au
logiciel, pour compter les différents véhicules sur les images,
enregistrer les aires dont le programme a besoin de manière à
retourner l'image sur laquelle l'affluence de véhicule est
considérable. Il apparait après les analyses que, l'image une
doit être privilégiée.
5.6 Codes sources
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Emgu.CV;
using Emgu.CV.CvEnum;
using Emgu.CV.Structure;
using System.Diagnostics;
using Emgu.CV.Util;
namespace RRI
{
public partial class Form1 : Form {
public Boolean un, deux; public int comptage1, comptage2,objet;
public double
optimal1, optimal2;
public double surfaceImage,surfaceObjet1;
public double[] surfaceObjet=new double[100];
public Form1()
{
InitializeComponent(); un = false; deux = false;
comptage1 = comptage2 =objet= 0;
surfaceObjet1 = 0.0;
label17.Text = "";
label18.Text = "";
}
public void PerformShapeDetection()
{
if (FileName1.Text != String.Empty)
{
StringBuilder msgBuilder = new StringBuilder("Performance:
");
//Load the image from file and resize it for display
Image<Bgr, Byte> img =
new Image<Bgr, byte>(FileName1.Text)
.Resize(400, 400, Emgu.CV.CvEnum.Inter.Linear, true);
//Convert the image to grayscale and filter out the noise
UMat uimage = new UMat();
CvInvoke.CvtColor(img, uimage, ColorConversion.Bgr2Gray);
//use image pyr to remove noise UMat pyrDown = new UMat();
CvInvoke.PyrDown(uimage, pyrDown); CvInvoke.PyrUp(pyrDown,
uimage);
Page | 48
//Image<Gray, Byte> gray = img.Convert<Gray,
Byte>().PyrDown().PyrUp();
#region circle detection
Stopwatch watch = Stopwatch.StartNew();
double cannyThreshold = 180.0;
double circleAccumulatorThreshold = 120;
CircleF[] circles = CvInvoke.HoughCircles(uimage,
HoughType.Gradient,
2.0, 20.0, cannyThreshold, circleAccumulatorThreshold, 5);
watch.Stop();
msgBuilder.Append(String.Format("Hough circles - {0} ms; ",
watch.ElapsedMilliseconds));
#endregion
#region Canny and edge detection watch.Reset();
watch.Start();
double cannyThresholdLinking = 120.0;
UMat cannyEdges = new UMat();
CvInvoke.Canny(uimage, cannyEdges, cannyThreshold,
cannyThresholdLinking);
LineSegment2D[] lines = CvInvoke.HoughLinesP(
cannyEdges,
1, //Distance resolution in pixel-related units
Math.PI / 45.0, //Angle resolution measured in radians.
20, //threshold
30, //min Line width
10); //gap between lines
watch.Stop();
msgBuilder.Append(String.Format("Canny & Hough lines -
{0} ms; ", watch.ElapsedMilliseconds));
#endregion
#region Find triangles and rectangles
watch.Reset(); watch.Start();
List<Triangle2DF> triangleList = new
List<Triangle2DF>(); List<RotatedRect> boxList = new
List<RotatedRect>(); //a box is a rotated rectangle
using (VectorOfVectorOfPoint contours = new
VectorOfVectorOfPoint())
{
CvInvoke.FindContours(cannyEdges, contours, null,
RetrType.List,
ChainApproxMethod.ChainApproxSimple);
int count = contours.Size;
for (int i = 0; i < count; i++)
{
using (VectorOfPoint contour = contours[i])
using (VectorOfPoint approxContour = new VectorOfPoint())
{
CvInvoke.ApproxPolyDP(contour, approxContour,
CvInvoke.ArcLength(contour, true) * 0.05, true);
if (CvInvoke.ContourArea(approxContour, false) > 250)
//only consider contours with area greater than 250
{
if (approxContour.Size == 3) //The contour has 3
vertices, it is a triangle
{
Point[] pts = approxContour.ToArray();
}
Page | 49
triangleList.Add(new Triangle2DF(
pts[0],
pts[1],
pts[2]
));
}
else if (approxContour.Size == 4) //The contour has 4
vertices.
{
#region determine if all the angles in the contour
are within [80, 100] degree
bool isRectangle = true;
Point[] pts = approxContour.ToArray(); LineSegment2D[] edges
=
PointCollection.PolyLine(pts, true);
for (int j = 0; j < edges.Length; j++)
{
double angle = Math.Abs(
edges[(j + 1) %
edges.Length].GetExteriorAngleDegree(edges[j]));
if (angle < 80 || angle > 100)
{
isRectangle = false;
break;
}
}
#endregion
if (isRectangle)
boxList.Add(CvInvoke.MinAreaRect(approxContour));
}
}
}
}
}
watch.Stop();
msgBuilder.Append(String.Format("Triangles & Rectangles -
{0} ms; ", watch.ElapsedMilliseconds));
#endregion
this.Text = msgBuilder.ToString();
#region draw triangles and rectangles
Mat triangleRectangleImage = new Mat(img.Size, DepthType.Cv8U,
3);
triangleRectangleImage.SetTo(new MCvScalar(0));
foreach (Triangle2DF triangle in triangleList)
{
CvInvoke.Polylines(triangleRectangleImage,
Array.ConvertAll(triangle.GetVertices(), Point.Round), true,
new
Bgr(Color.DarkBlue).MCvScalar, 2);
}
int nombre; nombre = 0;
foreach (RotatedRect box in boxList)
{
CvInvoke.Polylines(triangleRectangleImage,
Array.ConvertAll(box.GetVertices(), Point.Round), true, new
Bgr(Color.DarkOrange).MCvScalar, 2);
nombre = nombre + 1;
Page | 50
MessageBox.Show(nombre.ToString());
// DImageBox2.Image = triangleRectangleImage;
#endregion
}
}
private void textBox1_TextChanged_1(object sender, EventArgs
e)
{
un = true; objet = 0;
if (FileName1.Text != String.Empty)
{
StringBuilder msgBuilder = new StringBuilder("Performance:
");
//Load the image from file and resize it for display
Image<Bgr, Byte> img =
new Image<Bgr, byte>(FileName1.Text)
.Resize(400, 400, Emgu.CV.CvEnum.Inter.Linear, true);
DImageBox1.Image = img;
DImageBox1.SizeMode = PictureBoxSizeMode.Zoom;
surfaceImage= img.Width * img.Height;
//Convert the image to grayscale and filter out the noise UMat
uimage = new UMat();
CvInvoke.CvtColor(img, uimage, ColorConversion.Bgr2Gray);
//use image pyr to remove noise UMat pyrDown = new UMat();
CvInvoke.PyrDown(uimage, pyrDown); CvInvoke.PyrUp(pyrDown,
uimage);
#region circle detection
Stopwatch watch = Stopwatch.StartNew();
double cannyThreshold = 180.0;
double circleAccumulatorThreshold = 120;
CircleF[] circles = CvInvoke.HoughCircles(uimage,
HoughType.Gradient,
2.0, 20.0, cannyThreshold, circleAccumulatorThreshold, 5);
watch.Stop();
msgBuilder.Append(String.Format("Hough circles - {0} ms; ",
watch.ElapsedMilliseconds));
#endregion
#region Canny and edge detection watch.Reset();
watch.Start();
double cannyThresholdLinking = 120.0;
UMat cannyEdges = new UMat();
CvInvoke.Canny(uimage, cannyEdges, cannyThreshold,
cannyThresholdLinking);
LineSegment2D[] lines = CvInvoke.HoughLinesP(
cannyEdges,
1, //Distance resolution in pixel-related units
Math.PI / 45.0, //Angle resolution measured in radians.
20, //threshold
30, //min Line width
10); //gap between lines
watch.Stop();
{
Page | 51
msgBuilder.Append(String.Format("Canny & Hough lines -
{0} ms; ", watch.ElapsedMilliseconds));
#endregion
#region Find triangles and rectangles
watch.Reset(); watch.Start();
List<Triangle2DF> triangleList = new
List<Triangle2DF>(); List<RotatedRect> boxList = new
List<RotatedRect>(); //a box is a rotated rectangle
using (VectorOfVectorOfPoint contours = new
VectorOfVectorOfPoint())
{
CvInvoke.FindContours(cannyEdges, contours, null,
RetrType.List,
ChainApproxMethod.ChainApproxSimple);
int count = contours.Size;
for (int i = 0; i < count; i++)
{
using (VectorOfPoint contour = contours[i])
using (VectorOfPoint approxContour = new VectorOfPoint())
{
CvInvoke.ApproxPolyDP(contour, approxContour,
CvInvoke.ArcLength(contour, true) * 0.05, true);
if (CvInvoke.ContourArea(approxContour, false) > 250)
//only consider contours with area greater than 250
{
if (approxContour.Size == 3) //The contour has 3
vertices, it is a triangle
{
Point[] pts = approxContour.ToArray();
triangleList.Add(new Triangle2DF(
pts[0],
pts[1],
pts[2]
));
}
else if (approxContour.Size == 4) //The contour has 4
vertices.
{
#region determine if all the angles in the contour
are within [80, 100] degree
bool isRectangle = true;
Point[] pts = approxContour.ToArray(); LineSegment2D[] edges
=
PointCollection.PolyLine(pts, true);
for (int j = 0; j < edges.Length; j++)
{
double angle = Math.Abs(
edges[(j + 1) %
edges.Length].GetExteriorAngleDegree(edges[j]));
if (angle < 80 || angle > 100)
{
isRectangle = false;
break;
}
}
#endregion
if (CvInvoke.MinAreaRect(approxContour).Size.Width
> 50)
Page | 52
if (isRectangle)
boxList.Add(CvInvoke.MinAreaRect(approxContour));
}}
}}
}}
watch.Stop();
msgBuilder.Append(String.Format("Triangles & Rectangles -
{0} ms; ", watch.ElapsedMilliseconds));
#endregion
this.Text = msgBuilder.ToString();
#region draw triangles and rectangles
Mat triangleRectangleImage = new Mat(img.Size, DepthType.Cv8U,
3);
triangleRectangleImage.SetTo(new MCvScalar(0));
foreach (Triangle2DF triangle in triangleList)
{
CvInvoke.Polylines(triangleRectangleImage,
Array.ConvertAll(triangle.GetVertices(), Point.Round), true,
new
Bgr(Color.DarkBlue).MCvScalar, 2);
}
foreach (RotatedRect box in boxList)
{
CvInvoke.Polylines(triangleRectangleImage,
Array.ConvertAll(box.GetVertices(), Point.Round), true, new
Bgr(Color.DarkOrange).MCvScalar, 2);
comptage1 = comptage1 + 1;
surfaceObjet[objet]= box.Size.Width * box.Size.Height;
objet++;
}
for (int i=0;i< objet;i++)
{
surfaceObjet1 = surfaceObjet1 + surfaceObjet[i];
}
Resultat(surfaceObjet1, surfaceImage, 1); for (int i = 0; i <
objet; i++)
{
surfaceObjet[i] = 0;
}
// ,comptage1,
label6.Text = (comptage1 / 2).ToString(); label20.Text =
surfaceObjet1.ToString();
label22.Text = surfaceImage.ToString();
// optimal1 = Resultat1(int.Parse(Nbre1.Text), comptage1 /
2);
surfaceObjet1 = 0;
#endregion
}
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
deux = true; objet = 0;
if (FileName2.Text != String.Empty)
{
StringBuilder msgBuilder = new StringBuilder("Performance:
");
//Load the image from file and resize it for display
Image<Bgr, Byte> img =
Page | 53
new Image<Bgr, byte>(FileName2.Text)
.Resize(400, 400, Emgu.CV.CvEnum.Inter.Linear, true);
DImageBox2.Image = img;
DImageBox2.SizeMode = PictureBoxSizeMode.Zoom;
surfaceImage = img.Width * img.Height;
//Convert the image to grayscale and filter out the noise UMat
uimage = new UMat();
CvInvoke.CvtColor(img, uimage, ColorConversion.Bgr2Gray);
//use image pyr to remove noise UMat pyrDown = new UMat();
CvInvoke.PyrDown(uimage, pyrDown); CvInvoke.PyrUp(pyrDown,
uimage);
#region circle detection
Stopwatch watch = Stopwatch.StartNew();
double cannyThreshold = 180.0;
double circleAccumulatorThreshold = 120;
CircleF[] circles = CvInvoke.HoughCircles(uimage,
HoughType.Gradient,
2.0, 20.0, cannyThreshold, circleAccumulatorThreshold, 5);
watch.Stop();
msgBuilder.Append(String.Format("Hough circles - {0} ms; ",
watch.ElapsedMilliseconds));
#endregion
#region Canny and edge detection watch.Reset();
watch.Start();
double cannyThresholdLinking = 120.0;
UMat cannyEdges = new UMat();
CvInvoke.Canny(uimage, cannyEdges, cannyThreshold,
cannyThresholdLinking);
LineSegment2D[] lines = CvInvoke.HoughLinesP(
cannyEdges,
1, //Distance resolution in pixel-related units
Math.PI / 45.0, //Angle resolution measured in radians.
20, //threshold
30, //min Line width
10); //gap between lines
watch.Stop();
msgBuilder.Append(String.Format("Canny & Hough lines - {0}
ms; ", watch.ElapsedMilliseconds));
#endregion
#region Find triangles and rectangles
watch.Reset(); watch.Start();
List<Triangle2DF> triangleList = new
List<Triangle2DF>(); List<RotatedRect> boxList = new
List<RotatedRect>(); //a box is a rotated rectangle
using (VectorOfVectorOfPoint contours = new
VectorOfVectorOfPoint())
{
CvInvoke.FindContours(cannyEdges, contours, null,
RetrType.List,
ChainApproxMethod.ChainApproxSimple);
int count = contours.Size;
for (int i = 0; i < count; i++)
{
using (VectorOfPoint contour = contours[i])
Page | 54
using (VectorOfPoint approxContour = new VectorOfPoint()) {
CvInvoke.ApproxPolyDP(contour, approxContour,
CvInvoke.ArcLength(contour, true) * 0.05, true);
if (CvInvoke.ContourArea(approxContour, false) > 250)
//only consider contours with area greater than 250
{
if (approxContour.Size == 3) //The contour has 3
vertices, it is a triangle
{
Point[] pts = approxContour.ToArray();
triangleList.Add(new Triangle2DF(
pts[0],
pts[1],
pts[2]
));
}
else if (approxContour.Size == 4) //The contour has 4
vertices.
{
#region determine if all the angles in the contour
are within [80, 100] degree
bool isRectangle = true;
Point[] pts = approxContour.ToArray(); LineSegment2D[] edges
=
PointCollection.PolyLine(pts, true);
for (int j = 0; j < edges.Length; j++)
{
double angle = Math.Abs(
edges[(j + 1) %
edges.Length].GetExteriorAngleDegree(edges[j]));
if (angle < 80 || angle > 100)
{
isRectangle = false;
break;
}
}
#endregion
if (CvInvoke.MinAreaRect(approxContour).Size.Width
> 50)
{
if (isRectangle)
boxList.Add(CvInvoke.MinAreaRect(approxContour));
}}
}}
}}
watch.Stop();
msgBuilder.Append(String.Format("Triangles & Rectangles -
{0} ms; ", watch.ElapsedMilliseconds));
#endregion
this.Text = msgBuilder.ToString();
#region draw triangles and rectangles
Mat triangleRectangleImage = new Mat(img.Size, DepthType.Cv8U,
3);
triangleRectangleImage.SetTo(new MCvScalar(0));
foreach (Triangle2DF triangle in triangleList)
{
}
Page | 55
CvInvoke.Polylines(triangleRectangleImage,
Array.ConvertAll(triangle.GetVertices(), Point.Round), true, new
Bgr(Color.DarkBlue).MCvScalar, 2);
}
foreach (RotatedRect box in boxList)
{
CvInvoke.Polylines(triangleRectangleImage,
Array.ConvertAll(box.GetVertices(), Point.Round), true, new
Bgr(Color.DarkOrange).MCvScalar, 2);
comptage2 = comptage2 + 1;
surfaceObjet[objet] = box.Size.Width * box.Size.Height;
objet++;
}
for (int i = 0; i < objet; i++)
{
surfaceObjet1 = surfaceObjet1 + surfaceObjet[i];
}
Resultat(surfaceObjet1, surfaceImage, 2); for (int i = 0; i <
objet; i++)
{
surfaceObjet[i] = 0;
}
label10.Text = (comptage2 / 2).ToString();
label24.Text = surfaceObjet1.ToString();
label26.Text = surfaceImage.ToString();
// optimal2 = Resultat1(int.Parse(Nbre2.Text), comptage2 /
2);
surfaceObjet1 = 0;
#endregion
}
}
private void SearchFile2_Click_1(object sender, EventArgs e)
{
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK || result == DialogResult.Yes)
{
FileName2.Text = openFileDialog1.FileName;
}
}
public void Resultat(double AireOccupe,double AireVoie,int
numeroImage)
{
double x, y;
if (numeroImage == 1)
{
x = (AireVoie - AireOccupe) / AireOccupe;
y = AireOccupe * x / AireVoie; optimal1 = x + y;
}
else {
x = (AireVoie - AireOccupe) / AireOccupe;
y = AireOccupe * x / AireVoie; optimal2 = x + y;
Page | 56
AfficherResultat();
}
public void AfficherResultat()
{
if (un == true && deux == true )
{
if ((optimal1 <= optimal2))
{
Image<Bgr, Byte> img =
new Image<Bgr, byte>(FileName1.Text)
.Resize(400, 400, Emgu.CV.CvEnum.Inter.Linear, true);
PimageBox.Image = img;
}
else {
}
}
label17.Text = "Image 1";
Image<Bgr, Byte> img =
new Image<Bgr, byte>(FileName2.Text)
.Resize(400, 400, Emgu.CV.CvEnum.Inter.Linear, true);
PimageBox.Image = img; label17.Text = "Image 2";
PimageBox.SizeMode = PictureBoxSizeMode.Zoom;
}
private void SearchFile1_Click(object sender, EventArgs e)
{
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK || result == DialogResult.Yes)
{
}
}}}
FileName1.Text = openFileDialog1.FileName;
Page | 57
CONCLUSION
Etant arrivé au terme de ce travail, nous n'avons pas
la prétention d'affirmer que le présent travail constitue la
panacée aux différents embouteillages constatés sur la
voie publique mais nous avons essayé de confronter la théorie
acquise à la pratique.
L'objectif poursuivi a été celui de trouver un
moyen de manière à permettre au robot roulage intelligent de
réfléchir, d'encapsuler une des facultés que
possèdent l'être humain, celle de raisonner. Et pour y parvenir,
il a fallu passer par le comptage des objets détectés sur l'image
ainsi que l'évaluation du trafic routier.
C'est ainsi qu'au départ, il a été utile
de parler de la police de circulation routière, cette institution qui
à l'origine devait servir à mettre de l'ordre dans la
circulation, mais défaillante. C'est alors qu'intervient l'entrée
sur scène du robot roulage intelligent dans le souci d'épauler
les agents de sécurité routière dans l'exercice de leur
métier. Le robot roulage intelligent, bien que nantis d'automatisme, a
ses limites. C'est ainsi que nous avons proposé qu'il soit
amélioré en insérant le traitement des images en temps
réel au niveau local.
Outre, l'architecture de notre système a
été détaillé, illustrant les différentes
étapes liées au traitement des informations dans le simulateur.
Sachant que seule l'IA peut nous aider à mettre en place ce genre de
système, nous avons montré l'utilité de pouvoir faire
muter ce genre de système à travers ce domaine, dans le but
d'accroitre les performances du système, et ainsi le rapprocher de plus
en plus des utilisateurs.
Enfin, dans le souci de donner un aperçu sur le
traitement des informations au niveau du robot roulage intelligent
amélioré, nous avons présenté un simulateur,
capable de traduire l'environnement en une fonction économique avec des
contraintes, en vue de comprendre la circulation.
Page | 58
REFERENCES BIBLIOGRAPHIQUES
1. Ouvrages
o [1] Benoit CHARROUX (Ecole d'Ingénieur), Aomar
OSMANI (Université Paris XIII), Thierry-Mieg YANN(Université
Paris VI) , pratique de la modélisation 2eme édition, Perason
Education France, 2009
o [2] Eric Gregori , Introduction to Computer Vision using
OpenCV , Berkeley Design Technology, Inc. Oakland, California USA , 2012
o [3] Sylvain SARDY, Analyse Combinatoire,
Mathématiques Générales B, Université de
Genève, Mars 2008
2. Notes de Cours
o [4] KASORO MULENDA N., « Cours de IA», Unikin, Notes
de Cours, 2013
o [5] KASORO MULENDA N., « Cours de Système
Expert et Temps Réel », Unikin, Notes de Cours ,2014
o [6] KASORO MULENDA N., « Cours de Programmation
Orienté Objet », Unikin, Notes de Cours, 2012
o [7] MANYA NDJADI L., « Cours de Recherche
Opérationnelle », Unikin, Notes de cours, 2012
3. Mémoires
o [8] Guillaume COSTESEQUE, Modélisation du trafic
routier: Passage du microscopique, Ecole des Ponts Paris Tech, Avril 2012
4. Webographie
o [9]
https://fr.wikipedia.org/,
Décembre 2015
o [10]
https://www.syfia-grands-lacs.info/index.php?view=articles&action=voir&
idArticle=2218, Décembre 2016
o [11]
http://waza-tech.com/2015/10/les-robots-roulage-viennent-laide-de-pcr/,
Décembre 2015
o [12]
https://humanoides.fr/2014/01/des-robots-mades-in-congo-font-la-circulation-a-kinshasa,
Décembre 2015
o [13]
http://mbf-iut.i3s.unice.fr/lib/exe/fetch.php?media=20122013:
lp:idse:gl: architecture.pdf , Janvier 2016
o [14]
https://cea.labri.fr/pmwiki.php,
Janvier 2016
o [15]
http://www.telecomparistech.org/medias/doc/14067656385613be0d3c0b6.pdf,
Janvier 2016
o [16]
http://developper.intel.com,
Janvier 2016
Page | 59
TABLE DES MATIERES
EPIGRAPHE I
DEDICACE II
REMERCIEMENTS III
LISTE DES ABREVIATIONS IV
LISTE DES FIGURES ET TABLEAUX V
INTRODUCTION GENERALE 1
CHAPITRE 1 : PROBLEME, PROSPECTIVE ET APPROCHE 3
1.1 La Police 3
1.2 Le Transport sur la voie publique 3
1.3 Code de la route 4
1.3.1 Définition 4
1.3.2 Code de la route en RDC 4
1.3.3 Composants du Code de la route 5
1.3 Régulation de la route 5
1.3.1 La signalisation routière 6
1.3.1.1 Les feux de signalisations 6
1.3.1.1.1 Usage 7
1.3.1.1.2 Séquences de feux 7
1.3.1.1.3 Avantages et Inconvénients 7
1.3.2 La police de circulation routière 8
1.3.2.1 Police de Circulation 8
1.3.2.2 Mission de la police routière 8
1.3.2.3 Les agents de la circulation 8
1.3.2.4 Les réalités constatées dans le
service de sécurité routière 9
1.4 Le robot roulage intelligent 10
1.4.1 Généralité sur le robot 10
1.4.2 Constitution d'un robot 10
1.4.3 Le Robot roulage dans la circulation 11
1.4.4 D'un prototype à un autre 11
1.4.5 Composition du robot roulage Intelligent 12
1.4.6 Les feux de signalisation dans le robot roulage intelligent
12
1.4.7 Utilité du robot roulage intelligent 12
1.5 Une évolution face aux besoins 13
1.6 Limite du robot roulage Intelligent 13
Page | 60
1.7 Le robot roulage Intelligent, peut-il remplacer la police de
circulation routière ? 14
1.8 Une évolution face aux besoins 14
CHAPITRE 2 : TECHNIQUE DE COMPTAGE ET EVALUATION DU TRAFIC 15
2.1 L'image En informatique 15
2.2 Quelques notions sur les images 15
2.3 La détection d'objet 16
2.4 Comptage des objets 17
2.4.1 Le dénombrement 17
2.4.2 Principes dans la constitution de la collection 18
2.4.3 Technique de Comptage 18
2.4.3.1 La combinatoire 18
2.4.3.2 Combinatoire Enumérative 19
2.4.4 Fonction de comptage 19
2.5 Evaluation du trafic 20
2.5.1 Programme Linéaire 20
2.5.1.1 Méthode Graphique 21
2.5.2 La programmation linéaire avec le robot roulage
amélioré 23
2.5.3 Formalisation du Problème sous forme de programme
linéaire 23
2.7 Intervention du robot après évaluation du
trafic 25
CHAPITRE 3 : MODELE ARCHITECTURAL ET COMPORTEMENT 26
3.1 Système de régulation routière 26
3.2 Architecture en Informatique 26
3.2.1 Définition 26
3.2.2 Importance d'une Architecture logicielle 27
3.2.3 Conception de l'architecture logicielle 27
3.3 Architecture du robot roulage Intelligent
Amélioré 28
3.4 Données à l'entrée et à la sortie
du Système 28
3.5 Description, Comportement de l'architecture 29
3.5.1 Compteurs 29
3.5.2 Evaluateurs 29
3.5.3 Comparateur 30
CHAPITRE 4 : INTELLIGENCE ARTIFICIELLE 31
4.1 Un domaine plein de ressource 31
4.1.1 Présentation du système 32
4.2 De l'IA Classique à l'IAD 32
Page | 61
4.3 SMA 33
4.3.1 Principe 33
4.3.2 Définition 34
4.3.3 Pourquoi distribuer l'intelligence ? 34
4.4 STI 35
4.4.1 Objectif 36
4.5 Système expert 36
4.5.1 L'Expert 37
4.5.2 Composants 37
4.6 De l'IA aux Systèmes Experts 37
4.7 Comportement du système 38
CHAPITRE 5 : SIMULATION ET RESULTAT 39
5.1 Simulation 39
5.2 Analyse du Problème 39
5.3 Technologie Utilisée 40
5.3.1 C Sharp (C#) 40
5.3.1.1 Généralité sur le C# 40
5.3.1.2 Version 41
5.3.2 Compilateur 41
5.3.3 Librairie 41
5.3.3.1 Libraire en Programmation 41
5.3.3.2 Sortes de Bibliothèque logicielle 42
5.3.3.3 Open Cv 42
5.4 Modélisation du système 44
5.5 Fondement du simulateur 45
5.6 Présentation du simulateur 45
5.5 Interprétation du résultat 47
5.6 Extrait des codes sources 47
CONCLUSION 47
REFERENCES BIBLIOGRAPHIQUES 58
|