Vous êtes sur la page 1sur 65

Université Mohamed V de Rabat Faculté des sciences

Département d’Informatique
Master In Intelligent Processing System
Traitement Intelligent des Systèmes

Mémoire de fin d’étude

Intitulé :

Implémentation à temps réel d’un system de recueil de


donnée de trafic

Présenté par : Diao Abdou


Soutenu le xx Octobre 2021 devant le jury :

M. Prénom Nom Professeur à la Faculté des Sciences - Rabat Président


M. Prénom Nom Professeur à la Faculté des Sciences - Rabat Encadrant
Mme Prénom Nom Professeur à la Faculté des Sciences - Rabat Examinateur
Mme Prénom Nom Professeur à la Faculté des Sciences - Rabat Examinateur
Dédicaces
Je dédie cet ouvrage

A mes parents qui m’ont soutenu et encouragé tout au long de mon parcours.
Qu’il trouve ici le témoignage de ma profonde reconnaissance.

A mes frères et sœurs pour leur soutien et encouragement durant ces années d’études.

A ma famille, mes proches et à ceux qui me donnent de l’amour et de la


vivacité.

A tous mes amis qui m’ont toujours encouragé et à qui je souhaite beaucoup de succès.

Merci !

2
Remerciements
Je tiens à remercier

Tout le corps professoral et administratif de Faculté des sciences de Rabat qui nous ont fait
bénéficier d’une formation pluridisciplinaire de haut niveau.

Madame Ibtissam Ben Miloud, mon encadrante de projet de fin d’étude, qui a accepté cette
tâche m’a suivi et m’a conseillé sur l’orientation que celui-ci devait prendre.

Monsieur Abdallah Idrisi, notre coordonnateur de Master qui n’a ménagé aucun effort pour le
bon déroulement de nos deux années de formation, sa disponibilité, son ouverture ainsi que son
soutien de tous les jours nous a été d’une grande utilité.

Monsieur Saliou Diallo responsable au sein de notre département d’accueil et mon tuteur de
stage, pour m’avoir accueilli et guidé tout au long de mon stage.

.
Tout le personnel que j’ai contacté durant mon stage au sein de l’entreprise, auprès duquel j’ai
trouvé l’accueil chaleureux, l’aide et l’assistance dont j’ai besoin.

Tous nos camarades de promotion pour la solidarité et la collaboration durant ces deux ans de
formation.

Que toutes les personnes qui ont contribué de près ou de loin à l’élaboration de ce stage trouvent
ici l’expression de ma profonde gratitude.

3
Introduction Générale

Ce projet s’inscrit parmi un effort de recherche continu visant à l’amélioration de la fiabilité


des systèmes de vidéosurveillance, et plus particulièrement, pour le maintien de la sécurité
apporté à ceux-ci à l’aide de l’utilisation de modèles et algorithmes de reconnaissance d’objets
avancés. En effet, l’abondance de sources de données vidéo et de systèmes de sécurité par
caméras s’étendant dans les lieux publics, en plus de l’achalandage grandissant, font que des
techniques automatisées pour assurer le maintien de la sécurité, pour détecter les individus à
danger potentiel, pour analyser ou réagir aux évènements passés capturés par les caméras, ou
pour éventuellement prédire et prévenir des situations désastreuses à grande échelle sont
maintenant une nécessité. Or, de telles techniques aboutissent toutes à un moment ou un autre
à interagir avec les individus, et plus particulièrement leur identité, ce qui renforce le besoin de
méthodes qui permettent rapidement et efficacement la reconnaissance des visages, la
reconnaissance de véhicule ou autre.

Malgré que les systèmes proposés en littérature deviennent perpétuellement plus robustes,
fiables et performants pour accomplir les tâches de reconnaissance d’objets, plusieurs aspects
techniques et d’application réels sur le terrain sont souvent omis, ou très simplifiés, ce qui rend
l’utilisation formelle et complète de ses systèmes loin d’être encore une solution finale. En
outre, beaucoup de propositions considèrent l’aspect de détection d’objets sur les images tandis
que d’autres adressent le suivi de ceux-ci à travers les séquences vidéo, ou encore les techniques
qui permettent de réduire le nombre de fausses détections tout en prenant toujours moins de
temps de calcul pour obtenir une réponse en temps réel.

Dans ce travail, plusieurs contributions scientifiques ayant démontré maintes fois les meilleures
pratiques et méthodes dans le domaine de la détection d’objets (visage, car), de reconnaissance
de ces objets ainsi leur tracking sont alors considérées afin de rapatrier les composantes
identifiées comme les plus pertinentes et performantes, de sorte à produire un système
surveillance à partir de l’exploitation des données recueillis.

4
Résumé :

L’extraction et la reconnaissance d’objets sont des fonctions importantes des systèmes de


vidéosurveillance pour permettre la vérification et l’identification d’individus d’intérêt qui
apparaissent dans une scène capturée par un réseau distribué de caméras. Dans ce travail, nous
allons à travers des images ou vidéo pourvoir extraire des visages, des plaques entre autre, les
stocker au sein d’un fichier. Ainsi nous allons pouvoir implémenter des modèles de
reconnaissance de personnes et de véhicules à travers des algorithmes de Deep Learning et faire
un suivi ou tracking de ces objets.

Mots clés
*Intelligence Artificielle
*Deep Learning
*Vision par Ordinateur
*Traitement d'images
*YOLO
*Objets

5
Abstract :

Object extraction and recognition are important functions of video surveillance systems to
enable the verification and identification of individuals of interest who appear in a scene
captured by a distributed network of cameras.
In this work, we will use images or video to extract faces and plates, store them in a file. After
that we will be able to implement models of recognition for people and vehicles using Deep
Learning algorithms. At the end we will g an example of tracking objects.

6
Table des matières

Dédicaces ................................................................................................................................................ 1
Remerciements....................................................................................................................................... 3
Introduction Générale .............................................................................................................................. 4
Résumé : ................................................................................................................................................. 5
Abstract : ................................................................................................................................................. 6
Listes des figures ..................................................................................................................................... 9
Chapitre 1 : Contexte général du projet............................................................................................ 10
Introduction : ................................................................................................................................... 10
I. Présentation de l'organisme d'accueil (SOFRETIM)........................................................... 10
I.1 Histoire et secteurs d’activités ........................................................................................ 10
I.2 Présentation des profils à SOFRETIM .......................................................................... 13
 Valeurs et missions .............................................................................................................. 13
II. Présentation du cadre du projet ......................................................................................... 14
1. Contexte Générale du projet .............................................................................................. 14
2. Objectif du projet ................................................................................................................ 16
1. Méthodologie de recherche ..................................................................................................... 16
2. Planification ............................................................................................................................. 16
Conclusion : ..................................................................................................................................... 17
Chapitre 2 : Cadre théorique ............................................................................................................. 18
Introduction : ................................................................................................................................... 18
I. Vision par Ordinateur et Traitement d’image...................................................................... 18
1. Définition .............................................................................................................................. 18
2. Les Bases pour la vision par ordinateur : ......................................................................... 20
b) Opérations haut niveau pour la reconnaissance d’objets ................................................ 22
3. Les différentes applications de la Vision par Ordinateur ................................................ 23
4. Traitement d’image ............................................................................................................. 24
5. Image .................................................................................................................................... 25

7
II. Deep Learning...................................................................................................................... 26
a) Définition :............................................................................................................................ 27
b) Réseau de neurones ............................................................................................................. 27
c) Fonctionnement du Deep Learning : ................................................................................. 30
d) Algorithmes du Deep Learning .......................................................................................... 32
e) CNN ...................................................................................................................................... 32
f) Application du Deep Learning ........................................................................................... 35
Conclusion ........................................................................................................................................ 36
Chapitre 3 : Etat de l’art .................................................................................................................... 37
Introduction ..................................................................................................................................... 37
I. Etude de l’existant ................................................................................................................... 37
Conclusion ........................................................................................................................................ 37
Chapitre 4 : Conception de notre système de recueil de données de .............................................. 38
trafic...................................................................................................................................................... 38
Introduction ..................................................................................................................................... 38
1. Description du projet .............................................................................................................. 38
2. Conception des modèles de détection et d’extraction d’objets ............................................ 38
a. Détection et extraction d’objets avec Yolo ........................................................................ 39
b) La méthode préconfigurée Haar Cascade d’Opencv ....................................................... 42
g) Reconnaissance de visage .................................................................................................... 46
8. Reconnaissance de plaque................................................................................................... 49
9. Object Tracking ................................................................................................................... 52
Conclusion ........................................................................................................................................ 53
Chapitre 5 : Réalisation du système de recueil de données de trafic .............................................. 54
Conclusion Générale ........................................................................................................................... 64
Webographie :...................................................................................................................................... 65

8
Listes des figures

Figure 1: Exemple d’un système de vidéo de surveillance .................................................................. 15


Figure 2: Image illustrant la Vision par Ordinateur ............................................................................... 19
Figure 3: Domaines connexes au Computer Vision ............................................................................. 19
Figure 4: histogramme pour une image donnée ............................................................................... 20
Figure 5: Image illustrant la détection de contour .............................................................................. 21
Figure 6: Détection de contour ............................................................................................................ 22
Figure 7: Opération de Haut niveau pour la reconnaissance d'objet ................................................. 22
Figure 8: Quelques exemples d'application de la VO .......................................................................... 24
Figure 9: Suivi d'objets (Tracking) ........................................................................................................ 24
Figure 10: Représentation matricielle d'une scène capturée ............................................................. 26
Figure 11: Eléments permettant de décrire Traitement d'image et la VO ......................................... 26
Figure 12: Neurone Biologique ............................................................................................................. 28
Figure 13: Structure du neurone formel .............................................................................................. 29
Figure 14: Quelques fonctions d'activation ......................................................................................... 29
Figure 15: Architecture Réseau de Neurones ...................................................................................... 30
Figure 16: Figure illustrant le fonctionnement du Deep Learning ...................................................... 31
Figure 17: Couches des CNNS ............................................................................................................... 33
Figure 18: Exemple de CNNs VGGNet .................................................................................................. 34
Figure 19: Exemple de détection avec Yolo ......................................................................................... 40
Figure 20: Exemple de détection par grille .......................................................................................... 41
Figure 21: Architecture de Yolo ............................................................................................................ 42

9
Figure 22: Filtres utilisés par Haar Cascade ......................................................................................... 43
Figure 23 : Architecture d'un système de reconnaissance de visage .................................................. 48
Figure 24: Architecture du modèle VGG-Face ..................................................................................... 49
Figure 25: Différents rayons voisins utilisés avec LBPH ...................................................................... 50
Figure 26: Voisinage LBPH .................................................................................................................... 51
Figure 27: Image illustrant l’Object Tracking ....................................................................................... 52

Chapitre 1 : Contexte général du projet

Introduction :

Au cours de cette partie nous allons nous intéresser d’abord à notre établissement d’accueil en
donnant les informations qui lui sont relatives à savoir son organisation, son secteur d’activité,
sa mission, ses solutions et technologies. Ensuite nous allons parler de la problématique de notre
sujet, le cahier de charge ainsi que le planning suivi.

I. Présentation de l'organisme d'accueil (SOFRETIM)

I.1 Histoire et secteurs d’activités

SOFRETIM est une Société à Responsabilité Limité et a été créée en 2009 à Casablanca
précisément à Maarif où son siège est placé. SOFRETIM est en croissance constante depuis
plus d'une décennie et continue d'élargir son catalogue de services aux industries et collectivités
d'année en année. En 2009 s’est passé le lancement de la société qui a concentré ses activités

10
de lancement sur les conseils en brevets, notamment en aidant à réaliser des études de
brevetabilité.

Avec 25 ans de réalisations de projets, une passion pour l'excellence, l’Entreprise fait en sorte
que le rêve de ses clients se réalise. Elle offre un support, une technologie et une réalisation
exceptionnels. Avec un support de première classe, elle conduit les projets de ses clients à
cibler, de la conception à la gestion, la construction et l'exploitation. Ses clients sont tous ses
partenaires, et elle continue à rechercher, installer et mettre en service. Elle possède également
des équipements techniques haut de gamme avec un retour sur investissement inférieur à un an.

De ce fait, les principaux secteurs d’activités sont :

-Contrôle et suivi du projet -Résolution de problème

Figure 1: Contrôle de projet Figure 2: Résolution de problème


-Achats d'équipements et de fournitures -Management de projet

Figure 3: Equipements et de fournitures Figure 4: Management de projet

11
-Design, ingénierie et intégration

Figure 5: Design
-Conception : Conseil, conception, ingénierie & intégration, mise en œuvre et anticipation de
l'innovation, définition et détails du projet, documents d'appel d'offres (RFI, ITT, RFQ, BOM),
gestion des contrats.

-La gestion : gestion de projet, accompagnement de projet, services de réalisation sur le terrain,
achats d'équipements et de fournitures.

-Sous-traitance de montage : installation, équipements industriels, équipements aéroportuaires


et aides à la navigation, systèmes informatiques, infrastructures et centres de données,
équipements et solutions de sécurité et de défense, génie civil, Smart Building, Infrastructures
techniques. La société la réalise simplement, livre à temps, comme prévu, au coût prévu.

L’expérience, ses connaissances à jour et sa pensée créative l’amène à offrir des solutions
techniques à valeur ajoutée dont :

 Les solutions pour villes intelligentes : systèmes de transport intelligents, gestion du


trafic routier, vidéosurveillance, gestion des risques, des urgences et des crises,
planification et optimisation du trafic mondial, détection et traitement avancés des
incidents
 Infrastructures informatiques : centres de données, centres d'opérations et de
commandement, systèmes et réseaux haute disponibilité, sécurité et protection des
systèmes, systèmes de détection avancés, gestion du Big Data et exploration de données
 Détection aéroportée, à distance et locale : mesures sans contact en temps réel,
conception et fabrication de drones, électrique et carburant, surveillance multi-
composants.

12
 Solutions industrielles : solutions d'ingénierie et optimisées de processus, processus
d'ingénierie chimique, solutions d'acide sulfurique et d'acide phosphorique, processus
miniers, solutions pour les industries agro-alimentaires, services publics, systèmes et
procédés d'énergie et d'eau

 Alliages spéciaux : alliages résistants à la corrosion, alliages haute température, alliages


des industries aéronautiques, alliages des industries chimiques, métaux et alliages de
haute technologie.
 Équipements miniers et industriels : équipements de procédés miniers, pompes à lisier,
concasseurs, équipements de séparation et de classification, chaînes de protection des
pneus, équipements de traitement du ciment, équipements de procédés agro-
alimentaires, équipements et capteurs en ligne.

I.2 Présentation des profils à SOFRETIM

Composée de plusieurs profils d’experts, la société est en constante croissance grâce à la solide
équipe multidisciplinaire qui travaille quotidiennement à la mise en œuvre de sa vision et de
ses missions. Les équipes de travail sont composées d'ingénieurs et de techniciens dont la
mission est d’apporter des solutions de pointe dans le domaine de l'ingénierie aux clients. Elles
sont également à leur disposition pour les guider dans l'installation de leurs équipements
industriels.

Le groupe SOFRETIM a plus de 25 ans d'existence dans le secteur du design. Ce résultat


n'aurait pas été possible sans le soutien d'ingénieurs hautement compétents et la synergie de
leurs expériences dans l'industrie, gérant des compétences tout aussi différentes mais
complémentaires. La cohésion de leurs forces a permis à l’Entreprise d'atteindre ses objectifs
ainsi qu'une progression spectaculaire. Pour SOFRETIM, l’équipe représente l’identité de
l’Entreprise à travers de fortes compétences, et un niveau technologique d’avant-garde.

 Valeurs et missions
Deux missions accompagnent la vision de SOFRETIM. La première est de pouvoir répondre
aux besoins de ses clients en leur délivrant des services personnalisés. Sa deuxième force est de
pouvoir pérenniser ces solutions en leur apportant une valeur ajoutée tant pour les personnes
morales que pour les Entreprises. L’objectif de la société est d'être au service du progrès sociétal

13
et de servir les intérêts collectifs. Pour réaliser cela, elle se repose sur 4 principales valeurs
dont :

 La flexibilité et le professionnalisme : le professionnalisme est pour la société une ligne


de conduite essentielle mais aussi la clé de sa réussite. De plus, elle a cette capacité
fondamentale qui est d'analyser finement les besoins de ses clients et de s’adapter à leurs
spécificités. L'objectif est de leur apporter des solutions sur mesure et de les aider à
atteindre leurs objectifs. L’Entreprise réussit cet exploit grâce à l'expertise et à la
flexibilité intellectuelle de ses collaborateurs. Elle veille également en permanence à
l'efficacité de son modèle économique.
 La conception et la matérialisation d’un avenir durable : L’Entreprise est tournée vers
l'avenir et l'action pour construire un avenir durable au profit des sociétés de demain.
Grâce à sa capacité à anticiper les tendances, elle est en mesure de développer des
solutions innovantes pour ses clients, des idées personnalisées qui les aident à atteindre
leurs objectifs financiers, mais aussi des idées qui défient des modèles préétablis. Au
quotidien, elle se concentre toujours sur l'avancement de ses méthodes et l'atteinte de
l'excellence, convaincue que ses idées innovantes auront un impact majeur sur la
croissance des sociétés de demain.

II. Présentation du cadre du projet

1. Contexte Générale du projet

L’extraction de visage ou de plaque d’immatriculation sur une video représente un moyen


efficace pour identifier les véhicules et les individus. Car il s’agit d’informations uniques pour
chaque voiture respectivement pour chaque personne.
Fréquemment, il est nécessaire d’identifier ces informations pour la sécurité.

14
Dans notre projet, nous nous intéressons particulièrement à la mise en œuvre d’un outil de
recueil de données de trafic pour les besoins d’un système global de gestion et d’exploitations
de données recueillies à travers des caméras de surveillance. Cependant la problématique du
recueil de données et les solutions proposées sont transposables dans plusieurs contextes.

Ainsi les données extraites peuvent être utilisées pour plusieurs intérêts, comme le contrôle
d’accès et de flux, la surveillance des passagers aux frontières et aux péages, la recherche de
véhicules suspects ou encore la lutte contre la criminalité, etc.

Figure 6: Exemple d’un système de vidéo de surveillance

15
2. Objectif du projet
Ce projet consiste à implémenter un système de recueil de données de trafic en utilisant le
Framework Yolo ou autre.
De ce fait nous devrions pouvoir exploiter les données fournies par les Caméras de surveillance
pour faire les actions suivantes en temps réel :

 Extraction de visage

 Extraction de plaque

 Reconnaissance Faciale

 Reconnaissance de plaques

 Tracking de personnes ou de véhicule à travers plusieurs caméras

1. Méthodologie de recherche

Au cours de l’étude de ce projet nous avons utilisé deux méthodes de recherche d’information
à savoir, la méthode documentaire et l’enquête.

 Méthode documentaire
La méthode documentaire s’appuie, en général, sur l’exploitation de documents et d’articles
consultés pour nous familiariser avec le cadre contextuel de ce projet, ainsi nous pouvons
étudier la faisabilité de ce projet et capitaliser les expériences.

 Méthode d’enquête
Plusieurs réunions ont été organisées avec le manager pour mieux cerner le problème.

2. Planification
La planification consiste à identifier les taches d’un projet pour les hiérarchiser afin de définir
leur durée et échéance. Elle permet de :

16
 Structurer en amont les idées

 Suivre l’avancement du projet

 Affecter les bonnes ressources

 Faciliter la communication

Ainsi, notre projet est planifie en 4 grandes etapes :

 L’analyse des besoins du projet

 La conception des différents modèles à implémenter

 La réalisation des modèles

 La synthèse et l’évaluation des modèles

(Insérer la figure du planning)

Conclusion :

Comme nous l’avions annoncé dans l’introduction, dans ce premier chapitre nous avons
procédé à la présentation de notre structure d’accueil, une brève description du contexte général
de notre projet, la méthodologie de recherche ainsi que la planification adoptée ont été exposées.
Dans le chapitre suivant, nous allons définir les concepts théoriques liés a ce projet avant de
faire la revue de la littérature.

17
Chapitre 2 : Cadre théorique

Introduction :

Apres avoir défini les objectifs spécifiques de ce projet, nous allons à présent définir les
concepts fondamentaux liés à notre projet afin de mieux situer notre étude dans la littérature.
De ce fait les 3 grands domaines scientifiques qui régissent notre sujet à savoir vision par
ordinateur, Traitement d’image et Deep Learning seront abordés dans les lignes qui suivent.

I. Vision par Ordinateur et Traitement d’image

1. Définition

18
Figure 7: Image illustrant la Vision par Ordinateur

La Computer Vision ou vision par ordinateur est une technologie d’intelligence artificielle et
de Machine Learning qui consiste à mettre en œuvre des outils et techniques pour permettre à
un ordinateur d’interpréter un élément visuel.

Figure 8: Domaines connexes au Computer Vision

Le domaine de la Computer Vision regroupe de multiples techniques issues de divers champ


d’ingénierie ou d’informatique. De manière générale, les différentes méthodes ont pour but
de reproduire la vision humaine. Pour comprendre le contenu des images, les machines
doivent être capables d’en extraire une description : un objet, une description, un modèle
3D…

19
Certains systèmes de vision par ordinateur peuvent aussi nécessiter un traitement de
l’image, à savoir une simplification ou une augmentation de son contenu. En guise
d’exemple, on peut citer la normalisation des propriétés photométriques de l’image, le
cropping de ses contours ou la suppression du » bruit » tels que les artefacts numériques
induits par un faible éclairage.

2. Les Bases pour la vision par ordinateur :

La Vision par Ordinateur s’articule autour de deux Opérations :

a) Opérations bas niveau sur les images

On peut citer entre autre :


 La manipulation d’histogrammes

L’histogramme d’une image en niveau de gris dénombre les occurrences de chacun des niveaux.
h(i)= nombre de pixels dans l’image I ayant le niveau de gris i.

 La transformation géométrique

(Info relative)

Figure 9: histogramme pour une image donnée

 Filtrage

20
L’objectif du filtrage c’est d’améliorer la perception de certains détails, la réduction des
distorsions (bruits) dues aux systèmes d’acquisition de l’image et enfin compenser certains
défauts du capteur.

 Détection de contour

La détection de contour est une étape préliminaire à de nombreuses applications de traitement


d’image dans le sens où elle permet de réduire de manière significative la quantité de données
en éliminant certaines informations que l’on peut juger moins pertinentes.

Figure 10: Image illustrant la détection de contour

 Segmentation

Il s’agit du partitionnement d’images en régions disjointes. Son objectifs c’est d’identifier les
objets d’intérêts dans une image (objet : région à segmenter).
Il existe deux approches :

 Approche « contour » : dans ce cas les régions sont délimitées par les
contours qu’elle représente (séparation).
 Approche « région » : les régions sont déterminées en fonction d’un critère
comme : le niveau de gris, la texture ou la couleur.

21
Figure 11: Segmentation d’une image donnée

b) Opérations haut niveau pour la reconnaissance d’objets

À base de caractéristiques (détecteurs et descripteurs), comme on peut le voir dans l’image ci-
dessous.

Figure 12: Opération de Haut niveau pour la reconnaissance d'objet

22
3. Les différentes applications de la Vision par Ordinateur

La vision par ordinateur est utilisée dans plusieurs applications de la vie courante, on peut citer
entre autre : la détection et la reconnaissance d’objets présentes dans une scène, la
reconnaissance de caractère, la reconnaissance faciale et la détection d’émotion, suivi d’objets
(Tracking) etc.
Dans la figure suivante nous pouvons voir une illustration des exemples cités.

23
Figure 13: Quelques exemples d'applications de la VO

Figure 14: Suivi d'objets (Tracking)

4. Traitement d’image

Le traitement d'images désigne l'ensemble des opérations sur les images numériques, qui
transforment une image en une autre image, ou en une autre primitive formelle.

24
5. Image

Une image est généralement une projection 2D d'une scène 3D capturée par un capteur. C'est
une fonction continue de deux coordonnées dans le plan image. Pour traiter une telle image sur
un ordinateur numérique, il faut à la fois deux étapes:

 Echantillonnage spatial
 Quantification des luminances

Une image numérique est une image échantillonnée et quantifiée!

25
Figure 15: Représentation matricielle d'une scène capturée

Traitement d’image Vision par Ordinateur

Acquisition Stéréovision

Compression, Transformation Reconnaissance des formes

Rehaussement, Restauration Compréhension de l’image

Super−résolution

Détection contours, Segmentation


Suivi de forme

Figure 16: Eléments permettant de décrire Traitement d'image et la VO

II. Deep Learning

26
a) Définition :

Le deep learning ou apprentissage profond est un type d'intelligence artificielle dérivé


du machine learning (apprentissage automatique) où la machine est capable d'apprendre par
elle-même, contrairement à la programmation où elle se contente d'exécuter à la lettre des règles
prédéterminées.
L’IA désigne l'ensemble des techniques d'apprentissage automatique (machine Learning),
autrement dit une forme d'apprentissage fondée sur des approches mathématiques, utilisées
pour modéliser des données. Pour mieux comprendre ces techniques, il faut remonter aux
origines de l'intelligence artificielle en 1950, année pendant laquelle Alan Turing s'intéresse
aux machines capables de penser.
Cette réflexion va donner naissance au machine learning, une machine qui communique et se
comporte en fonction des informations stockées. Le deep learning est un système avancé basé
sur le cerveau humain, qui comporte un vaste réseau de neurones artificiels. Ces neurones sont
interconnectés pour traiter et mémoriser des informations, comparer des problèmes ou
situations quelconques avec des situations similaires passées, analyser les solutions et résoudre
le problème de la meilleure façon possible.
Comme chez les êtres humains, le deep learning consiste à apprendre des expériences vécues
ou, dans le cas des machines, des informations enregistrées.

b) Réseau de neurones

Outil de modélisation puissant dont l’architecture est basée sur celle du cerveau humain qui est
composé de neurones reliés entre eux et communiquant via des "courants électriques" (influx
nerveux).
Un neurone reçoit les influx nerveux à travers les dendrites (input) et les génère à travers les
axones (output).

27
Figure 17: Neurone Biologique

Ce sont les travaux de Warren MacCulloch et de Walter Pitts en 1943 qui ont permis de faire
l’analogie entre le cerveau humain et l’ordinateur. C’est la modélisation mathématique et
informatique du neurone biologique qui a abouti au neurone formel qui est l’élément de base
des neurones artificiels.
Le neurone formel est unité de traitement qui reçoit en entrée des données sous la forme d’un
vecteur, et produit une sortie réelle qui est une fonction des entrées et des poids des
connexions.
 Entrée : vecteur de données
 Sortie : valeur réelle = f(entrée, poids)

28
Figure 18: Structure du neurone formel

Avec la fonction de combinaison qui calcule une première valeur à partir des nœuds connectés
en entrée et du poids des connexions.
Exemple somme pondérée des valeurs des nœuds en entrée ∑𝑖 𝑥𝑖 ∗ 𝑤𝑖

Et la fonction d’activation qui est la fonction appliquée à la valeur retournée par la fonction
de combinaison.

Figure 19: Quelques fonctions d'activation

29
a) Architecture d’un réseau de neurone

Un Réseau de neurones est un ensemble de nœuds (neurones formels ou unités) connectés entre
eux avec des pondérations et structurés en couches successives.
Couche = ensemble de nœuds n’ayant pas de connexion entre eux.

 Les variables explicatives correspondent aux nœuds du premier niveau: Couche


d’entrée

 La variable cible correspond à des nœuds de dernier niveau: Couche de sortie

 Couche(s) intermédiaire(s) entre la couche d’entrée et la couche de sortie: Couche(s)


cachée(s)

Figure 20: Architecture Réseau de Neurones

c) Fonctionnement du Deep Learning :

Le deep Learning s'appuie sur un réseau de neurones artificiels s'inspirant du cerveau humain.
Ce réseau est composé de dizaines voire de centaines de « couches » de neurones, chacune
recevant et interprétant les informations de la couche précédente. Le système apprendra par

30
exemple à reconnaître les lettres avant de s'attaquer aux mots dans un texte, ou détermine s'il y
a un visage sur une photo avant de découvrir de quelle personne il s'agit.

Figure 21: Figure illustrant le fonctionnement du Deep Learning

Dans l’exemple ci-dessus, à travers un processus d’autoapprentissage, le Deep Learning est


capable d’identifier un chat sur une photo. À chaque couche du réseau neuronal correspond un
aspect particulier de l’image.

À chaque étape, les « mauvaises » réponses sont éliminées et renvoyées vers les niveaux en
amont pour ajuster le modèle mathématique. Au fur et à mesure, le programme réorganise les
informations en blocs plus complexes. Lorsque ce modèle est par la suite appliqué à d'autres
cas, il est normalement capable de reconnaître un chat sans que personne ne lui ait jamais
indiqué qu'il n'ait jamais appris le concept de chat. Les données de départ sont essentielles :
plus le système accumule d'expériences différentes, plus il sera performant.

31
d) Algorithmes du Deep Learning

En Deep Learning on utilise plusieurs types de réseau de neurones, les trois principaux sont : le
Artificial Neural Network (ANN), le Convolutionnal Neural Network (CNN), le Recurrent
Neural Network (RNN). Dans ce présent rapport nous allons plus nous intéresser au CNN vu
que c’est le mieux adapté au traitement d’image, objet de notre étude.

e) CNN

Les principales motivations de ce réseau de neurones sont :

 S’inspirer du cortex visuel qui est composé de plusieurs zones dont les champs visuels
se chevauchent.

 Traiter la problématique de vision par ordinateur (computer vision)

Le principe est simple, on commence par diviser l’entrée en plusieurs «blocs», ensuite on affecte
une pondération traduisant l’importance de chacune des blocs pour à la fin effectuer un
apprentissage afin de différencier entre les différents blocs de l’entrée.

1. Architecture du CNN :

La convolution permet d’extraire des caractéristiques en balayant l’entrée (image ou carte de


caractéristiques) et d’appliquer l’opération de convolution à l’entrée masque convolutionnel,
appelé aussi filtre ou noyau.

Les différentes couches qui composent le CNN sont :

La couche de convolution

 En entrée du CNN, une couche de convolution extrait une nouvelle matrice en


appliquant le filtre de convolution à la matrice d’entrée.

 Les poids d’un filtre de convolution évoluent avec l’apprentissage

 Permet d’extraire des caractéristiques (features) valid-padding (moins de


caractéristiques), same-padding (même nombre, voire plus).

Couche de pooling

 Réduit la dimensionnalité des caractéristiques extraites par la couche de convolution

32
Couche de normalisation

Elle effectue une normalisation des données, elle est optionnelle.

Couche de correction

Celle-ci applique une fonction d’activation (de préférence ReLu) sur la sortie de la couche
précédente elle aussi optionnelle.

Couche entièrement connectée (FC)

Elle intervient après les couches de convolution et de pooling, composée de neurones


complètement connectés à la couche précédente son role de c’est de trouver des combinaisons
complexes entre les caractéristiques de haut-niveau retournées par les couches de convolution.

Couche de perte

Il s’agit de la dernière couche dans un CNN, son rôle c’est de calculer l’output et de déterminer
l’écart entre le prédit et le réel. Plusieurs fonctions peuvent être utilisées (Soft max, par
exemple, pour un classement multi classe).

Figure 22: Couches des CNNS

33
Figure 23: Exemple de CNNs VGGNet

Les avantages de travailler avec les CNNs c’est qu’ils sont performants, capable d’extraire les
caractéristiques automatiquement, ils sont aussi rapides en phase d’application et surtout qu’ils sont
adaptés à des jeux de données de grande dimensionnalité.

34
f) Application du Deep Learning

Le deep learning est d'une grande utilité dans l'univers des technologies de l'information et de
la communication.
Il est employé dans les systèmes de reconnaissance faciale et vocale qu'embarquent certains
smartphones, et en robotique pour que les équipements intelligents puissent avoir la réaction
attendue dans une situation donnée (par exemple un réfrigérateur intelligent qui émet un signal
d'alarme s'il détecte une porte restée ouverte ou une température anormale au sein des
compartiments).

Il est utilisé dans beaucoup d’autres domaines :

 reconnaissance d'image,

 traduction automatique,

 voiture autonome,

 diagnostic médical,

 recommandations personnalisées,

 modération automatique des réseaux sociaux,

 prédiction financière et trading automatisé,

 identification de pièces défectueuses,

 détection de malwares ou de fraudes,

 chatbots (agents conversationnels),

 exploration spatiale,

 robots intelligents.

35
Conclusion

Ce chapitre nous a permis de passer en revue les concepts clés lies à notre projet.
Dans le chapitre suivant, nous allons étudier l’existant, analyser les besoins fonctionnels et
définir les objectifs spécifiques.

36
Chapitre 3 : Etat de l’art

Introduction

La particularité de notre sujet s’explique par le fait qu’il s’intéresse à plusieurs notions ce qui
le rend un peu difficile d’un certain point de vue.
En général les images et vidéos utilisées pour la détection et la reconnaissance d’objets
(personnes et véhicules) ne sont pas facile à obtenir.
Tout de même des projets réalisés et allant dans le sens notre étude sont disponibles sur le net
avec de bon résultats plus ou moins satisfaisants.
Dans ce chapitre je présenterai quelques projets et travaux relatifs à la détection
et la reconnaissance d’objets (véhicule et personnes).

I. Etude de l’existant

Conclusion

37
Chapitre 4 : Conception de notre système de recueil de données de
trafic

Introduction
Apres avoir défini les concepts liés à notre étude, nous allons à présent présenter la conception
de notre système de recueil de données de trafic. Nous allons d’abord commencer par détailler
sur les différentes méthodes de détection et d’extraction de nos objets. Pour ensuite donner les
informations relatives aux modèles de reconnaissance puis terminer par le tracking d’objets.

1. Description du projet

C’est un système qui va permettre de capturer à temps réel des véhicules et des personnes sur
des vidéos, ces données stockées au niveau d’une base de données peuvent être utilisées afin
d’entrainer des modèles de reconnaissance faciales et de reconnaissance de véhicules. Une
dernière partie sera réservée au Tracking ou suivi d’objets.
Ces différentes parties sont résumées dans la figure suivante.

Détection et Reconnaissance
Extraction de Visages et de
d’objets véhicules

Object Tracking

2. Conception des modèles de détection et d’extraction d’objets

38
a. Détection et extraction d’objets avec Yolo

Yolov3 (You Only Look Once) est un algorithme de détection d’objets qui est capable de
reconnaitre plus de 80 types d’objets différents sur une image ou vidéo, le code source a été
écrit avec le Framework darknet en langage C.

Principe de fonctionnement en général

Le système divise l'image d'entrée en une grille S x S. Si le centre d'un objet se trouve dans une
cellule de la grille, celle-ci est chargée de détecter cet objet. Chaque cellule de la grille prédit
les délimitations des box englobants et les scores de confiance pour ces box.
Ces indices de confiance reflètent le degré de sureté du modèle quant au fait que la boîte contient
un objet et la précision avec laquelle il prédit la boîte.

Formellement, nous définissons la confiance comme Pr (Object) * IOU. Si aucun objet n'existe
dans cette cellule, les scores de confiance doivent être de zéro. Sinon, nous voulons que le score
de confiance soit égal à l'intersection de l'union entre la boîte prévue et la vérité au sol.

Chaque cadre de sélection comprend 5 prédictions : x, y, w, h et confiance. Les coordonnées


(x, y) représentent le centre de la boîte par rapport aux limites de la cellule de la grille. La
largeur et la hauteur sont prédites par rapport à l'image entière. Enfin, la prédiction de confiance
représente la reconnaissance de dette entre la case prévue et toute case de vérité au sol. Chaque
cellule de grille prédit également les probabilités de classe conditionnelles C, Pr (Classi |
Object). Ces probabilités sont conditionnées par la cellule de la grille contenant un objet. Nous
ne prévoyons qu'un seul ensemble de probabilités de classe par cellule de grille, quel que soit
le nombre de cases B.

Au moment du test, nous multiplions les probabilités de classe conditionnelles et les prédictions
de confiance individuelles, Pr (Classi | Object) * Pr (Object) * IOU = Pr (Classi) IOU ce qui
nous donne des scores de confiance spécifiques à chaque classe pour chaque case. Ces scores
encodent à la fois la probabilité que cette classe apparaisse dans la boîte et dans quelle mesure
la boîte prévue correspond à l'objet.

39
Figure 24: Exemple de détection avec Yolo

Entrée :

YOLO divise l'image d'entrée en une grille S x S. Chaque cellule de la grille ne prédit qu'un
seul objet. Par exemple, la cellule jaune de la grille ci-dessous tente de prédire l’objet personne
dont le centre (le point bleu) se situe à l'intérieur de la cellule.

40
Figure 25: Détection de plusieurs objets

Vecteur de sortie :

Chaque cellule de la grille prédit les limites de B ainsi que les probabilités de classe C.
La prédiction du cadre de sélection comporte 5 composantes : (x, y, w, h, confiance).
Coordonnées (x,y,w,h) : Les coordonnées (x, y) représentent le centre de la boîte, par rapport
à l'emplacement de la cellule de la grille. Ces coordonnées sont normalisées pour être entre 0 et
1. Les dimensions de la boîte (w, h) sont également normalisées à [0, 1], par rapport à la taille
de l'image.

La confiance : La confiance reflète la présence ou l'absence d'un objet de n'importe quelle


classe, c'est l’IoU (Intersection over Union) de la boite prédite de l'objet et de la boite de l'objet
réel (définie au préalable).

Architecture de Yolo :

YOLO dispose de 24 couches convolutives suivies de 2 couches entièrement connectées


(FC). Certaines couches de convolution utilisent des couches de réduction 1 * 1 alternativement
pour réduire la profondeur des cartes de caractéristiques.
Pour la dernière couche de convolution, il émet un tenseur de forme (7, 7, 1024).

41
Le tenseur est ensuite aplati. En utilisant 2 couches entièrement connectées comme forme de
régression linéaire, il génère 7 * 7 * 30 paramètres, ce vecteur est ensuite transformé en (7, 7,
30), soit 2 prévisions de boîte limite par emplacement.

Figure 26: Architecture de Yolo

b) La méthode préconfigurée Haar Cascade d’Opencv

La détection d'objets dans une image ou une vidéo est une tâche non triviale en vision par
ordinateur, car deux critères sont à prendre en compte lors de la construction d'une méthode de
détections d'objet. Le premier est la capacité que cette méthode à détecter correctement un objet
et à ne pas se tromper le second est le temps d'exécution que cette méthode nécessite. En ce
sens, la méthode des cascades de Haar respecte ces deux critères et nous allons voir comment
dans ce qui suit.

La méthode des cascades de Haar a été proposée en 2001 dans un article de recherche intitulé
"Rapid Object Détection using a boosted cascade of simple feature" par Paul Viola et Michael
Jones. Bien que la méthode ait été spécialement conçue pour détecter des visages, après elle a
été élargie pour tous les objets. Et de manière générale pour tous les types d’images.

 Constitution d'une base de données contenant des images avec l'objet et des
images sans l'objet.
42
Pour pouvoir utiliser les cascades de Haar, il faut dans un premier temps constituer un jeu de
données composé d'images contenant uniquement et ne contenant pas l'image de l'objet que l’on
souhaite détecter.
Et comme pour toute application de reconnaissance d'image il est recommandé que:
Les images doivent être proches visuellement de ce que l’on souhaite détecter, il faut une
certaine quantité d'exemples non négligeable.

 Extraction de caractéristiques de l'ensemble des images contenues dans la base

Une fois la base d'images constituée la seconde étape consiste à extraire les caractéristiques. La
méthode Haar cascades crée les caractéristiques qu'il utilise en appliquant sur l'image un filtre
carré de 24x24. Il s'agit des filtres présentés sur l'image ci-dessous. Les caractéristiques sont
obtenues en soustrayant la somme des pixels de l'image couverts par la zone blanche du filtre à
la somme des pixels couverts par la zone bleue. Ce processus génère énormément de
caractéristiques étant donné que le filtre est appliqué sur toute l'image.

Figure 27: Filtres utilisés par Haar Cascade

Il faudra choisir parmi celles-ci les plus pertinentes. Cela se fait grâce à l'algorithme AdaBoost
qui l'on verra a comparativement une grande capacité de généralisation et permet temps
d'exécution imbattable pour les applications telles que la détection d'objets.

43
 Entraînement d'un classifieur en cascade

Pour des raisons de performance, c’est le classifieur AdaBoost (Adaptive Boosting) qui a été
choisi pour le détecteur de Haar Casacade. Comparativement aux autres classifieurs, ce
classifieur présente l'avantage d'avoir une bonne vitesse d'exécution pour l'application qui en
est faite tout en conservant un taux de reconnaissance haut.

Le principe d'Adaboost est d'entraîner un grand nombre d'arbres de décision à haut niveau, l'idée
consiste à ne garder que le haut de l'arbre, la racine et deux branches. Ce choix semble cohérent
au vu du grand nombre de feature, duquel on est en présence.
L'idée derrière AdaBoost est de combiner de faibles classifieurs afin d'en obtenir un fort. Les
classifieurs votent à la fin, le poids de chaque classifieur dépend de sa performance lors de
l'apprentissage. Chaque classifieur est entraîné en utilisant un sous-ensemble du jeu de données
totales Adaboost assigne un poids à chaque exemple mal classé après chaque entraînement. Les
exemples mal classifiés ont un plus gros poids. Donc ils apparaissent plus souvent dans le sous-
ensemble de données du classifieur suivant.
Opencv est livré avec des fichiers XML pré-entraînés de diverses Haar cascades, où chaque
fichier XML contient l'ensemble des fonctionnalités et les caractéristiques pour déterminer
chaque type d’objet.

 Phase de détection

Une fois entraînés, nous pouvons passer à la phase de détection. Seulement comme ce processus
de calcul prends énormément de temps des images intégrales sont calculées afin d'accélérer le
temps de calcul.
L’Exemple ci-dessous nous permet détecter le visage pour une image donnée et d’encadrer ce
dernier avec un rectangle.

44
Résultat :

45
g) Reconnaissance de visage

Apres extraction des visages avec les différentes méthodes citées en haut, nous pouvons
maintenant entrainer un modèle nous permettant de faire la reconnaissance faciale.
La reconnaissance faciale est une tâche que les humains effectuent naturellement et sans effort
dans leurs vies quotidiennes. Et en tant qu’une des technologies biométriques de base, a pris
une part de plus en plus importante dans le domaine de la recherche, ceci étant dû aux avancés
rapides dans des technologies telles que les appareils photo numériques, Internet et les
dispositifs mobiles, le tout associé à des besoins en sécurité sans cesse en augmentation.

a) Fonctionnement :

Les systèmes de reconnaissance du visage reposent sur des algorithmes d’analyse de l’image,
pouvant identifier les personnes qui y sont associées. Ces programmes créent une image du
visage, en mesurant ses caractéristiques. Ils en produisent ensuite un fichier individuel,
dénommé "Template ou signature". Les Template sont alors comparées avec toutes les images
existantes au niveau de la base de données, en ressortant un score de similitude.

b) Motivation

On peut se poser la question à savoir pourquoi la Reconnaissance Faciale ? La reconnaissance


faciale est la technique la plus commune et populaire. Elle reste la plus acceptable puisqu'elle
correspond à ce que les humains utilisent dans l'interaction visuelle, et par rapport aux autres
méthodes, la reconnaissance du visage s’avère plus avantageuse, on peut citer :
 Facile à être utilisé dans le sens ou les matériels utilisés est moins couteux
 Non intrusive, c’est-à-dire le système de reconnaissance de visages ne nécessite aucune
coopération de l’individu, du genre : mettre le doigt ou la main sur un dispositif
spécifique ou parler dans un microphone. En effet, la personne n’a qu’à rester ou
marcher devant une caméra pour qu’elle puisse être identifiée par le système.

Dans le contexte actuel l’objectif est de pouvoir extraire des visages sur une image ou vidéo
pour identifier la personne si elle a déjà son image dans notre base de données.

c) Le système de reconnaissance de visage

Le système de reconnaissance de visage se déroule suivants plusieurs étapes

46
 La détection :

Cette étape joue un rôle très important et a une très grande influence sur la fiabilité et la
performance de tout le système de reconnaissance. On tient compte généralement de trois
paramètres essentiels : l’éclairage, la variation de posture et l’échelle. La variation de l’un de
ces trois paramètres peut entrainer une fausse identification.

 L’acquisition de l’image :
Cette étape permet d’extraire du monde réel une représentation bidimensionnelle, cette
opération peut être statique à l’aide d’un appareil photo, scanner etc. Ou dynamique à l’aide
d’une caméra, webcam etc.

 Les prétraitements :
Le prétraitement consiste à éliminer les parasites causes par la qualité des capteurs utilisé lors
de l’acquisition de l’image pour conserver seule les informations essentielles.

 L’extraction des paramètres :


L’étape de l’extraction des paramètres représente le cœur du système de reconnaissance, elle
consiste à effectuer le traitement de l’image dans un autre espace de travail plus simple et qui
assure une meilleure exploitation de données, et donc permettre l’utilisation, seulement, des
informations utiles, discriminantes et non redondantes.

La classification :
Cette étape consiste à modéliser les paramètres extraits d’un visage ou d’un ensemble de visages
d’un individu en se basant sur leurs caractéristiques communes. Un modèle est un ensemble
d’informations utiles, discriminantes et non redondantes qui caractérise un ou plusieurs
individus ayant des similarités.

L’apprentissage :
Après l’extraction et la classification, une étape de l’apprentissage consiste à mémoriser les
paramètres dans une base de données bien ordonnée pour faciliter la phase de reconnaissance
et la prise d’une décision.

La décision :

47
La stratégie de décision nous permet de voir si l'identité de l'utilisateur correspond à l'identité
proclamée ou pas. Donc l’objectif de cette étape est de connaitre la différence entre les deux
images.

Détection Acquisition

Extraction Prétraitemen
t

Décision
Classification

Apprentissage

Figure 28 : Architecture d'un système de reconnaissance de visage

h) Architecture du modèle VGG-FACE

Le modèle ne demande qu’un prétraitement spécifique qui consiste à soustraire la valeur


RGB moyenne, calculée sur l’ensemble d’apprentissage, de chaque pixel.
Durant l’apprentissage du modèle, l’input de la première couche de convolution est
une image RGB de taille 224 x 224. Pour toutes les couches de convolution, le noyau de
convolution est de taille 3×3: la plus petite dimension pour capturer les notions de haut,
bas, gauche/droite et centre. C’était une spécificité du modèle au moment de sa
publication.
Rappelons que ces couches ont pour but de filtrer l’image en ne gardant que des informations
discriminantes comme des formes géométriques atypiques.
Ces couches de convolution s’accompagnent de couche de Max-Pooling, chacune de
taille 2×2, pour réduire la taille des filtres au cours de l’apprentissage.

48
En sortie des couches de convolution et pooling, nous avons 3 couches de neurones
Fully-Connected. Les deux premières sont composées de 4096 neurones et la dernière
de 1000 neurones avec une fonction d’activation softmax pour déterminer la classe de
l’image.

Figure 29: Architecture du modèle VGG-Face

8. Reconnaissance de plaque

C’est une méthode d'identification qui utilise des techniques de traitement d'images et de vision
par ordinateur pour extraire le numéro d’identification d’après l’image de la voiture.
Apres détection de la plaque d'immatriculation, cela permet de passer très bien à l'application
de la reconnaissance optique de caractères (OCR) pour extraire et afficher la chaîne de texte de
la plaque de voiture identifiée.

a) Entrainement du model et reconnaissance de caractère

Dans cette partie nous allons utiliser LBPH pour la détection des voitures.

49
Local Binary Pattern (LBP) est un descripteur de texte simple mais très efficace qui étiquette
les pixels d'une image en seuillant le voisinage de chaque pixel et considère le résultat comme
un nombre binaire.
Il a été décrit pour la première fois en 1994 (LBP) et s'est depuis avéré être une fonctionnalité
puissante pour la classification des textures.
Il a en outre été démontré que lorsque LBP est combiné avec des histogrammes de gradients
orientés (HOG), il améliore considérablement les performances de détection sur certains
ensembles de données.
En utilisant le LBP combiné avec des histogrammes, nous pouvons représenter les images de
visage avec un simple vecteur de données.
Comme LBP est un descripteur visuel, il peut également être utilisé pour des tâches de
reconnaissance faciale.

La procédure LBP fonctionne en utilisant un nombre différent de rayons et de voisins. Comme


on peut le voir ci-dessus.

Figure 30: Différents rayons voisins utilisés avec LBPH

La première étape de LBPH est de créer une image intermédiaire qui décrit l’image originale
d’une très belle manière en résumant les caractéristiques de la face de l’image, ce sont les
paramètres Radius et Neighbors qui jouent se rôle.

50
Figure 31: Voisinage LBPH

En outre les 4 paramètres de la fonction sont :


Radius, Neighbors , Grid X, Grid Y.

Radius : Le rayon est utilisé pour construire un lbp circulaire et représenté le rayon autour des
pixels centraux, c’est souvent fixé à 1.
Neighbors : Il s’agit du nombre de points d’échantillonnage autour duquel on construit le lbp
circulaire. On retient plus ce nombre est élevé, plus le cout est aussi élévé .Il est souvent fixé à
8.
Grid X : le nombre de cellules dans le sens horizontal. Plus il y a de cellules, plus la grille est
fine, plus la dimensionnalité du vecteur caractéristique résultant est élevée. Il est souvent fixé à
8.
Grid Y : le nombre de cellules dans la direction verticale. Plus il y a de cellules, plus la grille
est fine, plus la dimensionnalité du vecteur caractéristique résultant est élevée. Il est souvent
fixé à 8.

LBPH est souvent utilisé pour la reconnaissance faciale et l’analyse textuelle pour une
prédiction plus rapide mais il peut aussi être utilisé dans la classification d’image comme pour
celle des voitures.

51
9. Object Tracking

Le tracking d’objets, consiste à localiser et suivre un ou plusieurs éléments en mouvement dans


une vidéo. Cette problématique se retrouve dans une grande variété de domaines, tels que
l’interaction ´ homme-machine, la vidéo surveillance, l’imagerie médicale, l’édition de vidéo
ou encore, comme dans notre cas, la réalité augmentée. L’objectif principal est donc de localiser
l’objet ciblé à travers une suite d’images consécutives. On séparera le tracking dit ”pur”, qui
n’utilise que l’historique de l’objet pour prédire ses mouvements, de la détection, qui fait une
recherche au sein de l’image à partir de factures pour retrouver l’objet.

Dans cette partie nous avons essayé de faire le tracking des véhicules sur une vidéo, il s’agit
d’un simple programme ou on a essayé de détecter l’objet comme nous l’avons fait en haut, de
l’encadrer, de lui donner un identifiant puis à travers la fonction « tracking » d’open cv nous
avons puis faire le suivi du même objet sur sa trajectoire, toutes les positions prises par l’objet
pourrons être répertoriés sur un tableau et être visualisé.

Figure 32: Image illustrant l’Object Tracking

52
Conclusion

Tout au long de ce chapitre nous nous sommes intéressés au cadre théorique de notre projet en
citant les méthodes, algorithmes utilisés. Nous pouvons modéliser le tout au chapitre suivant.

53
Chapitre 5 : Réalisation du système de recueil de données de trafic

Introduction

Apres la conception de notre système de recueil de donnée, nous allons aborder dans ce chapitre
la réalisation en commençant par une présentation de l’environnement de travail ainsi que les
API et technologies utilisées.

I. Environnement de travail
a) Langage de programmation

Le langage de programmation Python, est le langage Open Source, le plus réputé dans les
domaines et de Data Science et traitement d’image, il est marque par sa gestion automatique de
la mémoire, son système d’exception et son adaptation a plusieurs plateformes informatiques.
Ce langage est connu par sa performance dans tous les problèmes de Deep Learning, vu qu’il
offre un large choix de bibliothèques afin de répondre à tous les besoins.
Les principaux modules et librairies utilises pour ce projet sont :

 Pandas : Structures de données puissantes pour l'analyse de données, les séries


chronologiques et les statistiques
 Matplolib : Pour la création des graphes dynamiques
 Numpy : Pour la manipulation des matrices et des tableaux
 Scipy : Pour un environnement de travail scientifique et des algorithmes numériques
 Tensorflow : C’est une bibliothèque open source d'apprentissage automatique
developpé par Google. Il est l'un des outils les plus utilises en IA dans le domaine de
l'apprentissage machine.
 Keras : C’est l’une des bibliothèques les plus utilisées en Deep Learning.
 Opencv : C’est une bibliothèque graphique libre, initialement développée par Intel,
spécialisé dans le traitement d’images en temps réel.

54
b) Environnement de développement

Pour ce projet, nous avons choisi de travailler avec Jupyter notebook et google collaborary
(un environnement Jupyter notebook qui s’exécute entièrement dans le cloud). Ces
environnements vont nous permettre de réaliser les différentes taches du projet.

c) Réalisation

1. Extraction de visage

 Détection et extraction de visage à temps réel avec la méthode


Haar cascade

Ici on commence d’abord par importer les bibliothèques nécessaires ainsi que le fichier Haar
cascade permettant de détecter le visage. Ensuite on lance la camméra (à ce niveau on peut
aussi spécifier le chemin d’une vidéo).

55
Ensuite nous allons lancer la boucle permettant de détecter le visage à chaque fois pour ensuite
pouvoir l’encadrer avec un rectangle, l’extraire et l’enregistrer dans un fichier.

Avec notre webcam pendant une certaine durée un bon nombre de visage a pu être capturé et
enregistrer à temps réel comme on peut le voir comme suit.

56
Figure 33: Visages extraites avec la méthode HC

 Détection et extraction de visage à temps réel avec la Yolo

2. Extraction de plaque

 Détection et extraction de véhicules à temps réel avec la


méthode Haar cascade

C’est le même principe avec l’extraction de visage seulement que dans cette partie on va
utiliser un fichier cascade permettant de détecter la voiture et en entrée on aura une vidéo dans

57
laquelle on peut voir des voitures rouler. Ainsi nous avons les voiture capturées et
sauvegarder comme suit.

Figure 34: Véhicules extraites avec la méthode HC

 Détection et extraction de véhicules à temps réel avec Yolo

3. Reconnaissance Faciale

58
4. Reconnaissance de plaques

Dans cette partie, nous avons procédé à la création d’un model permettant de détecter à temps
réel la plaque d’immatriculation et ensuite nous allons faire le traitement nécessaire pour la
reconnaissance des caractères sur la plaque.

 Chargement du Datasets et création du modèle

Alors nous allons charger notre datasets qui contient différentes images de voiture qu’on a
téléchargé et qui contiennent des plaque d’immatriculation marocaine. Ceci peut être obtenu
après prétraitement de nos données collectées lors de l’étape de l’extraction des véhicules.

Figure 35: Datasets Véhicules

59
Apres chargement des données, nous allons pouvoir entrainer notre model avec ces dernières.

Notre model entrainé sera enregistré au niveau d’un fichier .yml afin de faciliter son utilisation
en faisant juste appel.

Apres nous avons écrit un code permettant de détecter une voiture sur une vidéo en utilisant
notre model.

60
 Détection de la plaque d’immatriculation et extraction des
caractères.

A ce niveau, il s’agira d’utiliser le résultat de l’étape précédente afin de détecter la plaque et


extraire les caractères qu’elle contient.

(suite)

5. Tracking de personnes ou de véhicule

Dans cette partie nous allons nous intéresser à la détection des objets et de leur suivi au cours du
trajet et de leur décompte.

61
Nous avons d’abord commencé par créer une classe EuclideanDistTracker dans le quelle on a
créé deux fonctions permettant la première nous permet d’initialiser un paramètre donné qui
sera incrémenté lorsqu’un nouvel objet sera détecter. Et la deuxième qui permet d’assigner un
id pour tout nouvel objet détecté.

Figure 36: notre classe EuclideanDistTracker

Par la suite nous avons chargé la vidéo, créer un objet de notre classe puis faire le traitement
nécessaire permettant de détecter, d’encadrer puis d’assigner un id permettant de suivre
l’objet tout au long du trajet.

Figure 37:Object Tracking

62
Résultat :

(Insérer la vidéo)

Conclusion

Dans cette partie nous avons commencé par parler du langage de programmation utilisé pour le projet
ainsi que l’environnement de développement. Ensuite nous nous sommes intéressés à notre système de
recueil de donnée de trafic en pratique.

63
Conclusion Générale

L’objectif ce projet est d’implémenter un système de recueil de données de trafic en utilisant


les outils de traitement d’image afin de pouvoir exploiter les données fournies par les caméras
de surveillance et effectuer les taches comme l’extraction de visage ou de plaque, la
reconnaissance de visage et de plaque et l’Object tracking.

Après avoir présenté l’état de l’art et faire une étude de l’existant, nous avons fait la conception
de notre système et procéder à son implémentation.
Ce projet nous a été très bénéfique car il nous a permis de maîtriser plusieurs techniques et
d’approfondir nos connaissances dans le domaine de traitement d’image.
Enfin, ce projet était une bonne occasion pour réaliser un travail très concret, avec des objectifs
clairs et bien définis et de se familiariser avec un environnement de développement
Professionnel.
Les perspectives…

64
Webographie :

https://www.lebigdata.fr/computer-vision-definition

Définition | Deep Learning - Apprentissage profond | Futura Tech (futura-sciences.com)

https://www.researchgate.net/publication/317092201_Traffic_scene_recognition_based_on_deep_
CNN_and_VLAD_spatial_pyramids

https://lionbridge.ai/datasets/250000-cars-top-10-free-vehicle-image-and-video-datasets-for-
machine-learning/

https://www.hebergementwebs.com/nouvelles/tutoriel-python-comment-effectuer-une-detection-
de-vehicule-en-temps-
reel#:~:text=nous%20utiliserons%20la%20m%C3%A9thode%20detectMultiScale,v%C3%A9hicules%2
0dans%20les%20images%20vid%C3%A9o.&text=Image%20en%20niveaux%20de%20gris%20sp%C3%
A9cifiez%20l'image%20%C3%A0%20traiter,%C3%AAtre%20extraite%20des%20flux%20vid%C3%A9o.

https://thedatafrog.com/fr/articles/human-detection-
video/#:~:text=OpenCV%20fournit%20une%20impl%C3%A9mentation%20pour,tenant%20debout%2
C%20et%20compl%C3%A8tement%20visibles.

https://data-flair.training/blogs/python-project-real-time-human-detection-counting/

https://robocademy.com/2020/05/01/a-gentle-introduction-to-yolo-v4-for-object-detection-in-
ubuntu-20-04/

https://nbviewer.jupyter.org/github/yihui-he/Objects-Detection-with-YOLO-on-Artwork-
Dataset/blob/master/Report_Yihui.pdf

65

Vous aimerez peut-être aussi