WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

étude de l’élaboration d’un robot roulage intelligent. Comptage des objets et évaluation du trafic.


par JEANCY DIASOLUA
Université de Kinshasa - Licence en informatique 2015
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

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






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Aux âmes bien nées, la valeur n'attend point le nombre des années"   Corneille