Vous êtes sur la page 1sur 72

Université Abdelmalek Essaadi

Département de la physique

Master : Systèmes embarques et robotiques

PROJET : intelligence artificielle

Intitulé

APPLICATION DU DEEP LEARNING POUR LA DÉTECTION DE LA


SOMNOLENCE ET LA FATIGUE CHE LE

CONDUCTEUR EN TEMPS RÉEL.

REALISE PAR : ENCADRE PAR :

• ABDLAOUI Hassna Mr : NCIR NOAMAN

• AZEROUAL Zineb PROFESSEUR A FSTH

• BEN AMAR YEDIR

• OU-ICHEN Mohamed

SOUTENU LE 21/06/2023

2022/2023
Remerciements

Tout d’abord autant que binôme nous tenons à remercier Allah pour tout le bien, la santé et le courage
que nous a donné pour accomplir ce travail.
Ce travail est le fruit des efforts consentis par différentes personnes. Sincèrement, il nous est impossible
d’exprimer à sa juste valeur notre reconnaissance et nos remerciements à toute personne qui a apporté sa
contribution et sa collaboration dans la réalisation de ce travail. En premier lieu, on souhaite remercier
très chaleureusement notre encadrant Mr. NCIR NOAMAN. Vous nous avez pris sous votre aile pour nous
apprendre et nous former à la recherche. Vos connaissances et vos précieux conseils nous ont toujours été
d’une très grande aide. Nous vous remercions pour la confiance que vous nous avez accordée, votre suivi
tout au long la préparation de ce projet, vos retours et corrections, votre encouragement, et tous ces
échanges scientifiques toujours très enrichissants. Nous avons particulièrement apprécié travailler avec vous.
Parmi les défis auxquels les gens sont confrontés lorsqu’ils travaillent en groupe, on trouve le manque du
compréhension, d’écoute, du respect d’opinions et des idées des autres. Heureusement, nous avons eu
tous ces avantages qui distinguent le travail d’équipe des autres, comme le respect et la coopération. ,
parce que nous n’avons eu aucun mal à travailler ensemble dans l’harmonie et la compréhension. Nous
nous comprenons si l’un des nous rencontre des circonstances qui l’empêchent de continuer à travailler
pendant un certain temps. Et si l’un de nous est frustré, l’autre l’aide et la soutienne. C’est une bénédiction
d’avoir de bons partenaires.
Finalement, nous nous exprimons notre gratitude à tous les professeurs du département de l’informa-
tique, et nous remercions sincèrement nos proches pour leur soutien constant tout au long de notre carrière
universitaire.
Dédicace

À nos très chers parents, source de vie, d’amour et d’affection à nos chers frères, source de joie et de
bonheur à toute nos familles, source d’espoir et de motivation à tous nos amis, et à toutes les personnes qui
m’ont encouragé pour terminer ce travail.
Qui parmi vous a déjà dormi au volant ?
Un grand nombre d’entre vous, malheureusement.
Heureusement, étant là nous changeons tout ça.
Attachez vos ceintures, et ne somnolez pas.
I NTRODUCTION GÉNÉRALE

Les expressions faciales transmettent des signaux non verbaux qui jouent un rôle important dans la
communication entre les êtres humains. Bien que nous possédions la capacité d’extraire et de reconnaitre
ces signaux sans effort et sans délai, ces tâches présentent encore des défis pour les machines. En effet,
par l’analyse de l’image, la machine devra « voir » et « comprendre » le visage présent dans une image de
la même façon que le cerveau, afin d’émettre une décision sur le comportement et l’état d’esprit de
l’individu. Grâce à ces propriétés décisionnelles, le domaine de l’analyse automatique des expressions
faciales connait un grand essor et constitue une tâche primordiale pour diverses applications telles que la
robotique, les interfaces homme-machine, la science du comportement, la pratique clinique et la
surveillance de l’état du conducteur.
En effet, face aux accidents de la route grandissants pour de nombreuses raisons, notamment :
vitesse excessive, somnolence ou fatigue, il est préférable de doter chaque conducteur des équipements
nécessaires pour éviter de tels accidents. L’une des possibilités est de concevoir des algorithmes peuvent
alerter le conducteur et surveiller son niveau de vigilance pour le tenir éveillé, et par conséquent réduire
le nombre d’accidents de la route. Ainsi, nous proposons un algorithme basé sur des techniques de la
vision artificielle permettant de reconnaitre certaines expressions faciales dans le but de détecter un
éventuel état de fatigue chez les conducteurs.
Table des matières

Introduction générale ix

Table des matières xi

Chapitre 1 : L’intelligence artificielle 1


1. 1 Intelligence artificielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1. 1. 1 Qu’est-ce que l’intelligence artificielle ? . . . . . . . . . . . . . . . . . . . . . . . . 1
1. 1. 2 Comment fonctionne l’intelligence artificielle ? . . . . . . . . . . . . . . . . . . . . 2
1. 2 Apprentissage automatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1. 2. 1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1. 2. 2 Ingrédients du machine learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1. 2. 3 Et l’intelligence artificielle, dans tout ça ? . .. . . . . . . . . . . . . . . . . . . . 3
1. 2. 4 Limites de Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1. 3 Apprentissage profond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1. 3. 1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1. 3. 2 Les différents algorithmes de Deep Learning . . . . . . . . . . . . . . . . . . . . . 5
1. 3. 3 Domaines d’application de l’apprentissage profond . . . . . . . . . . . . . . . . . . 6
1. 3. 3. 1 Traitement automatique des langues naturelles . . . . . . . . . . . . . . . 7
1. 3. 3. 2 Conduite autonome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1. 3. 3. 3 Diagnostic médical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1. 3. 3. 4 Détection de malwares ou de fraudes . . . . . . . . . . . . . . . . . . . . 8
1. 3. 3. 5 Agriculture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1. 3. 3. 6 Marketing et vente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1. 3. 3. 7 Détection de la fatigue et la somnolence chez le conducteur . . . . . . . . 8
1. 3. 4 Les limites de l’apprentissage profond . . . . . . . . . . . . . . . . . . . . . . . . . 8
xii TABLE DES MATIÈRES

1. 4 Conclusion ..................................................................................................................................... 8

Chapitre 2 : Les réseaux de neurones 9


2. 1 Neurone naturel vers neurone artificiel .......................................................................................... 9
2. 1. 1 Neurone naturel ................................................................................................................. 9
2. 1. 2 Neurone artificiel ............................................................................................................. 10
2. 2 Réseaux de neurones artificiels .................................................................................................... 12
2. 2. 1 Fonctions d’activations ................................................................................................... 12
2. 2. 2 Architecture des réseaux de neurones ............................................................................. 15
2. 2. 3 Les couches des réseaux neurones profond .................................................................... 16
2. 3 Réseaux de Neurones Convolutifs ............................................................................................... 16
2. 3. 1 Le principe du CNN ........................................................................................................ 17
2. 3. 2 Types de couches dans le CNN ....................................................................................... 17
2. 3. 3 Les Architectures de CNN .............................................................................................. 20
2. 3. 3. 1 LeNet-5 .......................................................................................................... 20
2. 3. 3. 2 AlexNet .......................................................................................................... 21
2. 3. 3. 3 VGG ............................................................................................................... 22
2. 3. 3. 4 Inception-V3 .................................................................................................. 23
2. 3. 3. 5 ResNet ............................................................................................................ 23
2. 3. 3. 6 Xception ......................................................................................................... 24
2. 3. 3. 7 DenseNet ........................................................................................................ 25
2. 3. 3. 8 MobileNet-V1 ................................................................................................ 26
2. 3. 3. 9 MobileNet-V2 ................................................................................................ 28
2. 3. 3. 10 EfficientNet .................................................................................................... 29
2. 3. 3. 11 Noisy Student ................................................................................................. 29
2. 4 Apprentissage des réseaux de neurones ......................................................................................... 30
2. 4. 1 L’apprentissage supervisé ............................................................................................... 30
2. 4. 2 L’apprentissage non supervisé......................................................................................... 31
2. 5 Conclusion ................................................................................................................................... 31

Chapitre 3 : Détection de la fatigue et la somnolence chez le conducteur : État de l’art 32


3. 1 Définition de la somnolence ........................................................................................................ 32
3. 2 Les expressions faciales............................................................................................................... 33
3. 3 Méthodes d’analyse de visage...................................................................................................... 33
3. 3. 1 Approche globale sans segmentation .............................................................................. 34
3. 3. 2 Approche avec segmentation........................................................................................... 35
xii TABLE DES MATIÈRES
3. 4 Utilisation des expressions faciales pour la détection de la fatigue ............................................. 36
3. 5 L’état du conducteur .................................................................................................................... 37
3. 6 Conclusion ................................................................................................................................... 40

Chapitre 4 : Détection de la somnolence et la fatigue en temps réel : Conception et implémentation41


4. 1 Conception générale de notre algorithme proposé ....................................................................... 41
4. 2 Implémentation ............................................................................................................................ 43
4. 2. 1 Logiciels et librairies utilisés .......................................................................................... 43
4. 2. 1. 1 Colaboratory ................................................................................................... 43
4. 2. 1. 2 Python ............................................................................................................. 43
4. 2. 1. 3 OpenCV .......................................................................................................... 44
4. 2. 1. 4 Keras ............................................................................................................... 44
4. 2. 1. 5 TensorFlow ..................................................................................................... 44
4. 2. 2 Description des processus de notre algorithme ............................................................... 45
4. 2. 2. 1 Méthodologie de détection de visage .............................................................. 45
4. 2. 2. 2 Définition d’une segmentation spatiale du visage ........................................... 46
4. 2. 2. 3 Classification avec CNN ................................................................................. 46
4. 2. 2. 4 Calcul du lips aspect ratio ............................................................................... 51
4. 2. 3 Performances du notre modèle ........................................................................................ 54
4. 2. 3. 1 Formation du modèle ...................................................................................... 54
4. 2. 3. 2 Performances du modèle................................................................................. 54
4. 2. 3. 3 L’évaluation du modèle .................................................................................. 55
4. 2. 3. 4 Rapport de classement..................................................................................... 56
4. 2. 3. 5 Matrice de confusion ....................................................................................... 56
4. 2. 3. 6 Test du modèle ................................................................................................ 57
4. 2. 3. 7 Construire un pipeline pour les prédictions sur les images complètes ............. 57
4. 3 Conclusion ................................................................................................................................... 60

Conclusion générale 61

Bibliographie 63
CHAPITRE 1

L’INTELLIGENCE ARTIFICIELLE

1. 1 Intelligence artificielle

1. 1. 1 Qu’est-ce que l’intelligence artificielle ?

L’intelligence artificielle (IA) est un processus d’imitation de l’intelligence humaine qui repose sur la
création et l’application d’algorithmes exécutés dans un environnement informatique dynamique. Son but
est de permettre à des ordinateurs de penser et d’agir comme des êtres humains. [Axi19]

Pour y parvenir, trois composants sont nécessaires :

o Des systèmes informatiques.


o Des données avec des systèmes de gestion.
o Des algorithmes d’IA avancés (code),
o Pour se rapprocher le plus possible du comportement humain, l’intelligence artificielle a
besoin d’une quantité de données et d’une capacité de traitement élevées.

FIGURES 1.1 – Echelle de temps pour l’intelligence artificielle, apprentissage automatique et l’apprentis-
sage profond [CM17]
2 CHAPTER 1 — L’intelligence artificielle

1. 1. 2 Comment fonctionne l’intelligence artificielle ?

Les machines dotées d’une intelligence artificielle mémorisent des comportements. Ce travail de
mémorisation leur permet par la suite de résoudre des problèmes, et d’agir correctement face à telle ou telle
situation. Cet apprentissage se réalise à l’aide de bases de données et d’algorithmes. Ce travail complexe aide
la machine à mesurer l’importance d’un problème, à passer au crible les solutions possibles et les situations
passées similaires afin de bien agir. C’est en réalité un système de statistiques sophistiqué et très performant
qui conduisent la machine à prendre une décision ou à avoir le comportement attendu. Pour mesurer son
degré d’intelligence, une machine est soumise au test de Turing. Ce test porte le nom de l’inventeur de l’IA,
Alan Turing. Ce mathématicien britannique fut l’un des premiers à se demander, en 1950, si une machine
était capable de penser. Le test de Turing consiste à converser avec la machine et à lui demander de créer
quelque chose avec des critères précis qu’elle se doit de respecter. [Axi19]

1. 2 Apprentissage automatique

1. 2. 1 Définition
Le machine learning est l’étude scientifique des algorithmes et des modèles statistiques que les
ordinateurs utilisent pour accomplir une tâche sans instruction explicite, mais plutôt en s’appuyant sur des
motifs et de l’inférence. [GB]

1. 2. 2 Ingrédients du machine learning


Le machine learning repose sur deux piliers fondamentaux :

1. D’une part, les données, qui sont les exemples à partir duquel l’algorithme va apprendre.

2. D’autre part, l’algorithme d’apprentissage, qui est la procédure que l’on fait tourner sur ces données
pour produire un modèle. On appelle entraînement le fait de faire tourner un algorithme
d’apprentissage sur un jeu de données.

Ces deux piliers sont aussi importants l’un que l’autre. D’une part, aucun algorithme d’apprentissage
ne pourra créer un bon modèle à partir de données qui ne sont pas pertinentes c’est le concept garbage in,
garbage out qui stipule qu’un algorithme d’apprentissage auquel on fournit des données de mauvaise qualité
ne pourra rien en faire d’autre que des prédictions de mauvaise qualité. D’autre part, un modèle appris avec
un algorithme inadapté sur des données pertinentes ne pourra pas être de bonne qualité. Néanmoins, il ne
faut pas négliger qu’une part importante du travail de machine learner ou de data scientist est un travail
d’ingénierie consistant à préparer les données afin d’éliminer les données aberrantes, gérer les données
manquantes, choisir une représentation pertinente, etc. [GB]
CHAPTER 1 — L’intelligence artificielle 3

1. 2. 3 Et l’intelligence artificielle, dans tout ça ?


Le machine learning peut être vu comme une branche de l’intelligence artificielle. En effet, un système
incapable d’apprendre peut difficilement être considéré comme intelligent. La capacité à apprendre et à
tirer parti de ses expériences est en effet essentielle à un système conçu pour s’adapter à un environnement
changeant. L’intelligence artificielle, définie comme l’ensemble des techniques mises en œuvre afin de
construire des machines capables de faire preuve d’un comportement que l’on peut qualifier d’intelligent,
fait aussi appel aux sciences cognitives, à la neurobiologie, à la logique, à l’électronique, à l’ingénierie et
bien plus encore. Probablement parce que le terme « intelligence artificielle » stimule plus l’imagination, il
est cependant de plus en plus souvent employé en lieu et place de celui d’apprentissage automatique. [GB]

1. 2. 4 Limites de Machine Learning

Machine Learning a besoin de données pour identifier les modèles, mais il y a des problèmes concernant
les données qui font référence à la dimensionnalité et à la stagnation des performances en introduisant plus
de données au-delà de la limite de comportement. Il est vérifié qu’il y a une réduction des performances
significatives lorsque cela se produit. La figure suivante explique le succès de Deep learning de point de vue
performance qui augmente avec l’augmentation de données par rapport à celui des algorithmes de machine
learning classique qui stagne et montre ses limites.

FIGURES 1.2 – Performance du machine learning par rapport au deep learning en fonction de données. [eYB]
4 CHAPTER 1 — L’intelligence artificielle

Nous pouvons donnée aussi une autre comparaison entre le processus de ML avec celui de DL, par
l’exemple suivant qui présente la photo d’une voiture en entré d’un système qui va prendre la décision si la
photo est une voiture ou non. Dans le processus classique de ML, nous remarquons que la tache extraction
de caractéristiques est faite par l’être humain. Par contre dans le cas du processus DL la tâche est faite
automatiquement, c’est-à-dire le processus DL a la capacité d’étudier la donnée tel qu’elle est. Ceci montre
que la démarche DL est plus puissante et elle réalise des analyses plus poussées par rapport à celle de ML.

FIGURES 1.3 – Machine learning vs deep learning [Wol]

C’est pour ça, qu’il est important d’avoir des connaissances de base sur le ML pour avoir une intuition
dans le domaine DL.

1. 3 Apprentissage profond
Le terme « Apprentissage profond » désigne l’entraînement des réseaux de neurones, parfois, de très
grands réseaux de neurones.
En quoi consiste exactement un réseau de neurones ?
La réponse détaillée sera l’objectif du prochain chapitre. Mais à ce stade, nous pouvons le considérer comme une
approche intelligente appelé réseau de neurones entrainée intégré dans une boite noire qui reçoit des
données en entrées et génère des sorties en répondant à certains besoins d’utilisateur.
CHAPTER 1 — L’intelligence artificielle 5

1. 3. 1 Définition
Le Deep learning ou apprentissage profond est l’une des technologies principales du Machine learning.
Avec le Deep Learning, nous parlons d’algorithmes capables de mimer les actions du cerveau humain grâce à
des réseaux de neurones artificielles. Les réseaux sont composés de dizaines voire de centaines de «couches»
de neurones, chacune recevant et interprétant les informations de la couche précédente. Les modèles de
Deep learning ont tendance à bien fonctionner avec une grande quantité de données alors que les modèles
d’apprentissage automatique plus classique cessent de s’améliorer après un point de saturation. [Emi22]

1. 3. 2 Les différents 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. [Emi22]

✓ Réseaux de neurones convolutifs (CNN) sont utilisés pour l’analyse et la détection d’objets. Ils
peuvent donc servir par exemple à reconnaître des images satellites, traiter des images médicales, détecter
des anomalies ou prédire des séries chronologiques.

✓ Réseaux neuronaux récurrents (RNN) sont utilisés pour le sous-titrage d’images, le traitement du
langage naturel et la traduction automatique.

✓ Réseaux de fonction de base radiale (RBFN) sont utilisés dans la classification, la prédiction des
séries temporelles et la régression linéaire.

✓ Réseaux de mémoire à long et court terme (LSTM) sont particulièrement utiles pour prédire des
séries chronologiques, car ils se rappellent des entrées précédentes. Outre ce cas d’utilisation, les LSTM
sont également utilisés pour composer des notes de musique et reconnaître des voix.

✓ Réseaux adversariaux génératifs (GAN) créent de nouvelles instances de données qui s’apparentent aux
données d’apprentissage profond. Ils possèdent deux principaux composants : un générateur et un
discriminateur. Si le générateur apprend à produire des informations erronées, le discriminateur, quant à
lui, apprend à exploiter ces fausses informations. Les GAN sont généralement utilisés par les créateurs de
jeux vidéo pour améliorer les textures 2D.

✓ Machine de Boltzmann restreinte (RBM) est un type de réseau de neurones artificiels pour
l’apprentissage non supervisé. Elle est couramment utilisée pour avoir une estimation de la distribution
probabiliste d’un jeu de données.
6 CHAPTER 1 — L’intelligence artificielle

1. 3. 3 Domaines d’application de l’apprentissage profond

L’apprentissage profond et dès son arrivé plusieurs chercheurs ont tenté de résoudre divers problèmes ou
optimiser la solution de d’autre en l’utilisant comme approche, et cela dans beaucoup et différents domaines
comme : l’intelligence artificielle, la sécurité, la médecine, le traitement automatique des données (données
temporelles, données spatiales, données spatiotemporelles). [Ret21]

1. 3. 3. 1 Traitement automatique des langues naturelles

► Les assistants vocaux


Sans le Deep Learning, les applications de reconnaissance vocale Alexa ou Siri n’auraient jamais vu le
jour. En effet, c’est par l’entraînement quotidien que reçoivent ces systèmes artificiels qu’elles étoffent petit
à petit leur vocabulaire et renforce leur compréhension de toutes les langues qu’elles côtoient.

► La traduction
Déjà utilisé par certains logiciels de traduction automatique, l’apprentissage profond permet de
reconnaître grâce à la reconnaissance de forme, la langue d’un texte et de le traduire. Cela peut par exemple
servir sur des applications de tchat entre deux personnes ne parlant pas la même langue. Magique !

► Le Deep Learning au service de la rédaction de textes


Grâce au Deep learning, un ordinateur est en capacité de rédiger un texte non seulement correct du point
de vue grammatical et de l’orthographe, mais aussi fidèle au style d’un auteur donné. Des systèmes
d’intelligence artificielle spécialisés dans le traitement du langage ont par exemple réussi à rédiger des
articles pour Wikipédia et à produire des textes inspirés de Shakespeare.

1. 3. 3. 2 Conduite autonome

Vous en avez sûrement beaucoup entendu parler, mais saviez-vous que le Deep learning est le système
intelligent qui permet la conduite autonome ?
Cette technologie, appelée à améliorer la sécurité routière, existe d’ailleurs déjà. Celle-ci combine plusieurs
algorithmes d’apprentissage profond, comme ceux reconnaissant les panneaux de signalisation ou ceux
localisant les piétons.
CHAPTER 1 — L’intelligence artificielle 7

1. 3. 3. 3 Diagnostic médical

L’intelligence artificielle et Le deep learning ont fait des progrès énormes dans l’interprétation de
l’imagerie médicale, grâce à la disponibilité d’images de haute qualité et à la capacité des CNNs à classer
les images l’IA et le DL sont désormais capable de réaliser un diagnostic médical avec autant, voire plus
de précision qu’un humain. [Cim19] par exemple de différencier des tumeurs cancéreuses de celles qui ne
le sont pas ou encore pour détecter des maladies bien plus tôt que ce qui était possible auparavant.

1. 3. 3. 4 Détection de malwares ou de fraudes

Le deep learning présente des résultats nettement plus performants en matière de détection de fraude
lorsqu’ils sont alimentés par un volume important de données. Des données sont collectées et fournies,
Il peut s’agir de données comportementales, techniques ou d’informations issues de réseaux sociaux, leur
permettant de < créer des profils clients >, mis à jour régulièrement lesquels leur permet de prédire ou
détecter une opération frauduleuse en se basant sur les comportements habituels, normaux du client afin de
détecter un comportement anormal. Le malware est la contraction des termes anglais malicieux et software.
Il désigne un logiciel malveillant s’attaquant aux ordinateurs, terminaux mobiles et objets connectés. Les
nouvelles techniques développées par le DL détectent rapidement les malwares. [KOS19]

1. 3. 3. 5 Agriculture

Dans le milieu de l’agriculture biologique, certains utilisent aujourd’hui des drones intelligents capables
de reconnaître les mauvaises herbes en scannant au survol des hectares de culture. De quoi permettre aux
agriculteurs de se concentrer sur les zones nécessitant désherbage, sans perdre trop de temps ou d’énergie.

1. 3. 3. 6 Marketing et vente

Le Deep Learning peut également servir à relever et saisir les sentiments des clients. En analysant les
messages des clients pour repérer leur niveau de contentement et en en tirant des leçons, ils sont ainsi en
mesure de prévenir la satisfaction client et de permettre la mise en place d’améliorations.

1. 3. 3. 7 Détection de la fatigue et la somnolence chez le conducteur

En utilisant des techniques d’apprentissage profond pour analyser les expressions faciales d’un
conducteur et déterminer son état c.à.d détecter la fatigue et la somnolence etc.. Cette application est notre
sujet principal dont nous parlerons en détail dans les prochains chapitres.
8 CHAPTER 1 — L’intelligence artificielle

1. 3. 4 Les limites de l’apprentissage profond


► Le Deep Learning nécessite une grande puissance de calcul
Si le Deep Learning a beaucoup d’avantages, il a aussi ses limites, parmi lesquelles un énorme besoin en
puissance de calcul. D’une part pour assurer la maintenance des réseaux de neurones artificiels, mais aussi
pour traiter la très grande quantité de données nécessaires.

► Une technologie coûteuse à mettre en place


Cette puissance de calcul est relative à la complexité et à la difficulté de la tâche à résoudre et de la
masse de données utilisée. De ce fait, le Deep learning se révèle être un système artificiel coûteux, donc
plutôt réservé à la recherche et aux géants du Big Data.

► Des décisions difficilement ou pas du tout compréhensibles


Sur un autre point, l’une des problématiques que pose cette intelligence artificielle est la complexité et
le volume de données que requiert son fonctionnement et le fait qu’il est impossible de comprendre dans le
détail la motivation des décisions qu’elle prend. Ce problème entraîne avec lui l’incapacité (pour le moment)
de l’intégrer à des applications où la traçabilité est essentielle.

► Il nécessite une vaste base de données


Enfin, pour être efficace, le Deep Learning doit s’appuyer sur une grande quantité de données. Sans
cela, aucune machine n’est en mesure de donner de bons résultats avec cette méthode. Bien qu’il existe des
bibliothèques de réseaux neuronaux artificiels mis à disposition de tous pour simplifier son utilisation, il
existe bel et bien des limites à la mise en place d’une intelligence profonde, notamment le temps nécessaire
à l’élaboration des algorithmes d’apprentissage.

1. 4 Conclusion

FIGURES 1.4 – Comparaison entre ML et DL

Dans ce chapitre nous avons expliqué la différence entre l’intelligence artificielle, machine learning et
deep learning pour ne pas les confondre, et puis nous avons présentés ce que c’est le deep learning, ses
différents algorithmes, ses domaines d’application et ses limites.
CHAPITRE 2

LES RÉSEAUX DE NEURONES

Préambule
es réseaux de neurones artificiels sont des modèles mathématiques inspirés de la biologie. La brique
L de base de ces réseaux, le neurone artificiel, était issu au départ d’une volonté de modélisation du
fonctionnement d’un neurone biologique.

Nous allons donc voir dans ce chapitre c’est quoi un neurone artificiel qui constitue les réseaux de
neurones et son principe de fonctionnement. Nous allons par la suite savoir la différence entre un
perceptron et réseau multicouches. Nous expliquons également l’algorithme de leurs apprentissages illustré par
un exemple détaillé.

2. 1 Neurone naturel vers neurone artificiel

2. 1. 1 Neurone naturel

Le cerveau se compose d’environ 1012 (mille milliards) de neurones interconnectés, avec 1000 à 10000
synapses (connexions) par neurone (Figure 2.1). Les neurones ne sont pas tous identiques, leur forme et
certaines caractéristiques permettent de les répartir en quelques grandes classes : [Tou16]
10 CHAPTER 2 — Les réseaux de neurones

FIGURES 2.1 – Modèle d’un neurone biologique [Cht17]

Le corps cellulaire contient le noyau du neurone et effectue les transformations biochimies nécessaires
à la synthèse des enzymes et des autres molécules qui assurent la vie de la cellule. Ce corps cellulaire ayant
une forme sphérique ou pyramidale, sa taille est de quelques microns de diamètre. Les dendrites sont de
fines extensions tubulaires qui se ramifient autour du neurone et forment une sorte de vaste arborescence.
Les signaux envoyés au neurone sont captés par les dendrites. Leur taille est de quelques dizaines de microns
de longueur.
L’axone est la fibre nerveuse, sert de moyen de transport pour les signaux émis par le neurone. Il est plus
long que les dendrites, et se ramifie à son extrémité où il se connecte aux dendrites des autres neurones. Les
connexions entre deux neurones se font en des endroits appelés synapses où ils sont séparés par un peu
espace synaptique de l’ordre d’un centième de microns.
Chaque neurone est une unité autonome au sein du cerveau. Le neurone reçoit en continu des entrées. Le
corps cellulaire du neurone est le centre de contrôle. C’est là que les informations reçues sont interprétées. La
réponse, unique, à ces signaux est envoyée au travers de l’axone. L’axone fait synapse sur d’autres neurones
(un millier). Le signal transmis peut avoir un effet excitateur ou inhibiteur.

2. 1. 2 Neurone artificiel
Un neurone formel est une fonction algébrique non linéaire et bornée, dont la valeur dépend des para-
mètres appelés poids. Les variables de cette fonction sont habituellement appelées "entrées" du neurone, et
la valeur de la fonction est appelée sa "sortie". [Zha98]
CHAPTER 2 — Les réseaux de neurones 11

FIGURES 2.2 – Neurone : formel de Mac Culloch et Pitts. [Ahm17]

Tels que :
— Des observations de neurone biologique, découle le modèle du neurone formel proposé par W. M.
Culloch et W. Pitts en 1943 : Les xi représentent les vecteurs d’entrées, elles proviennent soit des
sorties d’autres neurones, soit de stimuli sensoriels (capteur visuel, sonore¦);
— Les wij sont les poids synaptiques du neurone j. Ils correspondent à l’efficacité synaptique dans les
neurones biologiques ( wij > 0 : synapse excitatrice; wij < 0 : synapse inhibitrice). Ces poids
pondèrent les entrées et peuvent être modifiés par apprentissage ;
— Biais : entrée prend souvent les valeurs -1 ou +1 qui permet d’ajouter de la flexibilité au réseau en
permettant de varier le seuil de déclenchement du neurone par l’ajustement des poids et du biais lors
de l’apprentissage ;
— Noyau : intègre toutes les entrées et le biais et calcul la sortie du neurone selon une fonction
d’activation qui est souvent non linéaire pour donner une plus grande flexibilité d’apprentissage.
— S : la somme pondérée des entrées (potentiel d’activation). [Zha98]

s = wixi + b (2.1)

— ŷ = f(S) : la sortie du neurone (réponse du neurone) ŷ = 1 si S> 0 Les réseaux de neurones sont
caractérisés par l’architecture (l’organisation des neurones), l’apprentissage (méthode de
détermination des poids de connexions), et par leur fonction d’activation. [Zha98]
12 CHAPTER 2 — Les réseaux de neurones

2. 2 Réseaux de neurones artificiels

Un réseau de neurones est un assemblage de neurones connectés entre eux ; c’est un graphe orienté. Un
réseau de neurones permet de résoudre de nombreux problèmes d’intelligence artificielle. Schématiquement,
le fonctionnement est le suivant :

— 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" wi particulier.
— Les entrées ainsi pondérées sont additionnées : 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.
— Le fonctionnement d’un réseau neuronal est composé de deux phases distinctes :

✓ Une phase d’apprentissage pendant laquelle les poids des connexions sont mis à jour de manière
dynamique ;
✓ Une phase d’exécution pendant laquelle le réseau est effectivement opérationnel.

Il existe un grand nombre de modèles ou d’architectures de réseau de neurones qui peuvent être distingués
par :

✓ La règle ou fonction d’activation locale à chaque neurone qui est la fonction des valeurs d’entrée
reçues d’autres neurones.
✓ La règle d’apprentissage qui permet de modifier les poids des connexions entre neurones.
✓ La topologie décrivant la manière dont les neurones sont connectés entre eux.

2. 2. 1 Fonctions d’activations

Jusqu’à présent, nous n’avons pas spécifié la nature de la fonction d’activation de notre modèle. Il se
trouve que plusieurs possibilités existent. Différentes fonctions de transfert pouvant être utilisées comme
fonction d’activation du neurone sont énumérées au tableau représenté dans la figure (3.4). Les fonctions
d’activations les plus utilisées sont les fonctions "seuil" (en anglais "hard limit"), "linéaire" et "sigmoïde".
CHAPTER 2 — Les réseaux de neurones 13

FIGURES 2.3 – Fonctions d’activations:(a) du neurone seuil ; (b du neurone linéaire, et (c) du neurone sigmoïde.
[GD02])

Fonction linéaire est très simple, elle affecte directement son entrée à sa sortie : y =s Appliquée dans le
contexte d’un neurone, cette fonction est illustrée à la figure 2.2. Dans ce cas, la sortie du neurone correspond
à son niveau d’activation dont le passage à zéro se produit lorsque

wT x = b (2.2)

La fonction de transfert sigmoïde est quant à elle illustrée à la figure 2.2. Son équation est donnée par :

y = 1/(1 + e−S) (2.3)

Elle ressemble soit à la fonction seuil, soit à la fonction linéaire, selon que l’on est loin ou près de b,
respectivement. La fonction seuil est très non linéaire car il y a une discontinuité lorsque (2.2). De son côté,
la fonction linéaire est tout à fait linéaire. Elle ne comporte aucun changement de pente. La sigmoïde est
un compromis intéressant entre les deux précédentes. Notons finalement, que la fonction "tangente
hyperbolique (tanh) " est une version symétrique de la sigmoïde.
14 CHAPTER 2 — Les réseaux de neurones

FIGURES 2.4 – Différentes fonctions d’activations utilisées dans les réseaux de neurones artificiels. [GD02]
CHAPTER 2 — Les réseaux de neurones 15

FIGURES 2.5 – Analogie entre le neurone biologique et le neurone formel. [GD02]

2. 2. 2 Architecture des réseaux de neurones

L’architecture d’un réseau de neurones est l’organisation des neurones entre eux au sein d’un même
réseau. Autrement dit, il s’agit de la façon dont ils ordonnés et connectés. La majorité des réseaux de neurones
utilise le même type de neurones. Quelques architectures plus rares se basent sur des neurones dédiés.
L’architecture d’un réseau de neurones dépend de la tâche à apprendre. Un réseau de neurone est en général
composé de plusieurs couches de neurones, des entrées jusqu’aux sorties. On distingue deux grands types
d’architectures de réseaux de neurones : les réseaux de neurones non bouclés et les réseaux de neurones
bouclés.

FIGURES 2.6 – Architecture des réseaux de neurones. [Bel]


16 CHAPTER 2 — Les réseaux de neurones

2. 2. 3 Les couches des réseaux neurones profond


Une couche est la composante de base des réseaux neuronaux, composée d’un nombre précis et bien
choisi de neurones uniformes ayant la même fonction d’activation. La couche agit comme un conteneur qui
transforme l’entrée reçue à l’aide de ces fonctions, généralement non linéaires, et la transmet à la couche
suivante. [Det15]

Types de couches fréquemment utilisées

● Dense
Une couche qui connecte chacun de ses neurones avec tous les neurones de la couche précédente. La trans-
formation qu’elle effectue est simple, il suffit de calculer la sortie de la fonction d’activation pour l’entrée
afin de la transmettre à la couche suivante.

● Dropout
Une couche qui met aléatoirement la fonction d’activation de l’entrée à 0 avec une probabilité d’acceptation
donnée. Utilisé pour traiter la tendance du réseau à sur-apprendre (overfitting).

● Flatten
Convertit l’entrée (la sortie des couches précédentes) en un vecteur 1D que nous pouvons classer, sans
affecter la taille du lot.

2. 3 Réseaux de Neurones Convolutifs


Un CNN est un algorithme d’apprentissage profond qui peut prendre une image d’entrée, attribuer de
l’importance (poids et biais apprenables) à divers aspects / objets de l’image et être capable de différencier
l’un de l’autre. Ces dernières années, les CNNs sont devenus un élément central de toutes les méthodes de
vision par ordinateur.
En 1980, Kunihiko Fukushima a proposé un réseau neuronal de reconnaissance d’image très basique dit le
Néocognitron.
Les ConvNets ont été introduits pour la première fois dans les années 1980 par Yann LeCun, chercheur
postdoctoral en informatique. LeCun s’était appuyé sur le travail de Kunihiko Fukushima. La première
version de l’architecture ConvNet [YL89], appelée LeNet améliorée par LeCuN et al., pouvait reconnaître
les chiffres manuscrits. Les CNNs ont trouvé un marché de niche dans les services bancaires, postaux et
bancaires, où ils lisent les codes postaux sur les enveloppes et les chiffres sur les chèques.
CHAPTER 2 — Les réseaux de neurones 17

2. 3. 1 Le principe du CNN
Le CNN est un sous-type de réseaux de neurones artificiels (ANN). L’innovation des CNNs est la
possibilité d’apprendre automatiquement un grand nombre de filtres en parallèle spécifiques à un jeu de
données d’apprentissage sous les contraintes d’un problème de modélisation prédictive spécifique, comme
la classification d’images. Ils sont constitués de neurones avec des poids et des biais apprenables. Chaque
neurone spécifique reçoit de nombreuses entrées et prend ensuite une somme pondérée sur eux, où il le
faitpasser par une fonction d’activation et répond en retour avec une sortie.

FIGURES 2.7 – Schéma des CNNs [V.R17]

2. 3. 2 Types de couches dans le CNN


L’architecture CNN comprend plusieurs types de couches. Une architecture typique consiste en des ré-
pétitions d’un empilement de plusieurs couches de convolution et d’une couche de regroupement, suivies
d’une ou plusieurs couches entièrement connectées. Bien que les opérations de convolution et de
regroupement décrites dans cette section soient pour 2D-CNN, en particulier, contrairement au réseau
neuronal régulier, les couches d’un ConvNet ont des neurones disposés en 3 dimensions : largeur, hauteur,
profondeur.
Comme nous l’avons décrit ci-dessus, un simple ConvNet est une séquence de couches, et chaque couche
d’un ConvNet transforme un volume d’activations en un autre grâce à une fonction différentiable. Nous
utilisons trois principaux types de couches pour créer des architectures ConvNet : la couche convolutive
(Convolutional layer), la couche de regroupement (Pooling layer) et la couche entièrement connectée
(Fully-connected layer) (exactement comme dans les réseaux de neurones classiques). Nous empilerons ces
couches pour former une architecture ConvNet complète.
18 CHAPTER 2 — Les réseaux de neurones

Les types de couches les plus utilisés pour créer des CNNs sont : CONV - ReLU - POOL - FC - BN - DO.

A. Couche convolutive (Convolutional layer CONV)

La couche de convolution a des noyaux (filtres) et chaque noyau a une largeur, une profondeur et une
hauteur. Cette couche produit les cartes de caractéristiques à la suite du calcul du produit scalaire entre les
noyaux et les régions locales de l’image. Leur travail consiste à extraire les informations pertinentes de
l’image (caractéristiques) grâce à une opération de convolution. Cette opération fait glisser un ensemble de
filtres sur une image. Le poids de ces filtres est mis à jour lors de l’apprentissage et c’est grâce à eux que le
réseau réussi à reconnaitre les images par la suite.

B. Couche d’unité linéaire rectifiée (Rectified Linear Unit layer ReLU)

La couche d’unité linéaire rectifiée (en anglais rectified linear unit layer) (ReLU) est une fonction
d’activation qui est utilisée sur tous les éléments du volume permet d’éliminer toutes les valeurs négatives
et conserver les valeurs positives. Elle a pour but d’introduire des complexités non-linéaires au réseau.

C. Couche de Pooling

L’étape de pooling est une technique de sous-échantillonnage. Généralement, une couche de pooling est
insérée régulièrement entre les couches de correction et de convolution. En réduisant la taille des cartes de
caractéristiques, donc le nombre de paramètres du réseau, cela accélère le temps de calcul et diminue le
risque de sur-apprentissage.
Il y a de nombreuses opérations dans cette couche, par exemple Max pooling et Average pooling.

— Mise en commun maximale (Max-pooling)


Il s’agit d’une opération de pooling qui ne prélèvera que le maximum d’un pool. Cela se fait en fait avec
l’utilisation de filtres glissant à travers l’entrée ; et à chaque foulée, le paramètre maximum est retiré et le
reste est abandonné. Cela sous-échantillonne en fait le réseau.
— Mise en commun moyenne (Average pooling)
Est une opération de regroupement qui calcule la valeur moyenne d’un pool et l’utilise pour créer un sous-
échantillonnage (regroupé), elle extrait les fonctionnalités plus facilement que Max Pooling.

La figure 2.13 montre un exemple d’opération de max pooling et Average pooling avec une taille de filtre
2x2 pixels à partir d’une entrée de pixels 4x4.
CHAPTER 2 — Les réseaux de neurones 19

FIGURES 2.8 – Exemple de fonctionnement de Max pooling et Average pooling [Soh20]

D. Couche entièrement connectée (Fully-connected layer FC)

Cette couche est à la fin du réseau. Elle permet la classification de l’image à partir des caractéristiques
extraites par la succession de bloc de traitement. Elle est entièrement connectée, car toutes les entrées de
la couche sont connectées aux neurones de sorties de celle-ci. Ils ont accès à la totalité des informations
d’entrée. Chaque neurone attribue à l’image une valeur de probabilité d’appartenance à la classe i parmi les
C classes possibles. Chaque probabilité est calculée à l’aide de la fonction « softmax » dans le cas où les
classes sont exclusivement mutuelles.

E. Couche de normalisation par lots (Batch normalization layer BN)

La normalisation par lots est une technique d’apprentissage de réseaux de neurones profonds pour améliorer
la vitesse, la performance et la stabilité des réseaux de neurones artificiels. Elle est utilisée pour normaliser
le volume d’entrée avant de le transmettre à la couche suivante du réseau.

F. Couche d’abandon (Dropout layer DO)

Est une méthode pour réduire le surajustement et améliorer l’erreur de généralisation dans les réseaux
neuraux profonds dont il déconnecte aléatoirement les entrées de la couche précédente avec une
probabilité
20 CHAPTER 2 — Les réseaux de neurones

p, ce qui permet d’éviter le sur-apprentissage. En particulier, les couches CONV, FC et BN effectuent des
transformations qui sont fonction non seulement des activations dans le volume d’entrée, mais aussi des
paramètres (les poids et biais des neurones), d’autre part, Les couches RELU/POOL implémenteront une
fonction fixe. Notez que certaines couches contiennent des paramètres et d’autres non.

2. 3. 3 Les Architectures de CNN


De nos jours, les CNNs sont considérés comme les algorithmes les plus largement utilisés parmi les
inspirés des techniques d’Intelligence Artificielle (IA).
L’histoire de CNN commence par le neurobiologique expériences menées par Hubel et Wiesel (1959,
1962). [eQV19]
Leur travail a fourni une plate-forme pour de nombreux modèles cognitifs, et CNN a remplacé presque tous
ceux-ci. Au fil des décennies, différents efforts ont été menés pour améliorer les performances des CNNs.
Il existe de nombreuses architectures CNNs réputées. Les architectures CNNs les plus populaires sont don-
nées dans la figure 2.14.

FIGURES 2.9 – Histoire évolutive des CNNs montrant les innovations architecturales. [eQV19]

2. 3. 3. 1 LeNet-5
LeNet était le CNN le plus archétype développé par Yann LeCun en 1990 [eQV19] et amélioré plus
tard en 1998. L’architecture LeNet la plus efficace et la plus connue et elle a été utilisé pour lire les codes
postaux, les chiffres, etc.

Cette architecture contient 4 couches convolutive (CONV) et mise en commun (Pooling) alternées,
CHAPTER 2 — Les réseaux de neurones 21

suivies de 3 couches entièrement connectées (fully-connected). LeNet était la première architecture CNN,
qui non seulement réduit le nombre de paramètres mais a pu apprendre les caractéristiques de pixels bruts
automatiquement.

FIGURES 2.10 – Architecture LeNet-5.

2. 3. 3. 2 AlexNet

La première architecture CNN célèbre est AlexNet, qui popularise le CNN en vision par ordinateur
(computer vision), développé par Alex Krizhevsky, Ilya Sutskever et Geoff Hinton [eQV19]. Plus tard, en
2012, AlexNet a été présenté au défi ImageNet ILSVRC et il a considérablement dépassé les performances
du deuxième finaliste.
AlexNet contient 5 couches convolutives avec des unités linéaires rectifiées (ReLU) comme fonctions
d’activation, 3 couches Max Pooling et 3 couches entièrement connectées (FC).

FIGURES 2.11 – Architecture AlexNet.


22 CHAPTER 2 — Les réseaux de neurones

2. 3. 3. 3 VGG

L’utilisation réussie des CNNs dans les tâches de reconnaissance d’image a accéléré la recherche en
conception architecturale. À cet égard, Simonyan et al ont proposé un principe de conception simple et
efficace pour les architectures CNNs. Leur architecture, nommé comme le Groupe visuel Géométrie (VGG)
de l’université d’Oxford, Sa principale réalisation a été de remplacé les filtres 11x11 et 5x5 avec une pile
de 3x3 couche de filtres.
L’utilisation de filtres de petite taille offre un avantage supplémentaire de faible complexité de calcul en
réduisant le nombre de paramètres.

FIGURES 2.12 – Architecture VGG16.

FIGURES 2.13 – Architecture VGG19.


CHAPTER 2 — Les réseaux de neurones 23

2. 3. 3. 4 Inception-V3

Inception-V3 est une version améliorée d’Inception-V1 et V2 proposée par Christian Szegedy et al.
[eQV19]
L’idée d’Inception-V3 était de réduire le coût de calcul des réseaux profonds (Deep networks) sans affecter
la généralisation. À cette fin, Szegedy et al. Remplacement des filtres de grande taille (5x5 et 7x7) par
des filtres petits et asymétriques (1x7 et 1x5) et la convolution 5x5 est transformée en deux opérations de
convolution 3x3.

FIGURES 2.14 – Architecture Inception-v3.

2. 3. 3. 5 ResNet

Kaiming He et al. [eQV19] ont développé un réseau résiduel (ResNet). Cette architecture CNN présente
des connexions de saut uniques et une utilisation essentielle de la normalisation par lots (Batch
Normalization). Encore une fois, l’architecture n’a pas de couches entièrement connectées à la fin du réseau.
Le principal inconvénient de ce réseau est qu’il est très coûteux à évaluer en raison de la vaste gamme de
paramètres. Cependant, jusqu’à présent, ResNet est considéré comme un modèle de CNN à la pointe de la
technologie et constitue l’option par défaut pour l’utilisation des ConvNets dans la pratique. Il avait été le
gagnant de l’ILSVRC 2015.
24 CHAPTER 2 — Les réseaux de neurones

FIGURES 2.15 – Architecture ResNet.

FIGURES 2.16 – Block Identity et convolution de ResNet.

2. 3. 3. 6 Xception

François Chollet de Google [eQV19] a proposé l’architecture extrême Inception nommée Xception, où
les modules Inception ont été remplacés par des modules modifiés "depthwise separable convolutions." qui
ont été proposé par Laurent Siphre en 2014.
CHAPTER 2 — Les réseaux de neurones 25

FIGURES 2.17 – Architecture Xception.

FIGURES 2.18 – Conv A, B, C de Xception.

2. 3. 3. 7 DenseNet
Le réseau convolutive dense (DenseNet) introduit par Huang et al., est une architecture de réseau où
chaque couche est directement connectée à toutes les autres couches de manière anticipée (dans chaque
bloc dense). Ce type de connexion est appelé connectivité dense. Pour chaque couche, les cartes d’entités
de toutes les couches précédentes sont traitées comme des entrées distinctes tandis que ses propres cartes
d’entités sont transmises en tant qu’entrées à toutes les couches suivantes.
26 CHAPTER 2 — Les réseaux de neurones

FIGURES 2.19 – Architecture DenseNet-121.

2. 3. 3. 8 MobileNet-V1

MobileNet est une architecture légère développée par Howard et al. [eQV19] de Google, le modèle
MobileNet est conçu pour être utilisé dans des applications mobiles, cette architecture utilise des
convolutions séparables en profondeur.
Il réduit considérablement le nombre de paramètres par rapport au réseau avec des convolutions régulières
avec la même profondeur dans les filets. Il en résulte des réseaux de neurones profonds légers.
Howard et al introduisent deux hyperparamètres globaux simples qui font un compromis efficace entre la
tance et précision. Ces hyperparamètres permettent au constructeur de modèles de choisir le modèle de la
bonne taille pour leur application sur les contraintes du problème.

Ces paramètres sont le multiplicateur de largeur ≪ α ≫ et le multiplicateur de résolution ≪ ρ ≫.


CHAPTER 2 — Les réseaux de neurones 27

FIGURES 2.20 – Architecture MobileNet-v1.


28 CHAPTER 2 — Les réseaux de neurones

2. 3. 3. 9 MobileNet-V2

La deuxième version de MobileNet proposée par Sandler et al. [eQV19] Il est basé sur une structure
résiduelle inversée où les connexions résiduelles sont entre les couches de goulot d’étranglement (bottleneck
layer). La couche d’expansion intermédiaire utilise des convolutions légères en profondeur pour filtrer les
entités en tant que source de non-linéarité.

FIGURES 2.21 – Architecture MobileNet-v2.


CHAPTER 2 — Les réseaux de neurones 29

2. 3. 3. 10 EfficientNet

Les CNNs sont couramment développés avec un budget de ressources fixe, puis mis à l’échelle pour une
meilleure précision si plus de ressources sont disponibles.
Tan et Le ont travaillé pour concevoir un nouveau réseau de base et le mettre à l’échelle pour obtenir une
famille de modèles [eQV19] En 2019, appelé EfficientNet.
Tan et Le proposent une nouvelle méthode de mise à l’échelle composée (EfficientNet), qui utilise un com-
posé a pour mettre à l’échelle uniformément la profondeur, la largeur et la résolution du réseau profondeur :

d = xz, (2.4)

Largeur :

w = yz , (2.5)

Résolution :

r = cz. (2.6)

x, y et c sont des constantes déterminées par une petite recherche de grille avec la contrainte que : ( xy2.c2

≈ 2) et (x ≥ 1, y ≥ 1, c ≥ 1).

2. 3. 1. 11Noisy Student

Noisy Student a été introduit par l’équipe de recherche de Google (Xie et al) en 2020. Noisy Student
Training est une approche d’apprentissage semi-supervisée. Il étend l’idée d’auto-formation et de distillation
avec l’utilisation de modèles d’élèves égaux ou plus grands et de bruit ajouté à l’élève pendant l’apprentis-
sage.
30 CHAPTER 2 — Les réseaux de neurones

FIGURES 2.23 – Architecture Noisy Student.

2. 4 Apprentissage des réseaux de neurones

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. Deux modes d’apprentissage existent : l’apprentissage
supervisé,et l’apprentissage non supervisé. [k97]

2. 4. 1 L’apprentissage supervisé

Dans ce type d’apprentissage, les entrées et les sorties sont fournies au préalable. Ensuite, le réseau
traite les entrées et compare ses résultats aux sorties souhaitées. Les poids sont ensuite ajustés grâce aux
erreurs propagées à travers le système. Ce processus se produit à plusieurs reprises tant que les poids sont
continuellement améliorés. L’ensemble de données qui permet l’apprentissage est appelé l’ensemble
d’apprentissage. [k97]
CHAPTER 2 — Les réseaux de neurones 31

FIGURES 2.24 – L’apprentissage supervisé

2. 4. 2 L’apprentissage non supervisé


Dans l’apprentissage non supervisé, le réseau est fourni avec des entrées mais pas avec les sorties souhaitées.
Le système lui-même doit alors décider quelles fonctionnalités il utilisera pour regrouper les données
d’entrée. C’est ce qu’on appelle souvent l’auto-organisation ou l’adaptation. [k97]

FIGURES 2.25 – L’apprentissage non supervisé

2. Conclusion
Dans ce chapitre, nous avons présenté les concepts de bases liés aux réseaux de neurones. Dans nos
jours, l’utilisation de ce genre d’algorithmes est en pleine expansion, et cela dû aux résultats qu’il fournit.
Nous allons faire de même, et utiliser ce concept dans ce travail pour concevoir un algorithme de
détection de fatigue. Nous donnons les détails de conception de cet algorithme dans le quatrième chapitre.
CHAPITRE 3

D ÉTECTION DE LA FATIGUE ET LA
SOMNOLENCE CHEZ LE
CONDUCTEUR : ÉTAT DE L’ART

Préambule
es expressions faciales transmettent des signaux non verbaux qui jouent un rôle important dans la
L communication entre les êtres humains. Notre cerveau est capable d’effectuer une étude du visage en
un fragment de seconde afin de déterminer les relations et les connexions complexes reflétant l’état d’esprit
et le comportement d’un individu. Cette étude débute par une analyse des structures basiques du visage
afin d’obtenir une impression générale, suivie par une analyse des formes, puis une reconnaissance de la
disposition spatiale des caractéristiques faciales. Dans ce chapitre, nous nous intéressons à la détection de
la fatigue et la somnolence chez le conducteur à travers l’analyse de ses caractéristiques faciales.

3. 1 Définition de la somnolence
La somnolence est un état qui précède le sommeil ou encore un fort désire de sommeil. La somnolence
peut être dangereuse lorsqu’ un certain niveau de concentration est nécessaire telle que la conduite de
véhicules. La somnolence n’est pas seulement ressentie lorsqu’il y a de la fatigue, mais elle peut l’être
lorsque la personne est sous l’influence de drogues, de médicaments ou d’alcool. Selon Dr Fouzia Kadiri,
présidente de la SMSV, la somnolence et l’endormissement au volant sont la source d’1 accident mortel sur 3 sur
l’auto- route, citée par le communiqué, ajoutant que des études récentes publiées en 2013 et 2014 rapportent
que 30% des accidents sur autoroute sont dus à l’endormissement au volant et que la somnolence est la
première cause de mortalité sur les routes.
33 CHAPTER 3 — Détection de la fatigue et la somnolence chez le conducteur : État de l’art

3. 2 Les expressions faciales


Tout d’abord, il est important de faire la distinction entre la reconnaissance des expressions faciales et la
reconnaissance d’émotions. Les émotions résultent de plusieurs facteurs et peuvent être révélées par la voix,
la posture, les gestes, la direction de regard et les expressions faciales. Par contre, les émotions ne sont pas la
seule origine des expressions faciales. En effet, celles-ci peuvent provenir de l’état d’esprit (ex : la réflexion),
de l’activité physiologique (la douleur ou la fatigue) et de la communication non verbale (émotion simulée,
clignotement de l’œil, froncement des sourcils).

FIGURES 3.1 – Modèle de visage basé sur des courbes paramétrées [YlT01] (a) Modèle. (b) Mesures
associées au modèle

3. 3 Méthodes d’analyse de visage


Il existe des différentes modélisations informatiques du visage utilisées dans la littérature. Il peut s’agir
de modèles qui servent aussi bien à l’analyse de l’identité qu’à l’analyse des expressions. Nous avons
distingué deux types de méthodes : celles basées sur une segmentation explicite du visage en composantes
et une description des caractéristiques de ces composantes faciales et celles basées directement sur des
caractéristiques de l’image dans sa globalité. De plus, on présent en tant que méthodes hybrides.
CHAPTER 3 — Détection de la fatigue et la somnolence chez le conducteur : État de l’art 34

3. 3. 1 Approche globale sans segmentation

La modélisation la plus simple du visage, consiste à prendre en compte un ensemble de points du visage
représentant l’état de certaines composantes. Ces points doivent correspondre à des indices visuels qu’il est
possible de mettre en correspondance sur toutes les observations de l’étude. Les points à analyser sont
différents quand il s’agit d’analyser l’identité de quand il s’agit d’analyser l’expression. Un visage peut âtre
caractérisé par les coordonnées de chacun des points du modèle ainsi que par la valeur des pixels en leur
voisinage, permettant de définir un descripteur de visage plus puissant que l’image brute. Certaines
méthodes considèrent un traitement particulier en chacun des points d’intérêt : le résultat du traitement en
chacun des points formant le vecteur d’entrée du système d’analyse [SB03].

LITTLEWORT et al. proposent un système d’analyse automatique des expressions faciales. Il s’agit
d’un système de classification permettant de détecter la présence d’action unit ainsi que leur intensité au
cours d’une vidéo. L’extraction des données utiles à la classification se fait à partir de la texture du visage
quasiment brute : le visage et les yeux sont détectés par des techniques proches de celles développées par
VIOLA et JONES [eMJJ04]. L’image du visage est alors normalisée en une fenêtre de 96x96 pixels où les
yeux sont à une position fixe. Les caractéristiques extraites sont les réponses d’un ensemble de filtres de
Gabor à différentes échelles et orientations en chacun des pixels de l’image (représentant au total plus de
650 000filtres). Les réponses des filtres de Gabor sont alors données en entrée à des SVM (Un SVM est
utilisé pour chaque action unit à détecter). Chaque SVM a été précédemment entraîné sur la base
COHNKANADE : la présence de l’action unit est la réponse positive, et une réponse négative est renvoyée
dans tous les autres cas.

Le système dans son ensemble permet un taux de reconnaissance de plus de 90%. De plus,
l’utilisation des SVM permet de mesurer l’intensité de l’action unit reconnue. Le principal avantage
résidedans le fait que les techniques d’apprentissage et de classification sont génériques et il est donc aisé
d’ajouter de nouvelles actions unit à détecter, à condition d’avoir la base d’apprentissage correspondante.
Cependant,le système n’est capable que de traiter des visages vus de face et sans occultations. [SB03]
35 CHAPTER 3 — Détection de la fatigue et la somnolence chez le conducteur : État de l’art

FIGURES 3.2 – Quelques exemples des unités d’actions faciales présentés par le FACS [SB03]

3. 3. 2 Approche avec segmentation

L’approche basée sur l’analyse des composantes faciales consiste à employer une méthode particulière
d’analyse pour chacune des composantes faciales. Dans cette catégorie, on trouve des techniques basées sur
des modèles paramétriques : il s’agit d’un ensemble de points d’intérêts des composantes faciales liés entres
eux par certaines contraintes. Il s’agit généralement de contraintes imposées sur la forme de la composante.
Par exemple, les lèvres, qui sont des composantes très étudiées, ont des contours bien marqués et peuvent
donc être modélisées par des polynômes ou bien encore par des formes plus libres. Les techniques d’analyse
consistent alors à superposer les contours du modèle utilisé avec les contours réels ; il s’agit généralement
de méthode d’optimisation, maximisant un critère de ressemblance (la répartition des points à fort contraste
sur les contours du modèle par exemple). [SB03]

MORIYAMA et al. [TM06] présentent une méthode précise d’analyse des mouvements de l’œil. La
méthode est basée sur l’utilisation d’un modèle génératif de l’œil humain : il s’agit d’un modèle 2D texturé,
organisé en couches plus ou moins transparentes. L’œil est découpé en plusieurs sous composantes :
paupières, sourcils, iris, etc. auxquelles est associé un ensemble de paramètres de forme et d’aspect
(intensité lumineuse et couleur). Les paramètres permettent de faire évoluer le modèle selon une
morphologie particulière (paramètres de structure) ou selon une expression particulière (paramètres de
mouvement).
CHAPTER 3 — Détection de la fatigue et la somnolence chez le conducteur : État de l’art 36

Le but de l’algorithme est de trouver les paramètres du modèle à chaque image, afin que celui-ci
ressemble le plus possible à l’image observée. Une fois le visage normalisé en forme (en prenant en compte
les rotations et en redressant l’image via l’utilisation d’une méthode de suivi de demi cylindre 3D) et en
luminosité, les auteurs utilisent l’algorithme de Lucas Kanade [SB03] , modifié de façon à prendre en compte
les déformations possibles du modèle.
Bien que la position du modèle soit initialisée manuellement sur la première image de chaque séquence à
analyser, les résultats sont excellents en termes de robustesse et de précision. Cependant, ce type de modèle
est très difficile à développer. En effet la forme de chacune des composantes doit être fidèlement modélisée
ainsi que ses variations possibles d’aspect. De plus, les variations de forme et d’aspect doivent être
différenciées selon qu’elles sont dues à des variations interpersonnelles (variations morphologiques) ou à
des variations intra-personnelles (variations expressives). [SB03]

FIGURES 3.3 – Modèle génératif de l’œil utilisé dans le modèle de MORIYAMA [TM06]

3. 4 Utilisation des expressions faciales pour la détection de la


fatigue
Les expressions faciales sont l’une des plus importantes sélections visuelles, parmi les sélections visuelles
existantes, on trouve le mouvement de paupières, la détection de la direction du regard, le mouvement de la
tête, et les expressions faciales. Ainsi les expressions faciales d’une personne en état de fatigue ou bien d’une
personne au début de la fatigue sont souvent caractérisées par le traînement des muscles et le bâillement.
Le développement des systèmes actifs pour alerter un conducteur et surveiller son niveau de vigilance est
très important pour tenir les conducteurs réveillés et par conséquent réduire le nombre d’accidents. Certains
efforts ont été rapportés dans la littérature sur le développement des systèmes actifs pour surveiller la fatigue
en temps réel, mais la majorité de ces systèmes emploient une seule sélection visuelle ce qui est insuffisant.
On peut utiliser différentes techniques pour analyser l’épuisement du conducteur :
37 CHAPTER 3 — Détection de la fatigue et la somnolence chez le conducteur : État de l’art

— Un ensemble de techniques place des capteurs sur des composants de véhicule standard, par exemple
un volant, une pédale d’accélérateur, et analyse les signaux envoyés par ces capteurs pour détecter
la somnolence.
— Un deuxième ensemble de techniques se concentre sur la mesure de signaux physiologiques tels que
la fréquence cardiaque, le pouls et l’électroencéphalographie (EEG). Des chercheurs ont rap- porté
que plus le niveau de vigilance diminuait, plus la puissance EEG des bandes alpha et thêta
augmentait. Donnant ainsi des indicateurs de somnolence. Cependant, cette méthode présente des
inconvénients sur le plan pratique car elle oblige une personne à porter une casquette EEG pendant
la conduite.
— Un troisième ensemble de solutions est axé sur les systèmes de vision par ordinateur capables de
détecter et de reconnaître le mouvement du visage et les changements d’apparence se produisant
pendant la somnolence.

3. 5 L’état du conducteur
La capacité du conducteur à conduire peut-être déterminée par la façon dont il / elle se comporte
au volant. Les comportements révélateurs de fatigue ou d’autres situations de conduite dangereuse, telles
que la distraction, se manifestent sous forme de bâillements, cligner des yeux, fermer les yeux, bouger la
tête, utiliser un appareil mobile ou avoir une vue dégagée. La première étape vers la détection de la
somnolence en fonction des caractéristiques comportementales consiste à détecter le visage du
conducteur.Dans ce cas, la zone de recherche de tout trait du visage sera réduite à la région du visage. Il
existe de nombreuses techniques pour le traitement de détection de visage ; des images contenant des
visages ont été développées dans différentes catégories de recherche telles que la reconnaissance des
visages, le suivi des visages, l’estimation de la pose et la reconnaissance de l’expression. Pour construire
un système capable d’analyser les informations incluses dans les images de visage, un algorithme de
détection de visage robuste et efficace est requis. Et reste l’objectif de la détection de visage est de
reconnaître toutes les régions d’image contenant un visage sans tenir compte de sa position, de son
orientation et des conditions d’éclairage. Et pour notre recherche, nous nous concentrons sur ces trois
détections :

● Détection faciale
Pour la détection de visage elle-même, plusieurs approches ont été utilisées dans la littérature connexe.
Les méthodes basées sur la connaissance tentent de coder la connaissance humaine sur les caractéristiques
d’un visage typique, telles que les relations entre les traits du visage, et de les utiliser comme moyen de
détecter des visages dans une image. Le but des approches invariantes des caractéristiques est de trouver des
caractéristiques structurelles du visage, telles que les sourcils, les yeux, le nez, la bouche et les cheveux, qui
CHAPTER 3 — Détection de la fatigue et la somnolence chez le conducteur : État de l’art 38

Persistent sous diverses poses, points de vue ou éclairages et de les utiliser pour détecter les visages. Ces
caractéristiques sont principalement extraites à l’aide de détecteurs de bord.

FIGURES 3.4 – Points faciaux. (a) Modèle de visage à vue frontale. (b) Modèle de visage en vue de côté.
[eMJJ04]

FIGURES 3.5 – Points caractéristiques du visage selon [eMJJ04]

● Détection des yeux


Différentes méthodes de détection de la fatigue du conducteur sont mises en œuvre par d’autres chercheurs
qui se concentrent sur les changements et les mouvements oculaires. Ces techniques analysent les
changements dans la direction du regard du conducteur, la fermeture des yeux et la fréquence de
clignotement.
39 CHAPTER 3 — Détection de la fatigue et la somnolence chez le conducteur : État de l’art

FIGURES 3.6 – Quelques exemples des unités d’actions faciales présentés par le FACS [SB03]

● Détection du bâillement
La méthode de seuil adaptatif peut être utilisée pour segmenter la zone en mouvement dans laquelle se
trouvent le contour du visage et de la tête pour cette localisation. L’emplacement du menton et des narines
est déterminé à l’étape suivante en fonction de l’emplacement du menton dans la moitié inférieure de la
région du visage. La projection intégrale directionnelle sera utilisée pour trouver le milieu des narines. L’état
de bâillement est déterminé en fonction du calcul de la distance entre le menton et l’emplacement du point
médian des narines.

- Selon VIOLA-JONES [eMJJ04], le stade de bâillement sera déterminé en déterminant le degré


d’ouverture de la bouche en fonction du rapport de format du rectangle englobant la bouche. Une grande
ouverture de la bouche au-dessus d’un seuil prédéfini pour un nombre continu d’images signifie que le
conducteur est fatigué.

- Selon la méthode d’ALIOUA et al., la transformation circulaire de Hough sera appliquée sur les régions
extraites des yeux et de la bouche afin de déterminer la situation de bâillement. La condition de bâillement
est détectée si la grande zone sombre avec une forme circulaire qui montre la bouche est largement ouverte.
CHAPTER 3 — Détection de la fatigue et la somnolence chez le conducteur : État de l’art 40

3. 6 Conclusion
Dans ce chapitre, nous avons présenté une revue des principales approches permettant d’effectuer la
détection de la somnolence et la fatigue. Ces approches nous ont inspirées pour développer notre approche
expérimentale.
CHAPITRE 4

DÉTECTION DE LA SOMNOLENCE ET LA
FATIGUE EN TEMPS RÉEL : CONCEPTION
ET IMPLÉMENTATION

Préambule
ans les chapitres précédents, nous avons présenté une étude théorique sur l’analyse des expressions
D faciales et les CNNs ainsi que la possibilité de les utiliser pour la détection de la somnolence et la
fatigue chez les conducteurs. Dans ce chapitre, nous allons mettre en pratique ce concept et proposer un
algorithme de la détection de la somnolence et la fatigue en temps réel qui a comme but de surveiller le
conducteur pour détecter un éventuel état de somnolence.

4. 1 Conception générale de notre algorithme proposé


Le nombre d’accidents de la route dus à la somnolence au volant augmente à un rythme alarmant dans
le monde. Le fait de ne pas bien dormir est la principale raison de la somnolence au volant. Cependant,
d’autres raisons comme les troubles du sommeil, les médicaments, la consommation d’alcool ou la conduite
pendant les quarts de nuit peuvent également causer la somnolence au volant.
L’objectif de cette application est de présenter une solution pour la détection de la somnolence du conducteur
à l’aide d’un CNN et lips aspect ratio (LAR). La mise en œuvre du projet utilise une architecture CNN
personnalisée avec moins de 250 000 paramètres pouvant être formés pour un déploiement facile sur des
appareils périphériques ou moins efficaces en termes de calcul. Par conséquent, le conducteur peut être
alerté au bon moment si l’algorithme détecte qu’il s’est endormi avant que quelque chose de dangereux ne
se produise. L’entrée de notre algorithme est une séquence des trames (vidéo) puis l’algorithme analyse
chaque image séparément. Ce processus se fait dans quatre étapes principales :
42 CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation

Premièrement on détecte le visage dans chaque image. Après on détecte les deux yeux (gauche et droit) du
visage. Par la suite, on détecte l’état des yeux en utilisant notre modèle CNN ainsi que l’état de la bouche
avec le calcul du LAR (s’il y a un bâillement ou non). Finalement on détecte l’état du conducteur à partir
des résultats obtenus précédemment (envoyer un alert).
Cet organigramme (figure 5.1) illustre tous ce que nous avons traité ci-dessus.

FIGURES 4.1 – L’organigramme de l’algorithme


CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation 43

4. 2 Implémentation

4. 2. 1 Logiciels et librairies utilisés


4. 2. 1. 1 Colaboratory

On n’a pas besoin d’utiliser un ordinateur de grande capacité et d’une bonne carte graphique car on a
travaillé dans Google Colaboratory, souvent raccourci en "Colab". C’est un produit de Google Research et
un service cloud, basé sur Jupyter Notebook et destiné à la formation et à la recherche dans l’apprentissage
automatique. Cette plateforme permet d’entraîner des modèles de Machine Learning directement dans le
cloud. Sans donc avoir besoin d’installer quoi que ce soit sur notre ordinateur à l’exception d’un navigateur.

FIGURES 4.2 – Logos des outils utilisés dans cette étude.

4. 2. 1. 2 Python

Python est un langage de programmation généraliste lancé par GUIDO VAN ROSSUM qui est devenu
très populaire très rapidement, principalement pour sa simplicité et sa lisibilité du code. Il permet au
programmeur d’exprimer des idées en moins de lignes de code sans réduire la lisibilité. Comparé à des
langages tels que C / C ++, Python est plus lent. Cela dit, Python peut facilement être étendu avec C / C
++, ce qui nous permet d’écrire du code exigeant en calculs intensifs en C / C ++ et de créer un
environnement Python utilisable en tant que modules Python. Cela nous donne deux avantages :
premièrement, le code est aussi rapide que le code original C / C ++ (puisqu’il s’agit du code C ++ réel
travaillant en arrière-plan) et deuxièmement, il est plus facile de coder en Python que C / C ++. OpenCV-
Python est une enveloppe Python pour l’implémentation d’origine OpenCV C ++ et nous allons utiliser
cette bibliothèque pour réaliser notre travail.
44 CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation

4. 2. 1. 3 OpenCV

OpenCV « Open Source Computer Vision Library » est une bibliothèque écrite en C++ conçue pour
résoudre les problèmes de vision par ordinateur. OpenCV a été développé à l’origine en 1999 par Intel,
mais il a ensuite été pris en charge par WILLOW GARAGE. OpenCV est utilisable avec une grande variété
de langages de programmation tels que C ++, Python, Java, etc. Il peut aussi être exécuté sous plusieurs
plates-formes, notamment Windows, Linux et MacOS. OpenCV-Python utilise NumPy « Numeric Python
», qu’est une bibliothèque hautement optimisée pour les opérations numériques avec une syntaxe proche de
celle MATLAB. Toutes les structures de tableau OpenCV sont converties vers et à partir de tableaux
NumPy. Cela facilite également l’intégration avec d’autres bibliothèques utilisant NumPy, telles que SciPy
« Scientific library » et Matplotlib « Plotting library ».

4. 2. 1. 4 Keras

A présent, nous connaissons déjà l’apprentissage automatique, une branche de l’informatique qui étudie
la conception d’algorithmes pouvant apprendre. Ici, nous allons nous concentrer sur l’apprentissage en
profondeur, un sous-champ de l’apprentissage automatique constitué d’un ensemble d’algorithmes inspiré
de la structure et des fonctions du cerveau. Ces algorithmes sont généralement appelés réseaux de neurones
artificiels (RNA). L’apprentissage en profondeur est l’un des domaines les plus appliqués pour l’analyse des
données. De nombreuses études de cas ont donné des résultats impressionnants dans les domaines de la
robotique, de la reconnaissance d’images et de l’intelligence artificielle. Keras est l’une des bibliothèques
Python les plus puissantes et les plus faciles à utiliser pour développer et évaluer des modèles d’apprentis-
sage en profondeur. Il enveloppe les bibliothèques de calcul numériques efficaces, en l’occurrence, Theano
et TensorFlow.
L’avantage son utilisation est principalement de pouvoir d’utiliser les réseaux de neurones de manière simple
et amusante.

4. 2. 1. 5 TensorFlow

TensorFlow est une plate-forme Open Source de bout en bout dédiée au machine learning. Avec
TensorFlow, il est plus facile aux débutants comme aux experts de créer des modèles de machine learning.
Consultez les sections ci-dessous pour vous lancer. Les API TensorFlow de haut niveau sont basées sur
l’API Keras, qui constitue un standard en termes de définition et d’entraînement de réseaux de neurones.
Keras permet le prototypage rapide, la recherche de pointe et le passage en production, le tout avec des API
conviviales.
CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation 45

4. 2. 2 Description des processus de notre algorithme

4. 2. 2. 1 Méthodologie de détection de visage

L’étape de détection permet de décider exclusivement sur l’existence ou non d’un visage dans une image.
Nous avons donc besoin d’un détecteur (classifieur) de visages permettant de chercher les caractéristiques
relatives à ce dernier. La bibliothèque OpenCV contient la méthode de détection de visages « VIOLA JONES
» qui donne comme résultat une liste de fichiers « .xml » dits classifieurs en cascade de Haar. Nous avons
aussi utilisé les fonctions de cette même bibliothèque pour détecter le visage dans chaque frame de la
séquence vidéo. Les coordonnées du visage détectésont passées à une fonction chargée d’englober ce dernier
dans un rectangle tout en traitant les séquences vidéo image par image. Cette fonction permet de suivre
implicitement le mouvement du visage détecté. Nous avons aussi synchronisé le dessin de rectangles
englobants avec la détection afin qu’ils prennent en charge toute modification de position et de dimension
du visage La fonction Haar consiste à soustraire la somme de toutes les valeurs de pixels du rectangle
blanc de la somme de toutes les valeurs de pixels du rectangle noir dans la figure ci-dessous.

FIGURES 4.3 – Détection de visage à l’aide de Haar Cascades [Lu10]


46 CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation

4. 2. 2. 2 Définition d’une segmentation spatiale du visage

Après avoir détecté le visage, nous avons utilisé la bibliothèque dlib pour localiser les régions contenant
les éléments significatifs du visage tels que la bouche, les yeux (les points caractéristiques). C’est la méthode qui
exploite les connaissances a priori relatives à la répartition spatiale du visage humain. Autrement dit, la
géométrie d’un visage humain ici est toujours formée de bas vers le haut d’un front, menton, bouche, nez,
yeux et sourcils. Dans la figure, nous montrons comment nous avons traité la détection des yeux et de la
bouche selon le visage et déterminer les coordonnées du rectangle englobants la bouche et les yeux, après
avoir récupéré les coordonnées du visage.

FIGURES 4.4 – Segmentation spatiale du visage.

4. 2. 2. 3 Classification avec CNN

● Architecture de modèle
La mise en œuvre utilise un CNN conçu sur mesure qui présente les caractéristiques suivantes :
► Trois blocs de convolution ayant respectivement 2, 3 et 3 couches de convolution.
► Une couche de normalisation « Batch Normalisation » par lots suit chaque couche de convolution.
► Une couche Dropout suit chaque bloc de convolution pour éviter le surajustement et une couche
Max Pool.

► 3 couches entièrement connectées suivent les couches de convolution pour la classification


CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation 47

FIGURES 4.5 – Définition du modèle à l’aide de Keras


48 CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation
CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation 49

Le modèle a été compilé avec l’optimiseur Adam et un taux d’apprentissage de 0,0001.

FIGURES 4.6 – Architecture du modèle CNN proposé.


50 CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation

● Ensemble de données de détection de somnolence

Le projet utilise le Drowsiness-dataset présent sur la plateforme Kaggle. L’ensemble de données


d’origine contient quatre classes pour classer les images en yeux ouverts, yeux fermés, bâillement ou
sans bâillement. Cependant, on a utilisé LAR pour détecter le bâillement [kag20]. Donc, nous
n’utiliserons que deux classes de l’ensemble de données "dataset". Les caractéristiques de l’ensemble
de données sont les suivantes :
— L’ensemble de données contient un total de 1452 images dans deux catégories. Chaque catégorie
contient 726 images. L’ensemble de données est déjà équilibré, il n’est donc pas nécessaire
d’équilibrer l’ensemble de données. Étiquettes de classe « Œil ouvert » et « Œil fermé ».
— Les étiquettes de classe ont été codées de telle sorte que 0 représente l’œil ouvert et 1 illustre
l’œil fermé.

FIGURES 4.7 – Chargement du jeu de données

Prétraitez les images pour que la taille de chaque image soit égale à (32, 32, 3). Ensuite, l’ensemble
de données est divisé en Train et Test Set dans une proportion de 80% à 20%.
CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation 51

4. 2. 2. 4 Calcul du lips aspect ratio

Dans presque tous les algorithmes, où le bâillement est détecté comme un symptôme de fatigue, les
méthodes de reconnaissance sont établies de manière similaire. La caméra enregistre une image du visage.
La bouche est alors identifiée et son état (fermé ou ouvert) est détecté par analyse d’image. Si la bouche est
ouverte, nous devons décider s’il bâille. Dariusz Sawicki propose un système qui peut distinguer entre les
bâillements fréquents et l’ouverture de la bouche quand on parle, on chante où on sourira. Ce système est
composé de trois étapes principales la première est la distinction des lèvres, ceci se fait avec l’algorithme de
détection des repères faciaux et la deuxième étape est l’estimation de l’état de ces lèvres après le calcul de
rapport de la hauteur de la bouche à leur largeur c.à.d LAR. Dans la dernière étape, la distinction entre la
parole, le rire et le bâillement se fait en comparant LAR avec son seuil.

FIGURES 4.8 – Les repères de la bouche identifiés par FIGURES 4.9 – La formule du LAR. [OW]
l’algorithme modifié pour l’analyse du visage [OW]

FIGURES 4.10 – Un exemple de graphique qui représente le changement de la mesure Dyx pour les trois
différents types de l’ouverture de la bouche. [OW]
52 CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation

1. Importez d’abord le libaray dont nous avons besoin

2. Faire le programme pour cibler ou détecter le visage

3. Insérez le modèle dont nous avons besoin

4. Changer le BGR en niveaux de gris

5. Détecter le visage dans l’image en niveaux de gris

6. Convertir les coordonnées du point de repère facial en un numpy

7. Calculer les coordonnées/index pour la lèvre supérieure et inférieure


CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation 53

8. Déterminez le rapport d’aspect des lèvres pour le bâillement et le nombre d’images que la personne
a baillées

9. Insérer les index de la lèvre

FIGURES 4.11 – Le résultat de détection des points caractéristiques à partir du visage en utilisant dlib.

10. Changer les index dans le tableau numpy


54 CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation

11. Calculer le rapport d’aspect des lèvres

12. Détection de bâillement

4. 2. 3 Performances du notre modèle

4. 2. 3. 1 Formation du modèle

L’entraînement du modèle s’exécute sur un total de 200 époques avec une taille de lot de 128.
ImageDataGenerator est utilisé pour randomiser les images d’entraînement afin d’améliorer les
performances du modèle.

4. 2. 3. 2 Performances du modèle

Les mesures de performance suivantes sont utilisées pour :

▪ Tracé de la perte par rapport au nombre d’époques


▪ Tracé de la précision par rapport au nombre d’époques
▪ Rapport de classement
▪ Matrice de confusion
CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation 55

Les résultats des mesures mentionnées ci-dessus sont les suivants :

FIGURES 4.12 – Tracés de précision et de perte

4. 2. 3. 3 L’évaluation du modèle

L’évaluation est un processus au cours du développement du modèle pour vérifier si le modèle est le
mieux adapté au problème donné et aux données correspondantes. Le modèle Karas fournit une fonction,
évalue qui effectue l’évaluation du modèle.
56 CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation

4. 2. 3. 4 Rapport de classement

La fonction Python predict() nous permet de prédire les étiquettes des valeurs de données sur la base
du modèle entraîné. La fonction predict() n’accepte qu’un seul argument qui correspond généralement aux
données à tester.

4. 2. 3. 5 Matrice de confusion

En apprentissage automatique supervisé, la matrice de confusion est une matrice qui mesure la qualité
d’un algorithme de classification. Chaque ligne correspond à une classe réelle, chaque colonne correspond à
une classe estimée. La matrice de confusion est en quelque sorte un résumé des résultats de prédiction pour
un problème particulier de classification. Elle compare les données réelles pour une variable cible à celles
prédites par un modèle.
CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation 57

4. 2. 3. 6 Test du modèle

Les prédictions du modèle sur les images des yeux peuvent être vues dans les images suivantes:

4. 2. 3. 7 Construire un pipeline pour les prédictions sur les images complètes

La dernière étape de ce projet consiste à construire un pipeline pour faire des prédictions sur des images
de plein visage. Le canal comprend la détection des visages, l’alignement des visages, la détection des yeux,
le prétraitement du retour sur investissement de l’image, le passage au modèle pour la prédiction et
l’affichage des résultats sur l’image. La mise en œuvre est la suivante :
58 CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation

L’implémentation utilise la bibliothèque ’dlib’ pour la détection de visage dans l’image. L’alignement
du visage est effectué à l’aide de la classe FaceAlignment de la bibliothèque imutils.face_utils pour une
meilleure détection des yeux. La détection des yeux est effectuée à l’aide des classificateurs en cascade de
Haar.
CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation 59

Enfin, les résultats peuvent être visualisés comme suit :

FIGURE 4.13-Personne somnolente

FIGURES 4.14 – Personne non somnolente.


62 CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation
Concernant les résultats de la détection de la somnolence en temps réels on a utilise open cv a partir de ce programme suivant
import cv2
import dlib
from scipy.spatial import distance

def calculate_EAR(eye):
A = distance.euclidean(eye[1], eye[5])
B = distance.euclidean(eye[2], eye[4])
C = distance.euclidean(eye[0], eye[3])
ear_aspect_ratio = (A+B)/(2.0*C)
return ear_aspect_ratio

cap = cv2.VideoCapture(0)
hog_face_detector = dlib.get_frontal_face_detector()
dlib_facelandmark = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")

while True:
frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

faces = hog_face_detector(gray)
for face in faces:

face_landmarks = dlib_facelandmark(gray, face)


leftEye = []
rightEye = []

for n in range(36,42):
x = face_landmarks.part(n).x
y = face_landmarks.part(n).y
leftEye.append((x,y))
next_point = n+1
if n == 41:
next_point = 36
x2 = face_landmarks.part(next_point).x
y2 = face_landmarks.part(next_point).y
cv2.line(frame,(x,y),(x2,y2),(0,255,0),1)

for n in range(42,48):
x = face_landmarks.part(n).x
y = face_landmarks.part(n).y
rightEye.append((x,y))
next_point = n+1
if n == 47:
next_point = 42
x2 = face_landmarks.part(next_point).x
y2 = face_landmarks.part(next_point).y
cv2.line(frame,(x,y),(x2,y2),(0,255,0),1)

left_ear = calculate_EAR(leftEye)
right_ear = calculate_EAR(rightEye)

EAR = (left_ear+right_ear)/2
EAR = round(EAR,2)
if EAR<0.26:
cv2.putText(frame,"DROWSY",(20,100),
cv2.FONT_HERSHEY_SIMPLEX,3,(0,0,255),4)
62 CHAPTER 4 — Détection de la somnolence et la fatigue en temps réel : Conception et implémentation
cv2.putText(frame,"Are you Sleepy?",(20,400),
cv2.FONT_HERSHEY_SIMPLEX,2,(0,0,255),4)
print("Drowsy")
print(EAR)

cv2.imshow("Are you Sleepy", frame)

key = cv2.waitKey(1)
if key == 27:
break
cap.release()
cv2.destroyAllWindows()

Enfin, le résultat final peut être visualisé comme suit :

4. 3 Conclusion
Lors de ce chapitre nous avons introduit les détails de l’implémentations et de l’utilisation de notre
algorithme proposé. Nous avons donc présenté le modèle du réseau de neurones utilisé pour construire
un modèle de détection de la somnolence et la fatigue et un algorithme des expressions faciales pour le
bâillement.
C ONCLUSION GÉNÉRALE

La fatigue et la somnolence provoquant un retard d’une réaction physique et mentale ont toujours été
des facteurs de risque pour les conducteurs. Les statistiques effrayantes de l’impact de la somnolence et la
fatigue sur la route, ont été notre motivation pour le développement d’un algorithme basé sur l’apprentissage
profond en alertant les conducteurs à un stade précoce, ce qui entraîne une diminution du taux de mortalité.
Nous avons utilisé le CNN pour détecter l’état des yeux qui exprime la somnolence et le LAR pour la
détection du bâillement qui traduit la fatigue.

Comme perspectives, nous voulons implémenter le travail proposé sur un système embarqué afin de
réduire le temps de calcul et avoir une meilleure visualisation de son utilisation réelle. Ainsi, intégrer un
système d’éclairage infrarouge qui ne sera activé que pendant la nuit afin d’améliorer l’acquisition de la
scène. Et enfin enrichir le système en incluant une analyse de la direction du regard du conducteur pour
contrôle plus précisément son centre d’intérêt.
Bibliographie
[Ahm17] H. M. Ahmed. Commande de la machine asynchrone à double alimentation - apport des tech-
niques de l’intelligence artificielle. In Theses, 2017. 9
[Axi19] Axiocode. Utilisations de l’intelligence artificielle. In https://www.axiocode.com/avantages-
inconvenients-intelligence-artificielle/, 2019. 1, 2

[Bel] Djamel Belhaouci. Architecture des réseaux de neurones. In


https://www.juripredis.com/fr/blog/id-19-demystifier-le-machine-learning-partie-2-les-reseaux-
de-neurones-artificiels. 15
[Cht17] S. Chtita. Modélisation de molécules organiques hétérocycliques biologiquement actives par des
méthodes qsar/qspr recherche de nouveaux médicaments. In Theses, 2017. 10
[Cim19] V. Cimino. L’ia peut réaliser un diagnostic médical avec plus de précision qu’un hu- main.
In https ://siecledigital.fr/2019/09/25/lia-peut-realiser-un-diagnostic-medical-avecplus- de-
precision-quun-humain/, 2019. 7
[CM17] Cheng P. P. M. MD Vorontsov M. E. Drozdzal B. E. S. M. Turcotte P. S. Pal M. C. J. Kadoury P.
S. Tang P. A. Chartrand, G. and MSc. Deep learning : A primer for radiologist. November 2017.
1
[Det15] T. Dettmers. Deep learning in a nutshell: Core concepts | nvidea developer blog, nvidea. In
https://developer.nvidia.com/blog/deep-learning-nutshell-core-concepts/, 03 November 2015. 16
[Emi22] Myriam Emilion. Les différents algorithmes du deep learning. In https://www.jedha.co/blog/les-
algorithmes-de-deep-learning, 2022. 5
[eMJJ04] Paul Viola et Michael J. Jones. Robust real-time face detection. In International Journal of
Computer Vision, pages 137–154, 2004. 34,37,38
[eQV19] M.Tan et Q. V.Le. Efficientnet: Rethinking model scaling for convolutional neural networks. In
arXiv preprint arXiv:1905.11946, 2019. 20, 21, 23, 24, 26, 28, 29

[eYB] Sandra Pietrowska et Yoann Benoit. In http://staff.univ-batna2.dz/sites/default/files/merzougui-


ghalia/files/support-de-cour-deep-learning-master2-sds-partie1.pdf. 3
[GB] Bernhard Schlkopf Alexander J. Smola Ben Taskar S.V.N Vishwanathan Gkhan BakIr, Tho-
mas Hofmann. In Predicting Structured Data. MIT Press, Cambridge, MA. 3,2
[GD02] M. Samuelides M. Gordon F. Badran S. Thiria L. Hérault G. Dreyfus, J. Martinez. Réseaux de
neurones : méthodologie et application. In Eyrolles, 2002. 12,16
63 BIBLIOGRAPHIE

[k97] G. k. An introduction to neural networks. 1997. 30, 31


[kag20] Ensemble de données de détection de somnolence. In
https://www.kaggle.com/datasets/dheerajperumandla/drowsiness-dataset, 2020. 50
[KOS19] K. K. KOSSI. L’intelligence artificielle face à la fraude bancaire. 28 marsepuis. In
//blog.economie-numerique.net/2019/03/28/lintelligenceartificielle face-a-la-fraude-bancaire/.,
2019. 8
[Lu10] Shih-Lien Lu. In https://www.researchgate.net/figure/Face-detection-flow-based-on-the-Haar-
classifier-fig1-224141453, 2010. 45
[OW] Michal Ochocki and Dariusz Sawicki Warsaw. Yawning recognition based on dynamic analysis
and simple measure. In Measurements and Information Systems, Warsaw, Poland. 51
[Ret21] Retengr. Domaine d’application de l’apprentissage profond. In
https://www.retengr.com/2021/01/22/deep-learning-definitions-applications-avantages-
inconvenients/, 2021. 6
[SB03] Ralph Gross et Iain Matthews Simon Baker. Lucas-kanade 20 years on : A unifying framework :Part
3. In Rapport Technique CMU-RITR, Robotics Institute, Carnegie Mellon University, Pitts-
burgh, PA, pages 03–35, 2003. 34,35
[Soh20] Asif et K.Amjad Sohaib. Automatic covid-19 detection from chest radiographic images using. In
medRxiv preprint doi: https://doi.org/10.1101, 2020. 19
[TM06] Jing Xiao et Jerey F. Cohn Tsuyoshi Moriyama, Takeo Kanade. Meticulously detailed eye region model
and its application to analysis of facial images. In IEEE Transactions on Pattern Analysisand
Machine Intelligence, pages 738–752, 2006. 35
[Tou16] C. Touzet. Les réseaux de neurones artificiels introduction au connexionnisme. In Master’s thesis,
27 Jun 2016. 9
[V.R17] V.Rajan. Towards efficient intrusion detection using deep learning techniques: A review. In
International Journal of Advanced Research in Computer and Communication Engineering, vol.
6, 2017. 17
[Wol] Arne Wolfewicz. In https://levity.ai/blog/difference-machine-learning-deep-learning. 4

[YL89] J. S. Denker D. Henderson R. E. Howard W. Hubbard et L. D. Jackel Y. LeCun, B. Boser. Back-


propagation applied to handwritten zip code recognition. In Neural computation, vol. 1, 1989.
16
[YlT01] Takeo Kanade et Jerey F. Cohn Ying li Tian. Recognizing action units for facial expression
analysis. In IEEE Transactions on Pattern Analysis and Machine Intelligence, pages 97–115,
2001. 33
[Zha98] Zhengyou Zhang. Feature-based facial expression recognition : Experiments with a multi-layer
perceptron. In Rapport Technique 3354, Institut National de Recherche en Informatique et en
Automatique, 1998. 10,11

Vous aimerez peut-être aussi