Chapitre I
Chapitre I
Chapitre I
I. Introduction
La sécurité routière a pour objectif de réduire les risques qu’un accident de la route ne
survienne en faisant évoluer les règles et les obligations associées aux conducteurs, aux
véhicules et aux aménagements des voies afin de réduire les risques que les accidents de la
route ne se produisent. Les solutions intelligentes et automatisées de contrôle de la circulation
sont utilisées de manière omniprésente, pour la détection de violation de feu de signalisation,
la détection de violation de vitesse, pour la détection de violation de ceinture de sécurité etc.
Pour commencer il nous faut tout d’abord définir les notions importantes liées à l’application
du l’apprentissage profond « Deep Learning » sur la détection des plaques d’immatriculation
des véhicules qui grillent le feu de signalisation.
Revoir sa position
Dans ce chapitre, nous allons présenter une généralité sur la détection d’objet dans une image,
un bref aperçu sur les concepts relatifs au deep Learning et aux réseaux de neurones, ainsi
qu’une introduction aux systèmes de détection des plaques d’immatriculation, la
reconnaissance des formes et suivi d’une conclusion.
L'approche générale pour détecter un objet dans une image (sans connaissance a priori sur les
conditions de prise de vue) consiste en trois étapes :
La figure ci-dessus montre la structure d’un neurone artificiel qui est composé de :
Entrées : Un neurone artificiel reçoit généralement plusieurs valeurs d’entrée x. Ces entrées
peuvent provenir de données externes ou des sorties d’autres neurones dans le réseau.
Poids : Les entrées x sont multipliées par les poids w, ils représentent les paramètres
internes du perceptron.
Somme : Toutes les multiplications sont sommées avec ajout d’un biais.
Activation : La somme pondérée passe ensuite à travers une fonction d’activation pour
produire la sortie du neurone
Un réseau de neurones est un assemblage de neurones connectés entre eux qui permet de
résoudre de nombreux problèmes d'intelligence artificielle.
• Les neurones sont organisés en couches successives : chaque neurone reçoit une information
(une entrée) issue des neurones de la couche qui précède.
• Chacune de ces informations est pondérée : elle est multipliée par une valeur qui lui confère
un "poids" w particulier.
• Elles sont traitées par une fonction objective dont le but est d'adapter la valeur de sortie à
une plage de valeurs.
• La valeur de sortie issue de cette fonction constitue l'entrée de l'ensemble des neurones de la
couche suivante.[34]
c. Apprentissage d’un réseau de neurone
L'apprentissage est une phase du développement d'un réseau de neurones durant laquelle le
comportement du réseau est modifié jusqu'à l'obtention du comportement désiré.
L'apprentissage neuronal fait appel à des exemples de comportement.
Dans le cas des réseaux de neurones artificiels, on ajoute souvent à la description du modèle
l'algorithme d'apprentissage. Le modèle sans apprentissage présente en effet peu d'intérêt.
Dans la majorité des algorithmes actuels, les variables modifiées pendant l'apprentissage sont
les poids des connexions. L'apprentissage est la modification des poids du réseau dans
l'optique d'accorder la réponse du réseau aux exemples et à l'expérience. Il est souvent
impossible de décider à priori des valeurs des poids des connexions d'un réseau pour une
application donnée. A l'issu de l'apprentissage, les poids sont fixés : c'est alors la phase
d'utilisation. Certains modèles de réseaux sont improprement dénommés à apprentissage
permanent. Dans ce cas il est vrai que l'apprentissage ne s'arrête jamais, cependant on peut
toujours distinguer une phase d'apprentissage (en fait de remise à jour du comportement) et
une phase d'utilisation. Cette technique permet de conserver au réseau un comportement
adapté malgré les fluctuations dans les données d'entrées. [37]
Au niveau des algorithmes d'apprentissage, il a été défini deux grandes classes selon que
l'apprentissage est dit supervisé ou non supervisé. Cette distinction repose sur la forme des
exemples d'apprentissage. Dans le cas de l'apprentissage supervisé, les exemples sont des
couples (Entrée, Sortie associée) alors que l'on ne dispose que des valeurs (Entrée) pour
l'apprentissage non supervisé. Remarquons cependant que les modèles à apprentissage non
supervisé nécessitent avant la phase d'utilisation une étape de labélisation effectuée
l'opérateur, qui n'est pas autre chose qu'une part de supervision. [37]
5. Tant que tous les exemples de la base d'apprentissage ne sont pas traités correctement
(modification des poids), retour à l'étape 2. [37]
IV. L’apprentissage profond
1. Définition
L’apprentissage profond (en anglais deep learning )est un type d'intelligence artificielle
dérivé du machine learning (apprentissage automatique) où la machine est capable
d'apprendre par elle-même, contrairement à la programmation où elle se contente d'exécuter à
la lettre des règles prédéterminées. [33]
Par exemple, le modèle de deep learning connu sous le nom de réseau neuronal convolutif
peut être entraîné à l'aide d'un grand nombre (des millions) d'images, des images représentant
des chats par exemple. Ce type de réseau neuronal tire son apprentissage des pixels contenus
dans les images reçues. Il peut classer des groupes de pixels en fonction des caractéristiques
du chat telles que les griffes, les oreilles, les yeux indiquant la présence de l'animal dans
l'image.
Le deep learning est très différent du machine learning classique. Dans cet exemple, un expert
dans ce domaine passerait un temps considérable à mettre au point un système de machine
learning capable de détecter les caractéristiques représentatives du chat. Avec le deep
learning, il suffit de fournir au système un très grand nombre d'images de chats pour qu'il en
retienne de façon autonome les caractéristiques. [33]
Fig2 : Processus d’autoapprentissage [2]
3. Quelques algorithmes de deep learning
Plusieurs types d'algorithmes sont utilisés en apprentissage profond. Chaque algorithme
possède ses propres spécificités et applications.
Aujourd'hui, les réseaux de neurones convolutifs, aussi appelés CNN ou ConvNet pour
Convolutional Neural Network, sont toujours les modèles les plus performants pour la
détection et la classification d'images.
Comme pour les réseaux de neurones ordinaires, les paramètres des couches sont déterminés
par rétropropagation du gradient : l'entropie croisée est minimisée lors de la phase
d'entraînement. Mais dans le cas des CNN, ces paramètres désignent en particulier les features
des images. Il existe quatre types de couches pour un réseau de neurones convolutif : la
couche de convolution, la couche de pooling, la couche de correction ReLU et la couche
fully-connected.
La couche de convolution (CONV) qui traite les données d'un champ récepteur
La couche de pooling (POOL), qui permet de compresser l'information en réduisant la
taille de l'image intermédiaire (souvent par sous-échantillonnage)
La couche de correction (ReLU), souvent appelée par abus 'ReLU' en référence à la
fonction d'activation (Unité de rectification linéaire)
La couche "entièrement connectée" (FC), qui est une couche de type perceptron.
La couche de perte (LOSS)
Figure 6 : Architecture CNN [3]
par son nombre N de cartes de convolution M ij (j ∈ {1, . . ., N}), la taille des noyaux de
En terme mathématique, Une couche de convolution C i (couche i du réseau) est paramétrée
La fonction d'activation 𝜑 est appliquée à la sortie d'une couche de convolution pour limiter
d. Fonctions d'activation
la sortie de chaque neurone et pour introduire des non-linéarités aux activations linéaires
générées par une couche de convolution. Quelques exemples de certaines des fonctions
d'activation populaires utilisées dans les réseaux de neurones pour les tâches de classification
et de détection sont donnés comme suit :
La couche d'unité linéaire rectifiée (en anglais rectified linear unit layer) est l'une des
fonctions d'activation les plus couramment utilisées dans l'apprentissage en profond, qui est
calculée comme suit:
Les fonctions d'activation ReLU sont très populaires pour la création d'un réseau non linéaire
car il est plus facile de se différencier pour la rétropropagation du gradient. Même si la
fonction ReLU n'est pas différenciable à zéro contrairement à la fonction d'activation
sigmoïdale, qui a des dérivées lisses, elle converge toujours plus rapidement que la fonction
tangente sigmoïde et hyperbolique.
La fonction d'activation Leaky ReLU est similaire à la fonction ReLU avec une différence clé:
elle permet un petit gradient positif lorsque l'unité est inactive. Un Leaky ReLU est calculé
comme suit :
La fonction Sigmoïde était la fonction d'activation la plus utilisée avant ReLU, qui prend les
valeurs réelles en entrée et sort les valeurs dans l’intervalle [0, 1]. La fonction sigmoïde est
définie comme suit :
Les valeurs d'entrée négatives plus grandes ont tendance à être plus proches de 0 tandis que
les entrées positives plus grandes sont plus proches de 1. La fonction sigmoïde est rarement
utilisée maintenant car elle souffre des problèmes de saturation de gradient et d'un calcul plus
lent. En plus n'est pas centré en zéro.
La fonction tangente hyperbolique ou tanh est similaire à la fonction sigmoïde avec une
différence de sortie, variant dans l'intervalle [−1, 1] au lieu de [0, 1]. Il est défini comme :
Les fonctions de perte sont les fonctions différenciables utilisées pour guider le processus
d'apprentissage d'un réseau neuronal. Pour s’entrainer un CNN pour une tâche de détection
ciblée 𝑦̂ sur une valeur réelle représentant la pénalité pour l'inexactitude des prédictions. Les
fonctions de perte les plus utilisées pour les problèmes de classification sont l'erreur
quadratique moyenne totale (perte TMSE ou L2), entropie croisée (CEL) et la perte Softmax.
Pour un problème de régression, les fonctions de perte peuvent varier d'un réseau à l'autre.
[1.3]
[1.3]
La perte Softmax : La perte Softmax est l'une des fonctions de perte les plus
couramment utilisées dans les CNN. Il prend un vecteur N-dimensionnel de valeurs
que la somme soit égale à 1. Étant donné une matrice d'entrée 𝑋𝑛,𝑘, la perte Softmax
réelles et le transforme en vecteur de valeurs réelles dans un intervalle [0,1] de sorte
Réseaux de neurones
Modèles de Markov cachés
Réseaux bayésiens
Les domaines d’application de la reconnaissance des formes sont les suivants :
Vision par ordinateur
Cachine Vision
Analyse d’images médicales
Reconnaissance optique de caractères
Notation de crédit [48]
3. Reconnaissance optique de caractères
La reconnaissance optique de caractères (OCR) est la traduction
mécanique ou électronique / lecture d’images de texte manuscrit,
dactylographié ou imprimé (généralement capturé par un scanner) en
texte modifiable par machine.
Tous les systèmes OCR comprennent un scanner optique pour la lecture
de texte et sophistiqué logiciel d’analyse d’images. La plupart des
systèmes OCR utilisent une combinaison de matériel (circuits imprimés
spécialisés) et des logiciels pour reconnaître les caractères, bien que
certains
Les systèmes peu coûteux le font entièrement par logiciel. OCR romain
avancé Les systèmes peuvent lire du texte dans une grande variété de
polices, mais ils ont encore des difficultés avec texte manuscrit. [48]
Conclusion
Dans ce chapitre, nous avons montré les principales notions autour du domaine de la détection
d’objet, de la machine Learning, et aussi les réseaux de neurones convolutifs qui permettent
de résoudre de nombreux problèmes d’intelligence artificiel, tels que la détection d’objets
dans les images. Ainsi que nous avons présenté les plaques d’immatriculations.
Dans le prochain chapitre, nous allons détailler les différentes méthodes de l’apprentissage
profond dans le domaine de la détection d’objet et la reconnaissance des caractères, ainsi
qu’un état de l’art.
Détection d'objet — Wikipédia (wikipedia.org) [20 ]
https://blog.hubspot.fr/marketing/deep-learning [32]
https://www.netapp.com/fr/artificial-intelligence/what-is-deep-learning/ [33]
http://staff.univ-batna2.dz/sites/default/files/merzougui_ghalia/files/support_de_cours_-
deep_learning-chapitre2-rn.pdf [34]
https://datafranca.org/wiki/Neurone_artificiel [35]
https://wikipredia.net/fr/Vehicle_registration_plates_of_Chad [36]
https://amu.hal.science/hal-01338010/file/Les_reseaux_de_neurones_artificiels.pdf [37]
https://www.jedha.co/formation-ia/algorithmes-deep-learning[38]
https://needemand.com/wp-content/uploads/2020/03/deep-learning.jpg [2]
https://www.researchgate.net/figure/Convolutional-Neural-Network-NN-architecture-
Kemker-et-al-2018_fig1_357533261 [3]
https://www.researchgate.net/figure/Convolution-operation_fig1_330880103 [4]
https://www.researchgate.net[4]
[39] https://fr.wikipedia.org/wiki/Plaque_d%27immatriculation