Академический Документы
Профессиональный Документы
Культура Документы
2 Apprentissage profond 27
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2 Généralité sur l’apprentissage profond . . . . . . . . . . . . . . . . . . . . . . 28
2.3 Réseaux de neurones convolutifs (CNN) . . . . . . . . . . . . . . . . . . . . . 31
2.4 Exemple réel de model de CNN célèbres . . . . . . . . . . . . . . . . . . . . . 39
2.5 Outils préférables d’apprentissage profond . . . . . . . . . . . . . . . . . . . 42
2.6 Bibliothèques d’outil adopté . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Conclusion générale 75
Bibliographie 77
i
TABLE DES MATIÈRES
ii
Liste des figures
iii
LISTE DES FIGURES
iv
Liste des tableaux
v
LISTE DES TABLEAUX
vi
Introduction générale
Contexte
Cette mémoire s’inscrit dans le cadre d’un projet de recherche autour du thème de la
sécurité routière et de la conduite intelligente. Les perspectives de ce projet sont, entre
autres, de développer un Framework proposant une large panoplie de fonctions liées au
traitement et à l’analyse des images numériques utilisées pour l’interprétation des objets
d’une scène routière et pour la détection des panneaux de signalisation.
Les systèmes d’aide à la conduite assistée utilisent des méthodes qui analysent les
scènes restituées à l’aide d’un capteur, et décident automatiquement de leur contenu.
La plupart de ces méthodes privilégient d’analyser la scène sous forme d’une séquence
d’images prises dans de petites intervalles [Escalera 2004]. Ces méthodes réalisent un
traitement sur les images capturées afin d’identifier les panneaux routiers en passant,
1
CHAPITRE 0. INTRODUCTION GÉNÉRALE
dans un premier temps, par une étape de détection et, dans un deuxième temps, par une
étape de reconnaissance. Les algorithmes de détection de panneaux dans une image fixe
peuvent être classifiés selon les trois catégories suivantes :
• La modélisation géométrique où les contours de l’image sont analysés par une ap-
proche structurelle ou globale. En générale ces méthodes sont plus robustes que
celles photométriques car elles traitent le gradient de l’image, et peuvent traiter des
images en niveaux de gris ;
Organisation du mémoire
2
CHAPITRE 0. INTRODUCTION GÉNÉRALE
3
CHAPITRE 0. INTRODUCTION GÉNÉRALE
4
C HAPITRE 1
Sommaire
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
1.1 Introduction
Le Deep Learning (apprentissage profond) est une forme d’intelligence artificielle dé-
rivée du Machine Learning (apprentissage automatique). Cette branche est largement uti-
lisée ces dernières années dans plusieurs domaines de classification et de reconnaissance.
Dans ce chapitre nous allons tout d’abord détaille les notions relatives du Machine Lear-
ning , les types d’algorithmes d’apprend et les méthodes existantes appliquées dans l’ap-
prentissage automatique.
• Les variables initiales sont appelées les variables prédictives ou attributs ou ca-
ractéristiques, dans notre exemple mon âge, mon permis de conduite,... Ce sont
6
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
les variables à partir desquelles on espère pouvoir faire des prédictions. Les n va-
riables prédictives associées à une observation seront notées comme un vecteur
X = (x 1 ..., x n ) à n composantes. Un ensemble de M observations sera constitué de
M vecteurs X (1) ...X (M) .
• Une variable cible dont on souhaite prédire la valeur pour des événements non en-
core observés. Dans notre exemple, il s’agirait de l’accident mortel. on notera y cette
variable cible.
• Les données.
• La tâche spécifique.
• L’algorithme d’apprentissage.
7
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
Les domaines d’application du Machine Learning sont très vastes dans divers exemples.
On cite :
8
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
Méthodes supervisées
9
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
sion, des forêts de décision aléatoires (RDF), une régression logistique (LR), des machines
à vecteurs de support (SVM), des réseaux de neurones (NN), des machines à noyau et des
classeurs Bayésiens. Un large éventail d’algorithmes d’apprentissage a également été pro-
posé pour estimer ces différents types de cartographie.
L’apprentissage supervisé possède divers problèmes, Ces problèmes peuvent être prin-
cipalement divisés en deux approches principales : classification et régression.
• La classification : est un modèle de Machine Learning dans lequel les sorties y ap-
partiennent à un ensemble fini de valeurs [Malfante, 2017].
• Régression : Les modèles de régression sont classés parmi les modèles de Machine
Learning, ils décrivent la relation entre une variable de réponse (sortie) et une ou
plusieurs variables de prédiction (entrée) dont les sorties y sont des nombres.[Chierchia,
2017].
Méthodes non-supervisées
• Le Clustering : est une approche d’apprentissage non supervisée dans laquelle les
réseaux de neurones peuvent être utilisés pour une analyse exploratoire des don-
10
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
nées afin de trouver des modèles ou des regroupements cachés dans les données.
Ce processus implique le regroupement des données par similarité. Les applica-
tions pour l’analyse par grappe incluent l’analyse de la séquence des gènes, les
études de marché et la reconnaissance d’objets [Alelyani, 2013].
Méthodes semi-supervisées
11
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
rithme sur l’environnement produit une valeur de retour qui guide l’algorithme d’appren-
tissage [François, 2017].
Les avantages de l’apprentissage par transfert sont qu’il peut accélérer le temps qu’il
faut pour former et développer un modèle en réutilisant ces modules ou morceaux de mo-
dèles déjà développés. Ceci permet d’accélérer le processus d’apprentissage du modèle et
d’accélérer les résultats.
12
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
• K-nn
• Fuzzy c-means
13
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
La machine à vecteurs de support (SVM) est une méthode de classification par ap-
prentissage supervisé introduite par Vladimir Vapnik en 1995 [Vapnik 1995]. Cette mé-
thode, à partir d’un ensemble d’entée x, produit une sortie y telle y = f (x), où le but est
de retrouver f à partir de l’observation d’un certain nombre de couples entrée/sortie [Be-
nyahia 2011] .
Dans le domaine de la classification, l’utilisation de la plupart des algorithmes dévelop-
pés jusqu’ à présent nécessite que les données soient complétement disponibles dans un
ensemble de cardinalité finie. Certains de ces algorithmes ont pour objectif de construire
des classes en connaissant a priori les étiquettes d’appartenance des données aux classes :
On parle de classification supervisée [Boubacar 2006] .
Principe
Son principe consiste à établir une classe d’algorithmes basée sur le principe de mini-
misation du ‘’ Risque structurel ‘’ qui est décrit par la théorie de l’apprentissage statistique
qui utilise la séparation linéaire. Pour un ensemble de points linéairement séparables, il
existe une infinité d’hyperplans séparateurs comme nous montre la figure 1.8 :
14
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
Nous cherchons ici à obtenir l’hyperplan ayant la marge maximale (distance entre les
échantillons de classes différents) afin de maximiser la distance entre les deux classes
et de réduire l’erreur sue les données non vues. Il s’agit de séparer des individus par un
hyperplan de dimension égale au nombre de caractéristique. Les individus étant alors sé-
parés en deux classes mais cela n’est possible que dans le cas où les données à classer
seraient linéairement séparables.
Dans d’autre situations, les données seront projetées sur un espace de plus grandes di-
mensions afin qu’elles deviennent linéairement séparables [Vanik, 1995] .
Les Séparateurs à Vaste Marge est un algorithme de séparation de régions avec des
hyperplans optimaux dans un espace de données multidimensionnelles [Zidi, 2007] . Les
SVM se basent sur le principe de minimisation de risque formalisé par Vapnik dans le
cadre général de la théorie de l’apprentissage statistique. Les SVM ont d’excellentes ca-
pacités de généralisation prouvées dans [Vapnik 1998] . Initialement utilisées pour l’ap-
prentissage supervisé, les SVM et les méthodes à noyau sont aujourd’hui utilisés dans une
grande variété de problèmes allant jusqu’à la classification en ligne.
Dans cette partie, nous abordons les séparateurs à vaste marge. Nous nous intéressons
sur le fondement mathématique de cette théorie, nous allons commencer par le cas de
séparation linéaire ensuite le cas non linéairement séparable et nous finissons par l’étude
du cas non linéaire.
15
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
(x 1 , y 2 ) . . . (x i , y i ) ∈ R (1.1)
L’objectif des SVMs dans le cas linéaire est de calculer un hyperplan qui sépare au
mieux les échantillons de deux classes. Dans ce cas, la fonction f est linéaire en x i et
elle prend la forme générale suivante :
Il existe une infinité d’hyperplan capable de séparer parfaitement ces deux classes
(figure 1.9) :
16
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
passe ”au milieu” des points des deux classes d’exemples. Intuitivement, cela re-
vient à chercher l’hyperplan le ”plus sur”. La figure 1.10 donne une représentation
visuelle de l’hyperplan optimal dans le cas des données linéairement séparables.
La méthode utilisée dans les SVM est de trouver l’unique hyperplan qui maximise
la marge entre les deux classes, c’est à dire qui maximise :
2
M= (1.5)
kwk
17
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
Comme nous l’avons déjà mentionné, l’hypothèse que S soit linéairement sépa-
rable conditionne beaucoup la résolution du problème. En effet, il suffit qu’une ob-
servation des deux classes viole la contrainte y i (w x i +b) pour que ce problème n’ait
plus de solution. La figure 1.11 montre une telle situation.
Pour tenter de résoudre ce problème, l’idée consiste à relâcher les contraintes dans
le but d’autoriser quelques erreurs de classification. Cette généralisation de l’hyper-
plan à marge maximale a été proposée par Cortes and Vapnik 1995 en introduisant
les variables d’écart à la marge ξ1<i <L .
• SVM non-linéaires :
Dans le cas linéairement non séparable, le classifieur à marge maximale ne peut pas
être utilisé et aucun hyperplan séparateur optimal ne peut être trouvé.
18
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
La ruse qui fait vraiment la force des SVM repose sur les noyaux autoreproduisants.
L’idée de [Boser, 1992] fut alors de plonger les observations dans un espace de Hil-
bert T de dimension q plus élevée quep, voire infinie, à l’aide d’une fonction non
linéaire choisie à priori. L’espace T ainsi obtenu est appelé espace des caractéris-
tiques, ou aussi espace transforme1. La figure 1.13 illustre le principe de ce passage.
Dans la littérature, plusieurs techniques ont été développées pour étendre la m´méthode
SVM à des situations de classes multiples. Chacune de ces techniques a pour but d’effec-
tuer une généralisation des aptitudes du SVM binaire à un domaine multi classes. Les
SVM multiclasses les plus connus sont :
Les réseaux neuronaux s’inspirent du travail du cortex cérébral chez les mammifères.
Il est toutefois important de noter que ces modèles ne ressemblent pas beaucoup au fonc-
tionnement, à l’échelle et à la complexité du cerveau humain. Ils proposent une simula-
tion du fonctionnement de la cellule nerveuse à l’aide d’un automate : le neurone formel.
Ils sont constitués d’un ensemble de neurones (nœuds) connectés entre eux par des liens
qui permettent de propager les signaux de neurone à neurone.
Les réseaux neuronaux permettent de découvrir des relations complexes non-linéaires
entre un grand nombre de variables à l’aide de leur capacité d’apprentissage, sans inter-
vention externe. Pour cette raison, ils sont largement utilisés dans des divers problèmes de
19
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
Le neurone biologique
Avant de décrire le neurone artificiel, nous allons très brièvement décrire le neurone
biologique et la règle de Hebb.
Le neurone est une cellule fondamentale du système nerveux des êtres vivants. Le cer-
veau humain en contient plusieurs dizaines de milliards. En effet, le neurone est défini
comme une cellule composée d’un corps cellulaire et d’un noyau. Quant au corps cellu-
laire, il se ramifie dans le but de former ce que nous appelons les dendrites. Celles-ci sont
parfois si importantes que nous parlons alors de chevelure dendritique ou d’arborisation
dendritique. En fait, il existe un espace intercellulaire de quelques dizaines d’Angströms
(10- 9m) entre l’axone du neurone afférent et les dendrites du neurone efférent.
Ainsi, la jonction entre deux neurones est appelée la synapse (figure 1.14).
Chaque neurone reçoit alors en entrée des signaux en provenance d’autres neurones,
transmis par les dendrites jusqu’au corps cellulaire où ils s’additionnent. L’importance
de chaque signal reçu est modulée à la fois par la longueur de la dendrite lui permettant
d’atteindre le corps cellulaire et par l’efficacité de la liaison synaptique entre l’axone pré-
20
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
Le neurone artificiel
21
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
w i x i ) = σ(w T x + b)
X
y = (σ (1.8)
i
Pourtant, d’autres fonctions ont été largement utilisées, comme la fonction sigmoïde :
1
σ(x) = (1.10)
1 + e−x
En outre, de nombreux modèles de neurones formels ont été développés pour servir de
brique de base à la conception d’algorithmes d’intelligence artificielle. Les plus simples
sont des prolongements du modèle de McCulloch et Pitts [McCulloch, 1943] en rempla-
çant la fonction de Heaviside par une autre fonction non-linéaire, comme une tangente
hyperbolique ou une sigmoïde. Plus récemment, des fonctions comme le “softplus”, la
fonction linéaire rectifiée, ou le maximum ont été l’objet d’un intérêt soutenu [Glorot,
2011] .
F IGURE 1.16 – Fonctions d’activation couramment utilisées dans les réseaux de neurones
La figure 1.16 illustre les fonctions les plus utilisés. La philosophie de ces modèles
permet à identifier la valeur de sortie de ces neurones au taux de décharge d’un neurone
biologique.
22
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
Perceptron multicouches
• Architecture :
En 1958, Frank Rosenblatt propose de doter les réseaux de neurones d’une règle
d’apprentissage supervisé inspirée de l’apprentissage Hebbien, avec cela près que
l’activité post-synaptique est remplacée par l’erreur entre l’activité post-synaptique
souhaitée y et celle ŷ obtenue en sortie du réseau :
∆w i ≈ (y − ŷ)x i (1.11)
23
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
• Chaque neurone est relié uniquement à tous les neurones de la couche sui-
vante.
• Rétropropagation du gradient :
La technique de rétropropagation du gradient est considérée comme une méthode
qui consiste à déterminer l’erreur du gradient pour chaque neurone, de la dernière
couche vers la première. D’autres manière, on appelle souvent technique de rétro-
propagation du gradient, l’algorithme classique de correction des erreurs basé sur
le calcul du gradient.
Cette méthode permet de corriger les erreurs d’après l’importance des éléments
qui ont justement participé à la réalisation de ces erreurs. Les poids synaptiques
qui contribuent à engendrer une erreur importante dans des réseaux de neurones
se verront modifiés de façon plus significative que les poids qui ont engendré une
erreur petite[krose, 1993].
Dans le cas des réseaux de neurones, les poids sont aux préalables initialisés avec
des valeurs aléatoires. Ensuite on constate un ensemble de données qui va servir à
l’apprentissage. Chaque échantillon possède ses valeurs cibles qui sont celles que
le réseau de neurones doit à terme prédire si on lui présente le même échantillon.
L’algorithme se présente comme suit :
Soit un échantillon ~
x que l’on met à l’entrée du réseau de neurones et la sortie re-
cherchée pour cet échantillon ~t .
24
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
25
CHAPITRE 1. ETAT DE L’ART SUR L’APPRENTISSAGE AUTOMATIQUE
1.4 Conclusion
26
C HAPITRE 2
Apprentissage profond
Sommaire
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4.5 VGGNet(2014) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
27
CHAPITRE 2. APPRENTISSAGE PROFOND
2.1 Introduction
F IGURE 2.1 – Relation entre Intelligence artificielle, Machine Learning et Deep Learning
Le Deep Learning est fondé sur le concept des réseaux de neurones artificiels et il est
taillé pour gérer de nombreuses quantités de données en ajoutant des couches au réseau.
Un modèle d’apprentissage profond a la capacité d’extraire des caractéristiques par des
données brutes grâce aux multiples couches de traitement composé de multiples trans-
formations linéaires et non linéaires et apprendre sur ces caractéristiques petit à petit à
28
CHAPITRE 2. APPRENTISSAGE PROFOND
travers chaque couche avec une intervention humaine minime [Bengio, 2013] .
Un apprentissage profond offre trois avantages clés :
• Transfert de domaine : un modèle appris sur une tâche est applicable à d’autres
tâches connexes et les fonctionnalités apprises sont suffisamment générales pour
permettre de traiter une variété de tâches pour lesquelles des données rares sont
parfois disponibles.
F IGURE 2.2 – Différence de performance entre le Deep Learning et la plupart des algorithmes de
29
CHAPITRE 2. APPRENTISSAGE PROFOND
La phase d’apprentissage par ML est formée par deux étapes. La première etape consistent
à extraire les caractéristiques de chaque image du jeu de données. La deuxieme phase
consiste à entraîner un classifieur sur ces caractéristiques. Ces techniques d’apprentis-
sage peuvent fournir de très bons résultats, et leur performance dépend fortement de la
qualité des caractéristiques préalablement trouvées. Il existe plusieurs méthodes d’ex-
traction et de description de caractéristiques. En pratique, l’erreur de classification n’est
jamais nulle. Les résultats peuvent alors être améliorés en créant de nouvelles méthodes
d’extraction de caractéristiques, plus adaptées aux images étudiées, ou en utilisant un
"meilleur" classifieur.
L’apprentissage en profondeur nécessite souvent des centaines de milliers ou des millions
d’images pour obtenir les meilleurs résultats. Il nécessite également beaucoup de calculs
et requiert un processeur graphique hautes performances.
Les réseaux de neurones convolutifs ont une méthodologie similaire à celle des méthodes
traditionnelles d’apprentissage supervisé : ils reçoivent des images en entrée, détectent
les features de chacune d’entre elles, puis entraînent un classifieur dessus.
Cependant, les caractéristiques sont apprises automatiquement . Les CNN réalisent eux-
mêmes tout le boulot fastidieux d’extraction et description de caractéristiques : lors de la
phase d’entraînement, l’erreur de classification est minimisée afin d’optimiser les para-
mètres du classifieur eT les caractéristiques. De plus, l’architecture spécifique du réseau
permet d’extraire des caractéristiques de différentes complexités, des plus simples au
plus sophistiquées. L’extraction et la hiérarchisation automatiques des caractéristiques,
qui s’adaptent au problème donné, constituent une des forces des réseaux de neurones
30
CHAPITRE 2. APPRENTISSAGE PROFOND
convolutifs.
2.3.1 Introduction
Convolutional Neural Network (CNN) est le plus largement utilisé dans les applica-
tions de vision par ordinateur. Il a été introduit par Kunihiko Fukushima en 1980 [Fuku-
shima 1980] et amélioré par Yann et al. [Yann, 1998] en 1998. Dans Machine Learning les
CNN sont des réseaux de feedforward en plusieurs étapes pouvant être formés.
CNN est une des catégories les plus populaires de réseaux neuraux, particulièrement pour
des données hautes-dimensionnelles (par exemple, des images et des vidéos). Il fonc-
tionne dans un chemin qui est très semblable aux réseaux neuraux standard. Ils per-
mettent des avancées dans la détection et la reconnaissance d’objets, ils fournissent une
architecture optimale pour la reconnaissance d’images et modèle la détection. Combiné
avec des avances dans GPUS et le calcul parallèle, CNN est une technologie-clé étant à la
base de nouveaux développements dans la conduite automatisée et la reconnaissance fa-
ciale. Il est particulièrement utile pour trouver des modèles dans des images pour recon-
naître des objets, des visages et des scènes. Il apprend directement de données d’image,
utilisant des modèles à classifier des images et éliminant le besoin de l’extraction de ca-
ractéristique manuelle.
Les réseaux neuronaux convolutionnels sont composés de neurones qui ont des poids
et des biais apprenants. Chaque neurone reçoit quelques entrées, exécute un produit
point et le suit optionnellement avec une non-linéarité. L’ensemble du réseau exprime
encore une seule fonction de partition différentiable : des pixels d’image brute d’un bout
aux partitions de classe de l’autre. Et ils ont toujours une fonction de perte (par exemple
SVM/Softmax) sur la dernière couche (entièrement connecté).
Dans cette section nous allons tout d’abord explique l’opération de convolution, détaille
l’ architecure d’un CNN, donne quelques exemples réel existantes de CNN célèbres et
présente finalement leurs notions.
31
CHAPITRE 2. APPRENTISSAGE PROFOND
Le nom « réseau de neurones convolutif » indique que le réseau emploie une opéra-
tion mathématique appelée convolution où elle est une opération linéaire spéciale. Les
réseaux convolutifs sont simplement des réseaux de neurones qui utilisent la convolu-
tion à la place de la multiplication matricielle dans au moins une de leurs couches.
La convolution est généralement une opération sur deux fonctions d’argument réel. Dans
le but de comprendre la motivation derrière la convolution, nous commençons par des
exemples de deux fonctions f (t ) et g (t ) qu’on pourrait utiliser. L’opération de convolution
écrite sous la forme suivant :
Z +∞
s(t ) = f (t ) ∗ g (t ) = h(a)g (t − a)da (2.1)
−∞
La sommation sous l’intégrale s’effectue sur la variable a ce qui signifie que le signal alors
obtenu est une fonction de t et non pas un nombre comme c’est le cas si on effectue un
produit scalaire.
Pour déterminer un produit de convolution, il faut conserver le premier signal puis trou-
ver le symétrique du second par rapport à l’axe des ordonnées ensuite décaler ce signal
du temps t puis multiplier les deux signales obtenus et enfin intégrer le résultat.
En effet, cette opération de convolution est généralement désignée par un astérisque :
s(t ) = ( f ∗ g )t (2.2)
Habituellement, si nous travaillons avec des données sur l’ordinateur, le temps sera dis-
crétisé (numérisé), on peut définir la convolution discrète sous la forme suivant :
∞
X
s(t ) = f (a)g (t − a)da (2.3)
a=−∞
Nous utilisons finalement souvent des convolutions sur plus d’un axe à la fois. Par exemple,
lorsque nous utilisons une image bidimensionnelle f comme entrée :
XX
s(i , j ) = ( f ∗ g )(i , j ) = f (m, n)g (i − m, j − n) (2.4)
m n
Dans la terminologie d’un CNN, l’argument initial (dans cet exemple, la fonction f ) de
la convolution est souvent appelé l’entrée (input) et le deuxième argument (dans cet
exemple, la fonction f ) comme noyau (kernel). La sortie est parfois nommée feature map.
32
CHAPITRE 2. APPRENTISSAGE PROFOND
Comme nous l’avons vu dans le chapitre précédent, Neural Networks reçoit une en-
trée (un seul vecteur) et la transforme à travers une série de couches cachées. Chaque
couche cachée est composée d’un ensemble de neurones, où chaque neurone est entiè-
rement connecté à tous les neurones de la couche précédente, et où les neurones dans
une seule couche fonctionnent complètement indépendamment et ne partagent aucune
connexion. La dernière couche entièrement connectée est appelée « couche de sortie »
et, dans les paramètres de classification, elle représente les scores de classe. Ainsi que Les
réseaux neuronaux convolutionnels tirent profit du fait que l’entrée se compose d’images
et qu’elle limite l’architecture d’une manière plus sensée. En particulier, contrairement à
un réseau neuronal régulier, les couches d’un réseau ConvNet ont des neurones dispo-
sées en 3 dimensions : largeur, hauteur, profondeur. (Notez que le mot profondeur ici fait
référence à la troisième dimension d’un volume d’activation, pas à la profondeur d’un ré-
seau neural complet, qui peut se référer au nombre total de couches dans un réseau.)
Comme visualisé dans l’une des couches ( figure 2.4). Chaque couche d’un CNN trans-
forme le volume d’entrée 3D en un volume de sortie 3D d’activations neuronales. Dans
cet exemple, la couche d’entrée rouge tient l’image, donc sa largeur et sa hauteur seraient
les dimensions de l’image, et la profondeur serait de 3 (Rouge, Vert, Canaux Bleus).
Un simple CNN est une séquence de couches, et chaque couche d’un CNN transforme
un volume d’activations à un autre par une fonction différenciable. Nous utilisons trois
principaux types de couches pour construire des architectures CNN : couche convolutive,
couche de mise en commun (pooling) et couche entièrement connectée. Nous allons em-
piler ces couches pour former une architecture CNN complète (figure 2.5).
33
CHAPITRE 2. APPRENTISSAGE PROFOND
De cette façon, CNNs transforme l’image originale couche par couche des valeurs de
pixel originales aux scores de classe finaux. On note que certaines couches contiennent
des paramètres et d’autres non. En particulier, les couches CONV/FC effectuent des trans-
formations qui sont fonction non seulement des activations dans le volume d’entrée, mais
aussi des paramètres (poids et biais des neurones). En revanche, les couches RELU/POOL
implémenteront une fonction fixe. Les paramètres des couches CONV/FC seront formés
à la descente par gradient afin que les calculs de classe que CNN calcule correspondent
aux étiquettes de l’ensemble de formation pour chaque image.
Couche convolutif
La couche de convolution est le bloc de base d’un réseau convolutive qui fait la plupart
du travail de calcul lourd dans laquelle la convolutionrepérer la présence d’un ensemble
de features dans les images reçues en entrée. Pour cela, on réalise un filtrage par convo-
lution où le principe est de faire "glisser" une fenêtre représentant la feature sur l’image,
et de calculer le produit de convolution entre la feature et chaque portion de l’image ba-
layée. Une feature est alors vue comme un filtre.
La couche de convolution reçoit donc en entrée plusieurs images, et calcule la convolu-
tion de chacune d’entre elles avec chaque filtre. Les filtres correspondent exactement aux
features que l’on souhaite retrouver dans les images.
On obtient pour chaque paire (image, filtre) une carte d’activation, ou feature map, qui
nous indique où se situent les features dans l’image : plus la valeur est élevée, plus l’en-
droit correspondant dans l’image ressemble à la feature.
34
CHAPITRE 2. APPRENTISSAGE PROFOND
L’unité linéaire rectifiée (ReLU) permet un entraînement plus rapide et plus efficace
en mappant les valeurs négatives à zéro et en maintenant des valeurs positives. Cela est
parfois appelé activation, car seules les fonctionnalités activées sont reportées dans la
couche suivante.
Couche de pooling
35
CHAPITRE 2. APPRENTISSAGE PROFOND
Les neurones dans une couche entièrement connectée ont des connexions complètes
à toutes les activations dans la couche précédente, comme on le voit dans les réseaux
neuraux réguliers. Leurs activations peuvent donc être calculées avec une multiplication
matricielle suivie d’un décalage de biais. Voir la section Réseau neuronal des notes pour
plus d’information.
Les réseaux des neurones convolutifs utilisent plus d’hyperparamètres qu’un MLP
standard. Même lorsque les règles habituelles pour des constantes de régularisation et
les taux d’apprentissage s’appliquent toujours, il faut prendre en considération les no-
tions de forme de filtres, leur nombre et la forme du max pooling.
Forme de filtres
Les formes de filtre varient grandement dans la littérature. Généralement, ils sont
choisis en fonction de l’ensemble de données. Les meilleurs résultats sur les images de
MNIST (28x28) sont toujours dans la gamme de 5x5 sur la couche initiale, alors même
que les ensembles de données d’images naturelles (souvent avec des centaines de pixels
dans chaque dimension) ont tendance à utiliser de plus grands filtres de la couche initiale
de 12x12, voire 15x15. Le défi est alors de trouver le bon niveau de granularité de façon à
créer des abstractions à l’échelle appropriée et adaptée à chaque cas.
36
CHAPITRE 2. APPRENTISSAGE PROFOND
Nombre de filtres
Avant d’expliquer l’entraînement d’un réseau de neurones convolutif (chapitre 3), d’abord
il faut décrire les paramètres de la couche convolutive pour pouvoir calculer les dimen-
sions spatiales de sortie de chaque couche.
On note :
• F : La dimension du filtre.
• s : Le stride où le pas.
N−F
out put = +1 (2.5)
s
Comme exemple d’image d’entrée est de dimension N = 7 et nous supposons que un
noyau (filtre) de taille F = 3. Lorsqu’ on utilise un pas s = 1 nous aurons une image de
sortie.
out put = 7−3
1
+1 = 5
Donc l’image en sortie sera de dimension 5x5.
Pour être tout à fait complet sur comment calculer les dimensions spatiales des sorties,
prenons l’exemple de la figure 22 mais avec s = 3. D’après la formule 2.5 :
out put = 7−3
3
+ 1 = 2.33
37
CHAPITRE 2. APPRENTISSAGE PROFOND
Nous obtenons une image en sortie de dimension 2.33x2.33 (n’est pas possible).
Généralement dans le terme pratique on applique ce qu’on nommer un Zero pad p aux
bordures des entrées. La formule suivante pour déterminer le Zero pad :
F−1
p= (2.6)
2
C’est à dire nous ajouterons des pixels d’intensité nulle sur tout le long de la bordure de
l’image sur un seul niveau. La nouvelle dimension de l’image sera de 9x9.
Ensuite nous allons pouvoir déterminer le volume des sorties de même que le nombre de
paramètres par couche convolutive.
Nous prenons par exemple une image en entrée de dimension 32x32x3 (3pour le canal
RGB). On décide d’appliquer une couche convolutive avec :
• de dimension F = 5.
• un stride s = 1.
• 1pour le biais,
38
CHAPITRE 2. APPRENTISSAGE PROFOND
Les premières applications réussies des réseaux convolutionnels ont été développées
par Yann LeCun en 1990. Parmi celles-ci, la plus connue est l’architecture LeNet [LeCun,
1998] qui a été utilisée pour lire des codes postaux, des chiffres, etc.
AlexNet [Krizhevsky, 2012] est le premier travail qui a popularisé les réseaux convolu-
tifs dans la vision par ordinateur, développé par Alex Krizhevsky, Il ya Sutskever et Geoff
Hinton. Il a été soumis au défi ImageNet ILSVRC [Zeiler, 2014] en 2012 et a clairement sur-
passé ses concurrents. Le réseau avait une architecture très similaire à LeNet, par contre
était plus grand, plus profond et comportait des couches convolutives empilées les unes
sur les autres (précédemment, il était commun de ne disposer que d’une seule couche
convolutifs habituellement suivie d’une couche de pooling).
39
CHAPITRE 2. APPRENTISSAGE PROFOND
Le finaliste d’ILSVRC 2013 était aussi un réseau convolutive de Matthew Zeiler et Rob
Fergus. Il est devenu sous le nom de ZFNet (abréviation de Zeiler et Fergus Net) [Russa-
kovsky, 2015] . C’était une amélioration de AlexNet en améliorant les hyper-paramètres
de l’architecture, particulièrement en élargissant la taille des couches convolutifs et en
diminuant la taille du noyau sur la couche initial.
40
CHAPITRE 2. APPRENTISSAGE PROFOND
2.4.5 VGGNet(2014)
Le vainqueur de ILSVRC 2014 est appelé VGGNet [Zhang, 2016] par la communauté et
a été développé par Simonyan et Zisserman. VGGNet se compose de 16 couches convo-
lutifs et est attrayant en raison de son architecture très uniforme. Semblable à AlexNet,
uniquement 3x3 convolutions, par contre plusieurs de filtres. . Aujourd’hui, c’est le choix
le plus préféré dans la communauté pour extraire des images. La configuration de poids
du VGGNet est accessible au public et a été utilisée dans de plusieurs autres applications
et défis comme un extracteur de fonctionnalité de base. Mais, VGGNet se compose de 138
millions de paramètres, ce qui peut être un peu difficile à gérer.
VGG utilisait de grandes tailles de fonctionnalités dans de plusieurs couches et alors l’in-
férence était assez coûteuse à la course-temps. Réduire le nombre de fonctions, comme
dans les goulets d’encombrement, permettra d’économiser une partie du coût des cal-
culs.
41
CHAPITRE 2. APPRENTISSAGE PROFOND
Enfin, à l’ILSVRC 2015, Residual network développé par Kaiming He et al. a été le ga-
gnant [Zhang, 2016]. Il a introduit une architecture inédite avec des « connexions sauts » et
une forte utilisation de la batch normalisation. Il utilise egalement le global AVG pooling
au lieu du PMC à la fin.
Python
42
CHAPITRE 2. APPRENTISSAGE PROFOND
R est le langage que les scientifiques de données aiment. Cependant, d’autres pro-
grammeurs trouvent R un peu confus quand ils le rencontrent pour la première fois, en
raison de son approche centrée sur les données. Pour un groupe dédié de développeurs
R, il peut être judicieux d’utiliser les intégrations avec TensorFlow, Keras ou H2O pour la
recherche, le prototypage et l’expérimentation.
MATLAB
MATLAB rend les parties difficiles de l’apprentissage automatique faciles avec des ap-
plications « pointer-cliquer » pour former et comparer des modèles, des techniques avan-
cées de traitement du signal et d’extraction de caractéristiques, sélection des fonctionna-
lités pour optimiser les performances d’un modèle, la possibilité d’utiliser le même code
pour étendre le traitement aux big data et aux clusters, etc.
Les algorithmes d’apprentissage automatique eux-mêmes sont des constructions théo-
riques complètement indépendantes du langage dans lequel nous les implémentons. Dans
la pratique, certains langages de programmations sont certainement plus appropriés que
d’autres pour l’apprentissage automatique (par exemple, PHP, JavaScript ou C me semblent,
pour diverses raisons, de mauvais choix), mais Python, Matlab et R sont certainement des
options raisonnables. Nous aurons tendance à préférer Python, plus utilisé en deep lear-
ning (et avec les outils techiques adaptés), plus propre en tant que langage de program-
mation et globalement plus populaire et développé à l’heure actuelle.
43
CHAPITRE 2. APPRENTISSAGE PROFOND
tuelles (TensorFlow, PyTorch, Chainer, Apache MXNet, Theano, etc.) sont effectivement
des projets Python. En effet, la communauté Python travaille d’arrache-pied pour rendre
l’utilisabilité du langage très flexible avec des bibliothèques bien fournies.
Nous détaillons dans cette partie une liste non exhaustive de quelques bibliothèques.
Theano
Theano est une bibliothèque Python crier par Frédéric Bastien et l’équipe de recherche,
le laboratoire de l’Université de Montréal, MILA qui nous permet de définir, d’optimiser et
d’évaluer efficacement les expressions mathématiques impliquant des tableaux multidi-
mensionnels. Il peut utiliser des GPU et effectuer une différenciation symbolique efficace.
TensorFlow
TensorFlow est une bibliothèque de logiciels open source développée par l’équipe
Google Brain au sein de l’organisation d’intelligence artificielle de Google pour le calcul
numérique haute performance. Elle implémente des méthodes d’apprentissage automa-
tique basées sur le principe des réseaux de neurones profonds (deep learning). Nous pou-
vons l’exploiter directement dans un programme rédigé en Python. En outre, son archi-
tecture flexible permet un déploiement aisé des calculs sur diverses plates-formes (pro-
cesseurs, GPU, TPU).
Keras
Keras est une librairie Python, capable de s’exécuter sur plusieurs librairies de ma-
chine learning comme TensorFlow, CNTK ou Theano. Il a été développé pour permettre
une expérimentation rapide. En outre, il permet un prototypage simple et rapide (modu-
larité, convivialité, et extensibilité) et prend en charge les réseaux convolutionnels et les
réseaux récurrents, ainsi que leurs combinaisons.
PyTorch
PyTorch est une bibliothèque logicielle Python open source machine d’apprentissage
qui soutenu par l’équipe de recherche en intelligence artificielle de Facebook. Il permet le
traitement des entrées et des sorties de longueur variable (dynamic computation graphs),
ce qui est utile si on travaille avec des Recurrent Neural Network (RNN). Une caractéris-
44
CHAPITRE 2. APPRENTISSAGE PROFOND
TensorFlow Supporté par Google. Le soutien des RNN est encore surclassé
Le support du multi-GPU. par Theano.
Une très grande communauté. Plus lent que les autres bibliothèques dans de
plusieurs benchmarks.
Keras Le backend par excellence Moins flexible que les autres API.
pour Theano ouTensorFlow.
Interface haut niveau, intuitive.
PyTorch Soutenu par Facebook. Beaucoup moins mûr que ses concurrents.
Mélange d’API de haut niveau Ressources/ Références ressources
et de bas niveau. limitées en dehors de la documentation
Support des graphes dynamiques. officielle.
Il semblerait que c’est le meilleur
outil pour les chercheurs.
Autres frameworks
45
CHAPITRE 2. APPRENTISSAGE PROFOND
2.7 Conclusion
Dans cette partie, nous avons vu qu’est-ce que le Deep Learning et comment il se
différencie des algorithmes de ML traditionnelles et on a donné quelques méthodes utili-
sées par la communauté du Deep Learning et nous avons expliqué le principe de chacun.
Nous avons aussi parlé d’une vision générale des réseaux convolutifs, et on a présenté
également les outils d’apprentissage tel que le software et le hardware.
46
C HAPITRE 3
Sommaire
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
47
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
3.1 Introduction
Nous allons préciser dans la troisième partie de ce mémoire les différentes approches
à utiliser pour achever chaque phase de notre application. Ce chapitre est consacré pour
donner une description détaillée de notre système proposé pour la détection et la recon-
naissance des panneaux routiers par apprentissage en profondeur à l’aide des modèles de
réseaux convolutifs. Cependant, notre application fait partie du domaine de la vision par
ordinateur, elle engendre les phases primordiales et communes pour tous les systèmes de
détection des panneaux de signalisation, chaque phase a sa propre approche que nous al-
lons introduire tout au long de ce chapitre.
Nous commençons ce chapitre avec un état de l’art spécifique à la reconnaissance de pan-
neaux routiers. Ensuite, nous présentons une vue générale de notre base de données et
nous nous proposons notre système de détection et reconnaissance des panneaux de si-
gnalisation basé sur le réseau LeNet-5 et le réseau VGG-Net. La dernière partie sera consa-
cré à la description de notre idée d’améliorer le model LeNet-5.
Ces dernières années la détection des panneaux routiers a attiré l’attention considé-
rable de recherches due à sa nature provocante comme problème de vision d’ordinateur.
Alors, il existe divers systèmes de signalisation routière utilisée dans le monde. Ces sys-
tèmes sont établis sur la base de principes généraux et ont les mêmes objectifs.
Cela se traduit par des normes internationales. Il existe des variations propres à chaque
pays à l’intérieur d’un système. Pourtant elles ne sont pas fondamentales dans la mesure
où les formes et les couleurs de base employées sont les mêmes.
Les panneaux de signalisation de la route ont été conçus pour être principalement
distinguables des contextes naturels et/ou artificiels. Ils sont caractérisés par plusieurs
caractéristiques les rendent reconnaissables en ce qui concerne l’environnement. Les
panneaux routiers sont conçus, fabriqués et installés selon des règlements serrés. Ils sont
conçus en formes 2D fixes comme des triangles, des cercles, des octogones, ou des rec-
tangles. Les couleurs des signes sont choisies pour être loin de l’environnement, qui les
48
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
49
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
En raison de l’environnement complexe des routes et des scènes qui les entourent, les
panneaux de signalisation peuvent se trouver dans différentes conditions, comme illustré
à la figure 3.2. Par conséquent, la détection et la reconnaissance de ces panneaux peuvent
être confrontées à l’une ou plusieurs des difficultés suivantes.
La visibilité des panneaux de signalisation est affectée par les conditions climatiques telles
que les nuages, le brouillard, la pluie et la neige, ainsi que d’autres paramètres tels que les
variations locales de la lumière, comme la direction de la lumière, l’intensité de la lumière
en fonction de l’heure du jour et de la saison, ainsi que les ombres générées par d’autres
objets [Vitabile, 2002] . La couleur de l’enseigne s’estompe avec le temps en raison de la
longue exposition au soleil et de la réaction de la peinture avec les polluants en suspen-
sion dans l’air [Miura, 2000] .
La visibilité des panneaux peut être affectée aussi par la présence d’obstacles dans la
scène, tels que des arbres, des bâtiments, des véhicules et des piétons [Vitabile, 2001].
La présence d’objets de couleur et / ou de formes similaires aux panneaux de signalisa-
tion de la scène considérée, tels que des bâtiments ou des véhicules. Ils pourraient res-
sembler au panneau de signalisation par leur couleur, leur forme ou même les deux. Les
50
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
• La mauvaise qualité des images disponibles à cause d’une basse résolution, de va-
riations d’illumination ou de mauvaises conditions météorologiques,
• Les contraintes en mémoire et capacités de calcul imposées dans les systèmes em-
barqués,
• Les variations en taille, type et couleur de panneaux entre les différents pays.
Les méthodes basées sur les couleurs sont couramment utilisées car généralement les
panneaux de signalisation sont jaunes, rouges et bleus. Vu que ces méthodes sont sen-
sibles aux modifications de l’éclairage, plusieurs espaces colorimétriques sont souvent
51
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
52
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
sification
Ensuite, nous allons utiliser Anaconda environnement pour ajouter par exemble la
bibliothèque pandas (figure 3.4). Cette étape sera répétée à chaque fois qu’on a besoin de
l’une des bibliothèques .
53
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
deux couches entièrement connectées et enfin d’un classifieur softmax. Cette architec-
ture est illustré dans la figure 3.5.
Dans un réseau de neurones convolutionnels, une couche est composée de trois étapes :
la convolution, l’application d’une fonction d’activation et enfin le pooling. Le résultat de
ces trois étapes est appelé une "feature map".
En effet lors de la convolution, l’image résultante de cette convolution est la somme de
K (l −1) convolutions, avec K (l −1) le nombre de sorties de la couchel − 1 ,sa fonction de
convolution et est définie comme :
i = K (l −1)
σ(lk ) = P (3.1)
x (l ) ∗ w (l ) + b (l )
i =1 k,i k,i k
s kl = f (σ(lk ) ), (3.2)
54
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
• Couche initiale C1 :
La première couche est considèrée comme une couche de convolution dans la-
quelle une image en niveaux de gris de taille 32 x32 qui traverse cette couche avec
6 cartes de caractéristiques ou filtres ayant une taille de 5x5 et un stride s = 1. La
sortie de cette couche initiale sera réduite à 28x28x6 et le nombre de paramètre en
sortie est égale à 122304.
• Couche de Pooling S2 :
Ensuite, il existe une couche de Pooling, elle est définie comme une couche de re-
groupement ou une couche de sous-échantillonnage avec une taille de filtre 2x2 et
un nombre de stride s = 2. Les dimensions de l’image de sortie résultante seront
réduites à 14x14x6.
55
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
• Couche de convolution C3 :
La troisième couche est une deuxième couche de convolution avec 16 cartes de ca-
ractéristiques de taille 5x5 et un pas de 1. Dans cette couche, on a seulement 10
cartes de caractéristiques sur 16 sont connectées à 6 cartes de caractéristiques de
la couche précédente. La raison principale est de briser la symétrie du réseau et de
maintenir le nombre de connexions dans des limites raisonnables. C’est pourquoi
le nombre de paramètres d’entraînement dans cette couche est de 1516 au lieu de
2400 et de la même manière, le nombre de connexions est de 151600 au lieu de
240000.
• Couche de Pooling S4 :
Par la suite, le LeNet-5 applique une nouvelle couche de regroupement avec un filtre
2x2 et un nombre de stride s = 2. Cette couche est identique à la deuxième couche
56
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
57
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
• Couche de sortie :
Enfin, LeNet-5 applique une couche de sortie softmax entièrement connectée pro-
duisant 43 résultats (le nombre total d’étiquettes possibles) calculés à l’aide de la
fonction d’activation SoftMax.
Cette fonction est utilisée pour produire une distribution de probabilité entre les
différentes classes (chaque classe aura une valeur réelle comprise dans l’intervalle
[0, 1]) qui est définie comme une généralisation de la fonction logistique.
p1
..
p =
.
(3.4)
pn
Où
ezi
p i (z) = Pn zj
(3.5)
j =1 e
58
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
FC - 120 - - Tanh
FC - 84 - - Tanh
FC - 43 - - Softmax
L’organigramme représenté par la figure 3.13 illustre les étapes nécessaire pour implé-
menter notre application. Les principales étapes sont :
59
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
• L’ensemble de test est constitué des images sur lesquels sera appliqué le modèle
d’apprentissage dans le but de tester et corriger l’algorithme.
60
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
Étant donné que ce projet considère qu’une formation peut commencer à partir d’un mo-
dèle de réseau conventionnelle pour classifier les panneaux de signalisation à l’aide du
base de données de panneaux de signalisation allemand [GTSRB], cette base de données
est divisé en ensembles d’entraînements, de tests et de validation, ont été stockés dans
des fichiers CSV. Ces images ont les caractéristiques suivantes :
En utilisant le language python, on peut lire ces images et afficher ses caractéristiques
comme montre la figure 3.14.
61
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
La figure 3.15 présente un échantillon des images de l’ensemble de données, avec des
étiquettes affichées au-dessus de la rangée d’images correspondantes.
Il y a aussi un déséquilibre important entre les classes de l’ensemble de formation, comme
le montre l’histogramme ci-dessous (figure 3.16). Certaines classes ont moins de 200 images,
tandis que d’autres ont plus de 2000. Cela signifie que notre modèle pourrait être biaisé
vers des classes surreprésentées, surtout lorsqu’il est incertain dans ses prévisions.
62
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
F IGURE 3.17 – Exemples d’images de l’ensemble d’apprentissage en niveaux de gris, avec éti-
quettes ci-dessus
• Normalisation de l’image :
La technique de normalisation aide notre modèle à traiter les images d’une manière
uniforme. Chaque pixels d’image aura une valeur comprise entre 0 et 1, en utilisant
la transformation décrite par l’équation suivante :
Img
Img normalisé = . (3.6)
255
Une technique dite ‘’Image shuffling ‘’ sera utilisée pour changer l’ordre des images
dans le but de diminuer le risque d’avoir un phénomène de sur-apprentissage et par
conséquent, notre modèle sera plus capable à généraliser la décision.
63
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
Pour l’apprentissage de notre modèle sur les images RGB, les hyper paramètres de réseaux
LeNet-5 ont été initialisés comme suit :
• Epochs : 50,
• mu : 0,
• sigma : 0.1.
Une réalisation de plusieurs test en adoptant d’autres valeurs est nécessaire pour amélio-
rer la précision du model. Le tableau 3.2 illustre les résultats que nous avons obtenus.
Epochs 50 50 60 20 100 50 50 50
Validation Accuracy 0.933 0.923 0.943 0.922 0.937 0.941 0.918 0.933
Test Accuracy 0.925 0.918 0.929 0.909 0.939 0.924 0.915 0.927
En variant les hyper paramètres, on remarque bien que ces derniers influent sur la
précision du model. La meilleure précision est obtenue en adoptant ces valeurs :
• Epochs : 60,
• mu : 0,
• sigma : 0.1.
64
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
Les machines d’apprentissages sont confrontées à plusieurs problèmes, citons par exemple
le problème de sur apprentissage. Pour cela, nous allons étudier l’influence de ce para-
mètre de régulation dite dropout. Ce facteur de Dropout se réfère à la suppression aléa-
toire et temporaire d’une unité, soit dans une couche cachée ou visible, et toutes ses
connexions entrantes et sortantes.
Pour ajouter cette technique, nous avons recours à la commande tf.nn.dropout(x, keep-
prob=0.5), puis nous avons répété la phase d’apprentissage avec plusieurs valeurs de dro-
pout. Le tableau 3.3 ci-dessous présente les résultats que nous avons trouvés.
Epochs 60 60 60 60
65
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
TABLEAU 3.4 – Variation des hyper paramètres du model LeNet-5 avec des images en niveau de gris
Epochs 60 60 60 60 60 40 100
66
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
Les états d’éclairage est aussi un problème très difficile à limiter et à réglementer. La force
de la lumière dépend du moment de la journée et de la saison.
Pour cela nous avons redimensionné en 32x32 puis testé cet ensemble des images des
panneaux de mauvaises conditions (fané, mal-lumineux, inclinés et groupés. . . ) comme
montre la figure 3.20.
Malgré que ces images dans une mauvaises forme mais l’algorithme d’apprentissage
et de classification a classé correctement ces images.
Dans le but d’améliorer le taux de classification des images RGB, nous avons propo-
sée une nouvelle architecture qui est compose de deux couches de convolution et de cinq
couches d’entièrement connecté (fully connected) comme montre la figure 3.21.
67
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
L’image en entrée de taille 32×32x3 est d’abord filtré par une première couche de convo-
lution. Cette couche est composée de 10 filtres de taille 5x5. Les images filtrées passent
ensuite à travers une couche de pooling de taille 14x14x10 par la suite et encore une fois
une deuxième couche convolutive de 25 filtre de taille 5 et une couche de pooling 5x5x25.
Les connectiques obtenus est égale à 625.
FC - 525 - - Tanh
FC - 350 - - Tanh
FC - 200 - - Tanh
FC - 80 - - Tanh
FC - 43 - - Softmax
68
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
D’aprés le tableau 3.6, on constate que notre algorithme devient plus performant. En
effet, la précision sur les données de validation atteigne 99.5% et elle est égale à 94% sur les
données de test après 30 epochs. Par conséquence, le nombre total d’itérations démunies
puisque il est définit comme suit :
base de donnés
Nombre d’itération par epochs = . (3.7)
batchs size
On remarque qu’en adoptant notre modèle LeNet-5 amélioré, nous avons obtenu un
taux de classification très performante sur les données de validation et un taux de clas-
sification acceptable sur les données de test. Notre but dans le paragraphe suivant est
d’adopter une autre solution dans la raison d’améliore la précision sur les données de
test. Nous allons utiliser le modèle de Les réseaux de neurones convolutifs (CNN) appelé
VGG-Net.
69
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
VGG-16 est l’une des versions les plus classiques, comme le montre la figure 3.22,
conv1 et conv2, chacune contenant deux couches convolutives ; conv3, conv4 et conv5,
chacune contient 3 couches convolutives ; fc1, fc2 et fc3, chacun contient une couche
entièrement connectée ; le dernier est le calque de classification des caractéristiques de
l’image, qui compte 16 couches au total. Bien que l’effet VGG-16 soit meilleur, la conver-
gence est plus rapide, mais elle a aussi quelques inconvénients. Avec l’approfondissement
du niveau du modèle, les paramètres d’entraînement deviennent de plus en plus com-
plexes, cela prendra beaucoup de temps, ce que nous faisons est de résoudre ces pro-
blèmes.
L’architecture VGG-Net d’origine comporte de 16 à 19 couches, mais nous avons implé-
menté une version modifiée de seulement 12 couches pour économiser les ressources de
calcul.
70
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
L’organigramme représenté par la figure 3.23 illustre les étapes nécessaire pour ce
ConvNet :
FC - 128 - - Tanh
FC - 128 - - Tanh
FC - 43 - - Softmax
71
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
Nous avons pu atteindre un taux de reconnaissance très élevé. En effet le taux de valida-
tion atteint une valeur de 99.3% et la précision de test atteint une valeur de 97.6% après
un nombre réduit des époques. Nous pouvons observer que les modèles saturent après
10 époques, ce qui nous permet d’économiser les ressources de calcul et de réduire le
nombre d’itérations et par conséquence le temps de calcule.
Dans cette partie, Nous comparons nos résultats de la reconnaissance obtenus avec
l’approche «Deep learning » avec des résultats obtenus dans [Zaklouta, 2011] qui utilise
un algorithme d’apprentissage classique tel que SVM (Support Vector Machine).
72
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
3.8 Conclusion
73
CHAPITRE 3. RECONNAISSANCE DES SIGNES DE CIRCULATION PAR
APPRENTISSAGE PROFOND
74
Conclusion générale
La conduite assistée par ordinateur a pour objectif d’aider le conducteur à prendre les
bonnes décisions dans des circonstances difficiles (mauvaise vision, fatigue) pour mieux
pouvoir contrôler son véhicule et augmenter sa sécurité et la sécurité des autres conduc-
teurs. La vision artificielle constitue une approche prometteuse pour aborder le problème
susmentionné. Ce dans ce cadre s’intègre notre projet de master.
Le but de ce travail est de développer une méthode de détection et de reconnaissance de
panneaux routiers qui se base sur la vision par ordinateur. L’approche adoptée dans ce
travail est l’apprentissage en profondeur en se basant sur les réseaux de neurones convo-
lutionnels (CNN).
Dans le premier chapitre, nous avons effectué un état d’art sur les différentes méthodes
de classification qui exploitent les machines d’apprentissage automatique.
Dans le deuxième chapitre, nous avons expliqué l’approche « deep learning ». Nous avons,
également, présenté les modèles réelle utilisés dans la littérature. Ces modèles se basent
sur les CNNs.
Dans le troisième chapitre, nous avons détaillé les étapes et les outils que nous avons ex-
ploité pour développer notre système de détection et de reconnaisse des panneaux rou-
tiers.
Le model LeNet-5, developpé par Yann LeCun en 1998 et le model VGG-Net,developpé par
Krizhevsky, Sutskever et Hinton en 2012 sont également utilisés et améliorés. Des tests
effectués sur un ensemble d’images réelles du trafic routier montrent les performances
du notre approche adoptée. Notre model amélioré atteint une précision de 99.5% pour
LeNet-5 et 99.3% pour VGG-Net dans la classification des données de tests de la base de
donnée GTSRB disponible en ligne.
Comme perspectives, la puissance de calcul actuelle permet de construire et estimer de
très grands réseaux de neurones profonds jusqu’à des centaines de milliards paramètres.
La quantité de données d’apprentissage est cruciale pour estimer de tels réseaux. L’aug-
mentation de données est fondamentalement importante pour améliorer les performances
des réseaux, elle consiste à augmenter artificiellement la taille de la base de données
d’apprentissage en ajoutant des nouveaux exemples crées à partir de déformations des
exemples initiaux. L’objectif est que le réseau apprenne des descripteurs spécifiques aux
classes d’objets considérées plutôt que des artefacts d’images comme des différences
75
d’illuminations.
L’augmentation des données est une stratégie courante pour augmenter davantage la
taille de l’ensemble de formation et parvenir à une généralisation de modèle plus éle-
vée. Il consiste à créer de nouveaux exemples de formation synthétiques à partir de ceux
déjà disponibles, en appliquant des transformations préservant les étiquettes (aléatoires).
Dans notre cas, les transformations (aléatoires) sont échantillonnées à partir de tech-
niques standard d’augmentation de données (rotation à 90 degrés, retournement vertical
/ horizontal et transposition).
76
Bibliographie
[Alelyani, 2013] : Alelyani, Salem, Tang, Jiliang, and Liu, Huan. Feature selection for
clustering : A review. Data Clustering : Algorithms and Applications, 2013.
[Aly, 2004] : F.A. Aly and A.E. Alaa. Detection, categorization and recognition of road
signs for autonomous navigation. In Proceeding of Advanced Concepts for Intelligent Vi-
sion System, Brussels, Belgium, Aug 2004.
[Basu, 2006] : Basu S., Bilenko M., Mooney R. J., « A probabilistic framework for semi-
supervised clustering », Proceedings of the tenth ACM SIGKDD international conference
on Knowledge discovery and data mining, ACM, p. 59-68, 2004.
[BORGI, 2011] : BORGI A., AKDAG H. Supervised Learning and Approximate. 2001.
[Burges, 1998] : Burges, C. J. (1998). A tutorial on support vector machines for pattern
recognition, data mining and knowledge discovery. In vol 2, pp121–167.
[Chan, 1998] : P. K. Chan and S. J. Stolfo, “Toward scalable learning with non-uniform
class and cost distributions : A case study in credit card fraud detection.,” in KDD, vol.
1998, pp. 164–168, 1998.
77
[Chierchia, 2017] :Giovanni Chierchia, Afef Cherni, Emilie Chouzenoux, Jean-Christophe
Pesquet. Approche de Douglas Rachford aléatoire par blocs appliquée à la régression lo-
gistique parcimonieuse. GRETSI 2017, Sep 2017, Juan les Pins, France. pp.1-4, 2017, Actes
du 26e colloque GRETSI. <hal-01634525>
[Escalera 1997] : A. De La Escalera, L.E. Moreno, M.A. Salichs, J.M. Armingol, Road
traffic sign detection and classification, IEEE Trans. Ind. Electron. 44 (6) (1997) 848–859.
[llavata, 2004] : J. llavata, R. Ewerth, and B. Freisleben, “Text detection in images based
on unsupervised classification of high-frequency wavelet coefficients”, Pattern Recogni-
tion, 2004. ICPR 2004 . . . 1167 –1171.
[Kukar, 2001] : Kukar M., Estimating the reliability of classifications and cost sensitive
combining of different machine learning methods, PhD Thesis (in Slovene), University of
Ljubljana, Faculty of Computer and Information Science, Ljubljana, Slovenia, 2001.
[krose, 1993] : B Krose, P van der Smagt, P Smagt - 1993 - An introduction to neural
networks.
78
[Li, 2000] : H. Li, D. Doermann and 0. Kia, “Automatic text detection and tracking in
digital video”, IEEE ’Ikans. on Image Processing, Vol9, No 1, 2000, pp147- 156.
[Loy, 2004] : G. Loy, N. Barnes, Fast shape-based road sign detection for adriver assis-
tance system, in : 2004 Proceedings of IEEE/RSJ International Conference on In- telligent
Robots and Systems (IROS 2004), vol. 1, IEEE, Sendai, Japan, 2004, pp. 70–75.
[Malfante, 2017] : Marielle Malfante, Mauro Dalla Mura, Baptiste Boullay, Jean-Philippe
Métaxian, Jerome Mars. Apprentissage statistique : classification automatique de signaux
volcano-sismiques. XXVIème colloque GRETSI (GRETSI 2017), Sep 2017, Juan-Les-Pins,
France. 2017 - GRETSI - Actes de Colloque, 2017, Proceeding Actes de la conférence Gretsi
2017. <hal-01583748>
[Miura, 2000] : J. Miura, T. Kanda, and Y. Shirai, "An active vision system for real-time
traffic sign recognition," presented at 2000 IEEE Intelligent Transportation Systems, Dear-
born, MI, USA, 2000.
[Nguyen, 1990] : D. Nguyen et B. Widrow. Improving the learning speed of 2-layer neu-
ral networks by choosing initial values of the adaptive weights. Dans International Joint
Conference on Neural Networks, pages 21–26 vol.3, June 1990.
[Paclik, 2000] : P. Paclik and J. Novovicova, "Road sign classification without color in-
formation," presented at Sixth Annual Conf. of the Advanced School for Computing and
79
Imaging, Lommel, Belgium, 2000.
[Ruta, 2010] : A. Ruta, Y. Li, X. Liu, Real-time traffic sign recognition from video by
class- specific discriminative features, Pattern Recognit. 43 (1) (2010) 416–430.
[Sun 2014] : Z.-L. Sun, H. Wang, W.-S. Lau, G. Seet, D. Wang, Application of bw-elm
model on traffic sign recognition, Neurocomputing 128 (2014) 153–159.
[Vapnik, 1995] : v.vapnik 1995 : The Nature of Statistical Learning Theory. Springer-
Verlag, New York,USA , 1995.
[Vapnik, 1998] : Vapnik, V. (1998). Statistical learning theory. In Wiley, New York.
[Viola, 2001] : P. Viola and M.J Jones “Robust real-time object detection,” IEEE ICCV
Workshop on statistical and Computational Theories of Vision. Vancouver, Canada. July
13,2001
[Vitabile, 2002] : S. Vitabile, A. Gentile, and F. Sorbello, "A neural network based auto-
matic road sign recognizer," presented at The 2002 Inter. Joint Conf. on Neural Networks,
Honolulu, HI, USA, 2002.
[Vitabile, 2001] : S. Vitabile, G. Pollaccia, G. Pilato, and F. Sorbello, "Road sign Recog-
nition using a dynamic pixel aggregation technique in the HSV color space," presented at
11th Inter. Conf. Image Analysis and Processing, Palermo, Italy, 2001.
[Zaklouta. 2011] : Fatin Zaklouta. Multiclass object recognition for driving assistance
systems and video surveillance. Automatic. École Nationale Supérieure des Minesde Pa-
80
ris,2011. English. <NNT :2011ENMP0045>. <pastel-00657727>
[Zhao, 2016] : Wenzhi Zhao and Shihong Du ‘’Spectral–Spatial Feature Extraction for
Hyperspectral Image Classification : A Dimension Reduction and Deep Learning Approa-
ch” IEEE Transactions on Geoscience and Remote . . . , 2016.
[Zhang, 2016] : K. He, X. Zhang, S. Ren, and J. Sun, “Deep residual learning for image
recognition,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Re-
cognition, pp. 770–778, 2016.
[Zidi, 2007] : Zidi, S. (juillet 2007). SARR : Syst‘eme d’aide A la Régulation et la Recon-
figuration des Réseaux de transport multimodal. PhD thesis, Université des Sciences et
technologies de Lille.
[Zhang, 2016] : K. He, X. Zhang, S. Ren, and J. Sun, “Deep residual learning for image
recognition,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Re-
cognition, pp. 770–778, 2016.
[Zeiler, 2014] : M. D. Zeiler and R. Fergus, “Visualizing and understanding convolutio-
nal networks,” in European conference on computer vision, pp. 818–833, Springer, 2014.
[Z hou, 2016] : Y. Z hou, X. Bai, W. Liu, L. Latecki, Similarity fusion for visual tracking,
Int. J. Comput. Vis. (2016) 1–27, http ://dx.doi.org/10.1007/s11263-015-0879-9.
81