Pfe Diao Abdou
Pfe Diao Abdou
Pfe Diao Abdou
Département d’Informatique
Master In Intelligent Processing System
Traitement Intelligent des Systèmes
Intitulé :
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 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
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é :
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
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
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.
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.
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.
L’expérience, ses connaissances à jour et sa pensée créative l’amène à offrir des solutions
techniques à valeur ajoutée dont :
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
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.
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 :
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.
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
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
Faciliter la communication
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.
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.
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.
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)
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
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
À base de caractéristiques (détecteurs et descripteurs), comme on peut le voir dans l’image ci-
dessous.
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
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
25
Figure 15: Représentation matricielle d'une scène capturée
Acquisition Stéréovision
Super−résolution
26
a) Définition :
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.
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.
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.
À 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
S’inspirer du cortex visuel qui est composé de plusieurs zones dont les champs visuels
se chevauchent.
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 couche de convolution
Couche de pooling
32
Couche de normalisation
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 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).
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).
reconnaissance d'image,
traduction automatique,
voiture autonome,
diagnostic médical,
recommandations personnalisées,
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
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.
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.
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.
Architecture de Yolo :
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.
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.
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.
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
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.
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.
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
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.
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.
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 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
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
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é.
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 :
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
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
2. Extraction de plaque
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.
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.
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.
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.
(suite)
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é.
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.
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
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
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