Vous êtes sur la page 1sur 73

République Tunisienne Institut Supérieur des Sciences

Ministère de l’Enseignement Supérieur Appliquées et de Technologie et de la Recherche Scientifique de


Sousse

DEPARTEMENT INFORMATIQUE

RAPPORT DE STAGE DE FIN D’ETUDES


En vue de l’obtention du diplôme de Licence en :
SCIENCE INFORMATIQUE
Génie logicielle et Systèmes d'information

Reconnaissance émotionnelle faciale

Elaboré par :

Bâ Ahmed

Encadré par :

Bensalem Raja Institut Supérieur des Sciences Appliquées et de


Technologie de Sousse

Mariem Jelassi & Houssem Ben Khalfallah ENSI Innovation Hub

Année Universitaire :

Code Sujet: L-SI22-021

1
Dédicace

« Louange à Dieu tout puissant, qui m’a permis de voir ce jour tant attendu

Par une profonde reconnaissance et un immense amour, je dédie ce mémoire :

A mes très chers parents, BA Djibril Ifra et Aissata Harouna Diallo qui m’ont toujours servi de

modèle et d’exemple, pour leurs prières ininterrompues, leurs sacrifices et leurs patiences

sans réserves durant toutes ces années. Merci pour votre disponibilité énorme, vos conseils

incontournables et tout le mal qu’ils continu de se donner pour mon accomplissement. Que

Dieu vous protège et assiste dans vos projets.

Nulle dédicace ne saurait exprimer et refléter l’exactitude de ma gratitude envers vous.

Qu’ALLAH vous couvre de grâce accompagné de longévité jusqu'à la récolte des fruits de vos

efforts.

A ma grande sœur Bouya Djibril Bâ et mon grand frère Mouhamedoun Djibril Bâ et mes
petits frères et sœurs. Merci pour vos encouragements sans limite et l’intérêt qu’ils portent à
ma réussite. Je prie Dieu pour que vos chemins soient comblés de succès.

A toute la famille Pambinabé Sans votre soutien, jamais ce travail ne serait réalisé et qu’il soit
l’exaucement de vos vœux tant avancés. »

Ahmed Bâ

2
Remerciement
Nous tenons à remercier et à exprimer notre profond respect à tous ceux qui ont contribué de
près ou de loin à la réussite de ce projet. Et plus particulièrement :
Nous exprimons notre profonde gratitude envers Madame Bensalem Raja, notre encadrante
universitaire à Institut Supérieur des Sciences Appliquées et de Technologie de Sousse
(ISSATSO), pour ses conseils, sa patience et son assistance qui n’a pas cessé de nous orienter
tout au long du projet.
Nous remercions, également, Monsieur Houssem Ben Khalfallah notre encadrant
professionnel et madame Mariem Jelassi, le chef de la direction (CEO) au sein de THIS, pour
nous avoir donné l’opportunité de faire ce projet et pour l’effort qu’ils ont épargné pour nous
guider.
Nous remercions également le président de Jury ainsi que le rapporteur d'avoir accepté d'évaluer
notre travail.
Enfin, nous ne manquerons pas d’exprimer nos remerciements à tous nos enseignants à
L’ISSATSO.

3
Table des matières
Introduction générale ................................................................................................................ 10
Chapitre 1 Etude du projet ....................................................................................................... 11
1.1 Introduction .................................................................................................................... 12
1.2 Présentation de l’organisme d’accueil ............................................................................ 12
1.3 Analyse de l’existant ...................................................................................................... 13
1.3.1 Etude de l’existant ................................................................................................... 13
1.3.2 Critique de l’existant ............................................................................................... 14
1.3.3 Notre solution .......................................................................................................... 15
1.4 Méthodologie et langage de modélisation adoptés......................................................... 15
1.4.1 Etude de la méthode agile ....................................................................................... 15
1.4.2 Langage adopté : UML ........................................................................................... 16
Chapitre 2 Etat de l’art ............................................................................................................. 18
2.1-Introduction .................................................................................................................... 19
2.2-Généralités ..................................................................................................................... 19
2.2.1 Termes du domaine d’étude .................................................................................... 19
2.2.2 Méthodes d’apprentissage automatique .................................................................. 20
2.2.3- Réseau de neurones artificiels ................................................................................ 21
2.4. Types de réseaux de neurones les plus populaires ........................................................ 24
2.4.1. Les réseaux de neurones récurrents ........................................................................ 24
2.4.2Les réseaux de neurones convolutifs ........................................................................ 25
2.5. Bibliothèques les plus populaires .................................................................................. 27
2.5.1 TensorFlow.............................................................................................................. 27
2.5.2.Keras ........................................................................................................................ 28

4
2.5.3 OpenCv.................................................................................................................... 29
3-Les algorithmes de détection faciale ................................................................................. 29
3.1. Définition de détection faciale (de faces ou de visages) ........................................... 29
3.2. Définition de vision par ordinateur (Computer vision) ............................................. 29
3.3.1. OpenCv haarcascade .............................................................................................. 30
3.3.2. MTCNN ................................................................................................................. 30
4-La détection des émotions ................................................................................................. 31
4.1 Définition des émotions faciale .................................................................................. 31
4.2. Modèles pré-entraînés pour la classification d'images .............................................. 34
4.2.1 Apprentissage par transfert (Transfert Learning) ................................................... 34
Conclusion ........................................................................................................................ 37
Chapitre 3 Sprint zéro .............................................................................................................. 38
3.1 Introduction .................................................................................................................... 39
3.2 la démarche suivie .......................................................................................................... 39
3.2.1 Explication de la démarche : ................................................................................... 39
3 .3 Spécification des besoins .............................................................................................. 40
3.3.1 Acteurs du projet ..................................................................................................... 40
3.3.2 Besoins fonctionnels ............................................................................................... 40
3.3.3 Besoin non fonctionnels .............................................................................................. 41
3.3.4 Diagramme de cas d’utilisation global .................................................................... 41
3.4 Conception architecturale ............................................................................................... 42
3.4.1 Structure architecturale ........................................................................................... 42
3.4.2 Pattern architectural................................................................................................. 43
3.5 Gestion du projet avec SCRUM ..................................................................................... 44
3.5.1 L’équipe de développement .................................................................................... 44
3.5.2 Le backlog du produit ............................................................................................. 44
3.5.3 Découpage du projet................................................................................................ 45
3.6 Conclusion ...................................................................................................................... 45
Chapitre 4 Sprint 1 ................................................................................................................... 46
4.1 Introduction .................................................................................................................... 47
4.2 Spécifications fonctionnelles.......................................................................................... 47
4.2.1 Classification des cas d’utilisation par acteur ......................................................... 47
4.2.2 Diagramme de cas d’utilisation ............................................................................... 48
4.2.3 Description textuelle des cas d’utilisations ............................................................. 48
4.3 Conception des cas d’utilisations ................................................................................... 49

5
4.3.1 Diagrammes de Séquence Système ......................................................................... 49
4.4- Diagramme de Classe du SPRINT 1 ............................................................................. 52
4.5 Codage ............................................................................................................................ 53
4.5.1 Tableau de la base de données ................................................................................ 53
4.6 Développement et Test ................................................................................................... 53
4.7 Conclusion ...................................................................................................................... 55
Chapitre 5 Sprint 2 ................................................................................................................... 56
5.1 Introduction .................................................................................................................... 57
5.2 Spécifications fonctionnelles.......................................................................................... 57
5.2.1 classification des cas d’utilisation par acteur .......................................................... 57
5.2.2 Diagramme de cas d’utilisation ............................................................................... 58
5.3 Conception des cas d’utilisation ..................................................................................... 59
5.3.1 Diagramme de séquences système .......................................................................... 59
5.4 –Diagramme de classes du Sprint 2 ............................................................................... 64
5.5 Codage ............................................................................................................................ 64
5.6 Test ................................................................................................................................. 65
5.7 Conclusion ...................................................................................................................... 67
Chapitre 6 Environnement logiciel et matériel ....................................................................... 68
6.1 Introduction .................................................................................................................... 69
6.2 Environnement de travail ............................................................................................... 69
6.2.1 Matériels utilisés ..................................................................................................... 69
6.2.2 Logiciels utilisés ...................................................................................................... 69
6.2.3 langages et frameworks adoptés .............................................................................. 70
6.3 Conclusion ...................................................................................................................... 71
Conclusion générale ................................................................................................................. 72

6
Table des figures
Figure 1. 1 Logo de l’organisme d’accueil .............................................................................. 12
Figure 1. 2 zoom....................................................................................................................... 13
Figure 1. 3 Google Meet .......................................................................................................... 14
Figure 1. 4 Diagramme UML ................................................................................................... 17
Figure 1. 5 langage de modélisation UML [6] ......................................................................... 16

Figure 2. 1 apprentissage par renforcement ............................................................................. 21


Figure 2. 2 structure d’un réseau de neurones .......................................................................... 22
Figure 2. 3 Fonction sigmoïde.................................................................................................. 23
Figure 2. 4 fonction relu ........................................................................................................... 24
Figure 2. 5 réseau de neurones récurrent .................................................................................. 25
Figure 2. 6 réseaux de neurones convolutif .............................................................................. 25
Figure 2. 7 max_pooling .......................................................................................................... 26
Figure 2. 8 comparatif des CNN .............................................................................................. 27
Figure 2. 9 TensorFlow ............................................................................................................ 28
Figure 2. 10 Logo Keras ........................................................................................................... 28
Figure 2. 11 OpenCV ............................................................................................................... 29
Figure 2. 12 MTCNN ............................................................................................................... 30
Figure 2. 13 comparaison entre openCV, Dlib, MTCNN ........................................................ 31
Figure 2. 14 les émotions faciales ............................................................................................ 32
Figure 2. 15 Représentation discrète des émotions .................................................................. 33
Figure 2. 16 Représentation continue des émotions ................................................................. 33
Figure 2. 17 comparaison entre les différents modèles précèdent ........................................... 35
Figure 2. 18 comparaison entre le modèle CNN ...................................................................... 36

figure 3. 1 démarche suivie ...................................................................................................... 39


figure 3. 2 Diagramme de cas d’utilisation global ................................................................... 42
figure 3. 3 l’architecture à 3 niveaux (ou 3-tiers) du système d’information ........................... 43
Figure 3. 4 Architecture MVC ................................................................................................. 43
figure 3. 5 Membres d’équipes de développement................................................................... 44

Figure 4. 1 Diagramme du cas d’utilisation du "SPRINT 1" ................................................... 48


Figure 4. 2 Diagramme de séquences système du cas « S’authentifier » ................................. 50
Figure 4. 3 Diagramme de séquence système du cas « Créer compte »................................... 51
Figure 4. 4 Diagramme de séquence système de cas « rejoindre session » ............................. 52
Figure 4. 5 Diagramme de classes du SPRINT 1 ..................................................................... 52
Figure 4. 6 Interface authentification ....................................................................................... 53
Figure 4. 7 Interface d’accueil du psychologue ....................................................................... 54
Figure 4. 8 Interface d’inscription d’un patient ........................................................................ 55

Figure 5. 1 Digramme de cas d’utilisation du Sprint 2 ............................................................ 58


Figure 5. 2 Diagramme de séquences système du cas « Charger vidéo » ................................ 60

7
Figure 5. 3 Diagramme de séquences système du cas « Capturer image » dans vidéo ............ 61
Figure 5. 4 Diagramme de séquence système du cas « capturer image » dans session ........... 61
Figure 5. 5 Diagramme de séquence système de cas « corriger émotion ................................. 62
Figure 5. 6 Diagramme de séquences du cas « Charger images » ........................................... 63
Figure 5. 7 Diagramme de classe du Sprint 2 .......................................................................... 64
Figure 5. 8 Interfaces de chargement d’images à partir d’une vidéo ....................................... 65
Figure 5. 9 Interface de chargement d’images séparées ........................................................... 66
Figure 5. 10 Interface rejoindre session ................................................................................... 67

8
Liste des tableaux
Table 1. 1 - Tableau comparatif de Zoom et Google Meet ...................................................... 14

Table 2. 1 - Les différences entre Machine Learning et Deep Learning .................................. 19


Table 2. 2 - Comparaison entre Keras et Tensorflow............................................................... 29

Table 3. 1 - Le backlog du produit ........................................................................................... 45


Table 3. 2 - Découpage du projet ............................................................................................. 45

Table 4. 1 - Le backlog du SPRINT 1 ...................................................................................... 47


Table 4. 2 - Classification de cas d’utilisation par acteur ........................................................ 47
Table 4. 3 –Tableau descriptif du cas « s’authentifier » .......................................................... 48
Table 4. 4 – Tableau descriptif du cas « Créer compte » ........................................................ 49
Table 4.5 Table 4. 5 –Tableau descriptif du cas « Rejoindre session » ................................... 49
Table 4.6 Table 4. 6 – Table « Psychologue » ........................................................................ 53
Table 4. 7 - Table « patient » ................................................................................................... 53

Table 5. 1 - Le backlog du deuxième sprint ............................................................................ 57


Table 5. 2 -Classification des cas d’utilisation par acteur ........................................................ 57
Table 5. 3 – Tableau descriptif du cas « charger vidéo » ........................................................ 59
Table 5. 4 – Tableau descriptif du cas « capturer image » ....................................................... 59
Table 5. 5 - Tableau descriptif du cas « Corriger émotion » .................................................... 59
Table 5. 6 - Table « émotion » ................................................................................................. 64
Table 5. 7 - Table « images » ................................................................................................... 64

Table 6. 1 - La description de machine de développement ...................................................... 69


Table 6. 2 - Les environnements logiciels utilisées ................................................................. 70
Table 6. 3 - Les technologies et langages utilisées .................................................................. 71

9
Introduction générale
Les émotions sont vitales. Elles permettent d’améliorer la communication entre les humains,
assurer une meilleure compréhension du message véhiculé. Les émotions jouent un rôle
primaire pour la prise des décisions, car elles façonnent la personnalité et influencent les
comportements.

Avec l’évolution de l’intelligence artificielle et ses innovations, les sociétés sont en concurrence
pour intégrer ou créer des applications web utilisant l’intelligence artificielle.
Notre société THIS a décidé alors de créer une application web intégrant l’intelligence
artificielle pour détecter les émotions sur les diffèrent médias visuels.
Notre application permet plus précisément de reconnaitre les émotions faciales dans les vidéos
ou en visioconférence, pour faciliter la tâche des psychologues qui sont obligés de consulter
leurs patients à distance, dû à la situation sanitaire, et d’autre part pour réduire les déplacements
au patient.
Notre rapport est organisé en six chapitres, qui se présentent comme suit :
Chapitre 1 : ce chapitre présente le cadre du projet y compris une présentation de l’organisation
d’accueil à savoir la société THIS, une étude de l’existant pour mieux comprendre le contexte
général de ce projet suivie de l’analyse de l’existant, pour terminer par la méthodologie de
gestion et le langage de modélisation adoptés pour notre projet.
Chapitre 2 : ce chapitre nommé « Etat de l’art » consiste à comprendre la généralité de
l’intelligence artificielle dans un premier temps ensuite à présenter des algorithmes de détection
faciale et dans la dernière partie la détection des émotions faciale.
Chapitre 3 : dans ce chapitre, nous commençons par la description de la démarche suivie,
ensuite la spécification des acteurs et des besoins, pour clôturer par la définition de la
conception architecturale adoptée ainsi que la décomposition des besoins en sprints.
Chapitre 4 : ce chapitre est consacré à l’étude et la réalisation du Sprint 1
Chapitre 5 : ce chapitre est consacré à l’étude et la réalisation du Sprint 2
Chapitre 6 : nous allons présenter dans ce chapitre l’environnement de développement matériel
et logiciel qui a représenté un facteur important pour réaliser notre application.

10
Chapitre 1
Etude du projet

1.1 Introduction .................................................................................................................... 12


1.2 Présentation de l’organisme d’accueil ............................................................................ 12
1.3 Analyse de l’existant ...................................................................................................... 13
1.3.1 Etude de l’existant ................................................................................................... 13
1.3.2 Critique de l’existant ............................................................................................... 14
1.3.3 Notre solution .......................................................................................................... 15
1.4 Méthodologie et langage de modélisation adoptés......................................................... 15
1.4.1 Etude de la méthode agile ....................................................................................... 15
1.4.2 Langage adopté : UML ........................................................................................... 16

11
1.1 Introduction
Pour ce chapitre, nous allons commencer par la présentation de l’organisme d’accueil, Ensuite
nous allons analyser l’existant de l’environnement actuel afin de trouver des solutions pour
résoudre notre problème et améliorer notre situation.
Enfin, nous allons montrer la méthodologie et le langage de conception adoptés dans notre
projet ce qui nous aiderons à réussir la gestion de notre projet.

1.2 Présentation de l’organisme d’accueil

« THIS » qui est l’abréviation de « Tech Healthcare Innovation Systems » représente une
startup informatique Tunisienne en phase de pré-label qui développe des solutions
technologiques destinées au secteur de la santé. Sa mission consiste à développer et mettre en
place des solutions digitales répondant aux besoins de ses partenaires afin de faciliter et
d’optimiser son travail au quotidien.

Figure 1. 1 Logo de l’organisme d’accueil

12
1.3 Analyse de l’existant

Pour réussir le développement de notre application ainsi que l’implémentation du modèle


intelligent, il a fallu faire une étude détaillée sur notre cas d’existant en détectant les problèmes
présents pour passer à la solution.
Dans ce qui suit, nous considérerons les deux termes « patient » et « client » comme termes
équivalents et utilisateur comme « patient » et « psychologue » à la fois.
1.3.1 Etude de l’existant

Quand un psychologue fixe un rendez-vous avec un patient, il peut le consulter dans une
clinique ou hôpital…
Avec l’émergence des nouvelles technologies, les rendez-vous de consultation peuvent se
passer en ligne avec des outils de visioconférence. Nous citons parmi ces outils :
Zoom : est un outil de visioconférence professionnel de référence sur le marché. La technologie
Zoom permet de créer des réunions en ligne, proposer une assistance technique, organiser des
webinaires en vidéo, créer des salles de conférences et discuter par écrit grâce à une messagerie
instantanée. [1]

Figure 1. 2 zoom

Google Meet : autrefois appelé Hangouts Meet, est le service de visioconférence de Google
conçu pour les professionnels. Il permet aux entreprises d’organiser des vidéoconférences
facilement. La création de réunions est facilitée, tout comme l’invitation : il suffit de transmettre
un lien généré automatiquement. Les participants ont juste besoin de posséder un compte
Google. [2]

13
Figure 1. 3 Google Meet

Le tableau suivant est un comparatif entre Zoom et Google Meet


Google Meet Zoom
Nombre de participants 100 100
Création des réunion sans Non Non
inscription
Partage d’écran Non Oui
Limite de temps 1 heures 40 min
Enregistrement de la réunion Non Oui
Réunion depuis le web Oui Non
Prise de contrôle de l’écran Non Oui
Table 1. 1 - Tableau comparatif de Zoom et Google Meet

1.3.2 Critique de l’existant


Les outils tel que Google Meet et Zoom sont considérés universels : Ils sont destinés, en effet,
à un grand nombre d’utilisateurs différents en terme de domaine et de besoins. Ils sont utilisés
par exemple pour réaliser des cours et des formations à distance (pour les établissements
académiques), des réunions (pour les professionnels), des consultations pour les établissements
sanitaires), etc. Et le temps de réunions sont limitées, il est nécessaire de payer pour avoir un
temps illimite.
Avec autant de clients cibles et autant des contraintes, il sera difficile de satisfaire les besoins
des différents utilisateurs, surtout pour les Psychologues qui consultent des patient à distance,
ils ont besoin des heures illimités, d’autre part ils s’intéressent aux émotions de leurs patients
pour prendre des décisions.

En revanche ces outils ne sont pas la meilleure solution pour les Psychologues qui souhaitent
rencontrer leurs patients via vidéoconférence.

14
1.3.3 Notre solution
Pour résoudre ce problème, nous avons proposé dans le cadre de notre projet de fin d’études,
une solution qui permettra aux clients de rejoindre leur Psychologue à distance sans être obligés
de se déplacer, et qui facilite la tâche des psychologues en détectant automatiquement les
émotions des patients dans une vidéo en temps réel ou en temps différé sur une vidéo déjà
enregistré, et ce en se basant sur des techniques de l’intelligence artificielle.
Avec cette Application web, les psychologues gagneront plus de temps et plus de précision, et
auront une application de visioconférence qui cible leur attentes professionnelles tout en prenant
en compte les circonstances de l’enregistrement vidéo (comme les conditions d’éclairage du
patient et les mouvements continus de son visage, etc.).

1.4 Méthodologie et langage de modélisation adoptés


Nous avons choisi d’adopter la méthodologie AGILE « Scrum » car le client est placé au cœur
du projet pour réduire le taux d’échec.
1.4.1 Etude de la méthode agile
La méthode agile est une méthodologie de gestion de projet. Il en existe plusieurs méthodes
qui ont toutes un point commun : elles découlent toutes du Manifeste Agile. Ce dernier a été
développé par plusieurs développeurs de logiciels.
Son but est d’améliorer leur processus et réduire leur taux d’échec. Pour cela, ils placent le
client au cœur du projet.
Les méthodes agiles les plus utilisées aujourd’hui sont :
-SCRUM : Scrum est une méthodologie de développement informatique agile orientée projet
avec des ressources régulièrement mises à jour.
Il fonctionne pleinement lorsqu’il est mis en place dans des entreprises possédant une structure
organisationnelle simple.
-SAFE : est un cadre de travail agile généralement utilisé lorsque de grandes entreprises
souhaitent étendre la « méthode de travail agile » au-delà du périmètre des équipes
opérationnelles.
Méthodologie adoptée : SCRUM
La méthode Scrum est une méthode agile, créée en 2002, dont le nom est un terme
emprunté au rugby qui signifie « la mêlée ». Il permet de produire un logiciel dans la durée la
plus courte.
Ce processus s'articule en effet autour d'une équipe soudée, qui cherche à atteindre un but. Cette
méthodologie se progresse par une série d'itérations appelées sprints, qui durent de deux à
quatre semaines. Le produit envisagé est conçu, codé et testé pendant ce sprint.
A chaque fin de sprint, on peut voir fonctionner le produit courant et décider soit de le livrer,
soit de continuer à l'améliorer pendant un autre sprint.

15
1.4.2 Langage adopté : UML
Pour concevoir notre système, nous avons choisi UML comme langage de modélisation. Son
logo est présenté par la figure 1.4.

Figure 1. 4 langage de modélisation UML

UML est l’abréviation de Unified Modeling Language, c’est-à-dire « Langage unifié pour la
modélisation ». C’est une notation graphique destinée à la création de modèles orientés-objet.
Ce n’est pas une méthode, c’est un ensemble d’outils permettant la modélisation des données
et des traitements pour spécifier et construire les différents diagrammes de conception de notre
future application informatique.
Notre choix s’est basé sur les points forts de ce langage notamment la simplicité de comprendre
sa façon de conception par tout type d’utilisateur, la facilité de maintenance des diagrammes
existants par d’autres développeurs externes et sa standardisation. La figure suivante illustre
les différents diagrammes qu’il propose :

16
Figure 1. 5 Diagramme UML

17
Chapitre 2
Etat de l’art
2.1-Introduction .................................................................................................................... 19
2.2-Généralités ..................................................................................................................... 19
2.2.1 Termes du domaine d’étude .................................................................................... 19
2.2.2 Méthodes d’apprentissage automatique .................................................................. 20
Apprentissage supervisé ............................................................................................... 20
Apprentissage non supervisé ........................................................................................ 20
Apprentissage semi supervisé ...................................................................................... 20
Apprentissage par renforcement ................................................................................... 21
2.2.3- Réseau de neurones artificiels ................................................................................ 21
Structure d’un réseau de neurones artificiels ............................................................... 22
La fonction d’activation ............................................................................................... 22
2.4. Types de réseaux de neurones les plus populaires ........................................................ 24
2.4.1. Les réseaux de neurones récurrents ........................................................................ 24
2.4.2Les réseaux de neurones convolutifs ........................................................................ 25
2.5. Bibliothèques les plus populaires .................................................................................. 27
2.5.1 TensorFlow.............................................................................................................. 27
2.5.2.Keras ........................................................................................................................ 28
2.5.3 OpenCv.................................................................................................................... 29
3-Les algorithmes de détection faciale ................................................................................. 29
3.1. Définition de détection faciale (de faces ou de visages) ........................................... 29
3.2. Définition de vision par ordinateur (Computer vision) ............................................. 29
3.3.1. OpenCv haarcascade .............................................................................................. 30
3.3.2. MTCNN ................................................................................................................. 30
4-La détection des émotions ................................................................................................. 31
4.1 Définition des émotions faciale .................................................................................. 31
4.2. Modèles pré-entraînés pour la classification d'images .............................................. 34
4.2.1 Apprentissage par transfert (Transfert Learning) ................................................... 34
4.2.2 Meilleurs modèles pré-entraînés ......................................................................... 34
VGG-16 ........................................................................................................................ 34
Inception V3 ................................................................................................................. 34
ResNet 50 ..................................................................................................................... 35
EfficientNet .................................................................................................................. 35
Conclusion ........................................................................................................................ 37

18
2.1-Introduction
Ce chapitre a pour but dans un premier temps à l’exposition de la définition de l’intelligence
artificielle, suivie des algorithmes des détections des visages. Dans un second temps, nous
présentons les méthodes d’extractions des émotions faciales. Enfin, quelques bases de données
utilisées pour la détection automatique des émotions faciales

2.2-Généralités :
Nous allons voir la généralité de l’intelligence artificielle.

2.2.1 Termes du domaine d’étude


Nous présentons les définitions des principaux termes scientifiques qui concernent notre
domaine d’étude du plus général au plus spécifique :
- Intelligence Artificielle ou IA, (en anglais « Artificial Intelligence AI ») : c’est la capacité
d’une machine à imiter des comportements liés aux humains.
- Apprentissage automatique (en anglais « Machine Learning ») : c’est un sous-ensemble de
l’IA qui permet d’améliorer la performance d’un système en se basant sur les données
structurées traitées par ce système. Il existe plusieurs méthodes d’apprentissage automatique
qu’on citera quelques-uns dans les sections suivantes.
- Apprentissage profond (en anglais « Deep Learning ») : c’est un sous-ensemble du machine
Learning où la machine a la capacité d’apprendre elle-même. Par contre le Deep Learning n’a
pas besoin de données structurées. Il se base en effet sur les réseaux de neurones artificiels
inspirés du cerveau humain pour faire l’apprentissage. Le tableau suivant donne plus de détails
sur la différence entre le Machine learning et le Deep learning

Les différences entre Machine Learning et Deep Learning


Machine Learning Deep Learning
Organisation des données Données structurées Données non structurées et
non structurées
Base de données Contrôlable > 1 million de données
Entraînement Entraînement par l’humain Système d’apprentissage
nécessaire autonome
Algorithme Algorithme modifiable Algorithmes de réseaux de
neurones
Champ d’application Actions de routine simples Tâches complexes
Table 2. 1 - Les différences entre Machine Learning et Deep Learning

19
2.2.2 Méthodes d’apprentissage automatique
Apprentissage supervisé
La majorité des méthodes d’apprentissage automatique utilisent un apprentissage supervisé
(en anglais « supervised learning »). Ce dernier se base sur des variables d’entrée (x) et une
variable de sortie (Y). On utilise en plus un algorithme pour apprendre la fonction de
mapping de l’entrée à la sortie telle que : Y = f (X)

Le but est d’appréhender si la fonction de mapping fonctionne bien : Lorsque on a de


nouvelles données d’entrée (X), on peut prédire les variables de sortie (Y) pour ces données.
Ils existent plusieurs algorithmes d’apprentissage supervisé comme :
- Arbres de décision
- Les réseaux de neurones
- Régression linéaire

On distingue deux types d’apprentissage supervisé :


La classification : un problème de classification survient lorsque la variable de sortie est une
catégorie ou classe ou encore étiquette (en anglais label), telle que « blanc » et « noir » ou «
malade » et « non malade ».
La régression : Un problème de régression se pose lorsque la variable de sortie est une valeur
réelle, telle que « dollars » ou « poids ».

Apprentissage non supervisé


L’apprentissage non supervisé permet de regrouper des données similaires, mais sans
référence à une annotation, c’est-à-dire aucune étiquette n’est fournie à l’algorithme. Pour
faire la classification.
Ce type d’apprentissage représente un problème plus difficile car il doit découvrir la
structure caractéristique des données d’entrée sans l’intervention d’un humain.

Il existe plusieurs algorithmes d’apprentissage non supervisé à savoir :


- K-moyens (K-means clustering)
- Analyse des composants principaux (Principal Component Analysis)
- Décomposition en valeur singulière (Singular Value Decomposition )

Apprentissage semi supervisé

On traite des problèmes avec l’apprentissage semi-supervisé quand on a une grande quantité
de données d’entrée (X) et que seules certaines données sont étiquetées(Y).

20
D’où ce type de problèmes se situe entre l’apprentissage supervisé et l’apprentissage non
supervisé. Un intérêt provient du fait que l'étiquetage de données nécessite l'intervention d'un
utilisateur humain. Cette opération peut s'avérer fastidieuse lorsque les jeux de données
deviennent très grands. Par exemple : une archive de photos dans laquelle certaines images sont
étiquetées (chien, chat, personne, par exemple) et la plupart ne le sont pas.
Apprentissage par renforcement

Le concept d’apprentissage par renforcement consiste à développer un agent qui


essaye d’imiter la façon dont les animaux ou les humains apprennent. Comme le
montre la figure 2.1 cet agent doit être, en effet, autonome, plongé au sein de son
environnement, et capable de prendre des décisions en fonction de son état courant.
En retour, l'environnement procure à l'agent une récompense, qui peut être positive
ou négative. Les boots dans les jeux forment l’exemple le plus fréquent de ce type
d’apprentissage.

Figure 2. 1 apprentissage par renforcement

2.2.3- Réseau de neurones artificiels


Les réseaux de neurones ont été introduits dans les années 1950 avec une motivation biologique.
Cependant, il a fallu attendre les années 2010 pour que ces réseaux obtiennent des résultats
impressionnants, grâce à des augmentations massives des données d'entraînement et à des
ordinateurs plus rapides.[5]
Définition
D’une manière générale, un réseau de neurones peut être défini comme un système de
technologie de l’information basé sur le fonctionnement du cerveau, dont sont équipés les
ordinateurs dotés de fonction d’intelligence artificielle.
Plus particulièrement, un réseau de neurones artificiels rend l’ordinateur capable d’apprendre à
partir des nouvelles données. De ce fait, l’ordinateur disposant de réseau de neurones apprend
à faire une tâche en analysant des exemples de cette tâche pour s’entraîner. Par exemple, un

21
réseau de neurones peut apprendre à l’ordinateur de reconnaître des objets, et dans ce cas un
grand nombre d’objets de même type est présenté au réseau de neurones, et l’ordinateur
apprendra à reconnaître cet objet sur des nouvelles données tel que les images.
Structure d’un réseau de neurones artificiels

Un réseau de neurones artificiels est composé de neurones complètement reliés entre eux.
On parle du terme « fully connected ». Ces neurones sont répartis en plusieurs couches (en
anglais, layers). Pour chaque couche, ces neurones sont connectés aux neurones de la
couche suivante et de la couche précédente. La figure 2.2 illustre l’architecture générale
d’un réseau de neurones artificiels.

Figure 2. 2 structure d’un réseau de neurones

Dans la figure ci-dessus, sa première couche, étant la couche d’entrée (en anglais, input
layer) représente les données d’entrée dans le réseau de neurones. La dernière couche, étant
la couche de sortie (en anglais, output layer) récupère les résultats de l’entrainement. Les
couches au milieu permettent d’effectuer les calculs d’entrainement. On n’a pas accès à ces
couches, c’est pourquoi on les appelle les couches cachées (en anglais, hidden layers).

La fonction d’activation
Une fonction d’activation est une fonction mathématique utilisée sur un signal. Elle va
reproduire le potentiel d’activation que l’on retrouve dans le domaine de la biologie du
cerveau humain. Elle va permettre le passage d’information ou non de l’information si le
seuil de stimulation est atteint. Concrètement, elle va avoir pour rôle de décider si on active
ou non une réponse du neurone. Un neurone ne va faire qu’appliquer la fonction suivante :
X = ∑ (entrée * poids) + biais
C’est sur cette sortie que la fonction d’activation va s’appliquer [6].
Voici quelques exemples de fonctions d’activation

 Sigmoid (logistic) : C’est la fonction la plus populaire depuis des décennies. Mais
aujourd’hui, elle devient beaucoup moins efficace par rapport à d’autres pour une

22
utilisation au niveau des couches cachées. En effet, elle perd de l’information due à
une saturation que cela soit pour la phase de propagation avant ou rétropropagation
(feed forward ou de backpropagation en anglais), en donnant des effets non linéaires
au réseau à cause d’un paramètre unique [7].
Propagation avant : C'est l'étape de prédiction. Nous envoyons une donnée à notre
réseau et il essaie de prédire la classe de sortie. Des informations, des valeurs et des
sommes sont échangées entre chaque neurone et chaque couche. Les données
circulent de la couche d'entrée vers la couche de sortie.
Rétropropagation : C'est la phase d'apprentissage. Après avoir transmis une
donnée à travers notre réseau, nous obtiendrons un résultat sur la prédiction. C'est
pourquoi le premier entraînement est souvent erroné, car les poids et les biais du
réseau sont initialisés aléatoirement et seront mis à jour lors de l'entraînement via ce
processus.
Son domaine est l'ensemble de tous les nombres réels et sa plage est (0, 1). Par
conséquent, l'entrée de la fonction est soit un très grand nombre négatif, soit un très
grand nombre positif, la sortie est toujours comprise entre 0 et 1. Il en va de même
pour tout nombre compris entre -∞ et +∞ [8].
La figure suivante montre la courbe mathématique de cette fonction :

Figure 2. 3 Fonction sigmoïde

1 (1)
F(x) = 1+𝑒−𝑥

 Fonction d’activation ReLU (Rectified Linear Unit)


Le ReLU est actuellement la fonction d’activation la plus utilisée au monde.
A = F quand F(X) =0
A = 0 sinon (2)

23
Figure 2. 4 fonction relu

F (X1, X2) = W1 X1 + W2 X2 +b
A = Relu(F)

2.4. Types de réseaux de neurones les plus populaires

En général, les réseaux de neurones sont classifiés en fonction du nombre d’épaisseurs qui
séparent l’entrée de données de la production du résultat, en fonction du nombre des couches
cachées ou encore en du nombre d’entrées et de sorties de chaque couche. Voici les types de
réseaux de neurones les plus populaires :
2.4.1. Les réseaux de neurones récurrents (RNN, recurrent neural network) : Ils
sont principalement utilisés pour la reconnaissance vocale et le traitement automatique du
langage naturel.
Dans un RNN, les informations parcourent une boucle. Lorsqu'il prend une décision, il
considère l'entrée actuelle et aussi ce qu'il a appris des entrées qu'il a reçues précédemment.
Par conséquent, un RNN a deux entrées : le présent et le passé récent. Ceci est important car
la séquence de données contient des informations cruciales sur ce qui va suivre, c'est pourquoi
un RNN peut faire des choses que d'autres algorithmes ne peuvent pas faire.

24
Figure 2. 5 réseau de neurones récurrent

2.4.2Les réseaux de neurones convolutifs (CNN, Convolutional Neural Networks) : C’est


un type de réseau de neurones artificiels dans lequel le motif de connexion entre les
neurones est inspiré par le cortex visuel des animaux. Ces réseaux sont utilisés dans
plusieurs domaines tel que : la reconnaissance faciale, la numérisation des textes, le
traitement des langages naturel, la reconnaissance des émotions, etc.

Figure 2. 6 réseaux de neurones convolutif

Figure 2.7 réseaux de neurones convolutif

La couche de convolution : les couches de convolution analyse l’image par zone. Elles
se focalisent sur chaque partie de la donnée.

25
Max pooling : Le MaxPooling prend en entrée des échantillons pour en extraire la valeur
max. Il garde seulement les informations importantes.

Figure 2. 7 max_pooling

Voici un bref aperçu sur les architectures CNN les plus populaires en fonction de leur
performance.

26
Figure 2. 8 comparatif des CNN

Jusqu’à maintenant on a abordé les CNN d’une manière théorique, et donc pour les utiliser,
on a besoin des outils pour implémenter les algorithmes CNN, afin d’appliquer les modèles
sur des images et des vidéos de notre choix.
Pour se faire on utilisera les bibliothèques suivantes : TensorFlow, Keras et OpenCv.

2.5. Bibliothèques les plus populaires


2.5.1 TensorFlow
C’est une bibliothèque open source, créée par Google permettant de développer et
d’exécuter des applications de Machine Learning et de Deep Learning [9].

27
Figure 2. 9 TensorFlow

2.5.2.Keras
C’est une API de réseau de neurones écrite en langage Python. Il s’agit d’une bibliothèque
Open Source, exécutée par-dessus des frameworks tels TensorFlow.
Conçue pour être modulaire, rapide et simple d’utilisation, Elle offre une façon simple et
intuitive de créer des modèles de Deep Learning

Figure 2. 10 Logo Keras

Le tableau suivant fournit une comparaison entre Keras et tensorflow

Keras TensorFlow
Keras est une API de haut niveau qui TensorFlow est un framework qui propose
s'exécute sur TensorFlow des API de haut et de bas niveau .
Obligatoire d’apprendre la syntaxe de
Keras est facile à utiliser si l’on connais le
l'utilisation de diverses fonctions
langage Python.
Tensorflow.
Idéal pour la recherche en apprentissage
Parfait pour des mises en œuvre rapides.
profond, les réseaux complexes.
utilise les outils de visualisation de carte
Utilise un autre outil de débogage d'API.
Tensor pour le débogage.
Il a commencé par François Chollet à partir
d'un projet et développé par un groupe de Il a été développé par l'équipe Google Brain.
personnes.
Écrit en Python, un wrapper pour Theano, Écrit principalement en C++, CUDA et
TensorFlow et CNTK. Python.
Keras a une architecture simple, lisible et
Tensorflow n'est pas très facile à utiliser.
concise.
Dans le framework Keras, il y a un besoin
Il est assez difficile d'effectuer un débogage
très moins fréquent de déboguer des réseaux
dans TensorFlow.
simples.
TensorFlow utilisé pour les modèles hautes
Keras est généralement utilisé pour les petits
performances et les grands ensembles de
ensembles de données.
données.

28
Il est soutenu par une large communauté
Le soutien communautaire est minime.
d'entreprises technologiques.
Table 2. 2 - Comparaison entre Keras et Tensorflow

2.5.3 OpenCv
OpenCv (Open Computer Vision) est une bibliothèque graphique. Elle est spécialisée dans le
traitement d’images, que ce soit pour de la photo ou de la vidéo.
Sa première version est sortie en juin 2000. Elle est disponible sur la plupart des systèmes
d’exploitation et existe pour les langages Python, C++ et Java.
OpenCv fournit un ensemble de plus de 2500 algorithmes de vision par ordinateur,
accessibles au travers d’API

Figure 2. 11 OpenCV

3-Les algorithmes de détection faciale


La reconnaissance faciale consiste à identifier une personne par son visage de manière
automatisée. Il trouve de nombreuses applications dans différents domaines (vidéosurveillance,
biométrie, robotique, etc.).
3.1. Définition de détection faciale (de faces ou de visages)
La détection faciale est un domaine de la vision par ordinateur permettant de localiser un ou
plusieurs visages humains dans une séquence vidéo ou dans une image numérique.
La détection faciale à plusieurs usages directs en vidéo-surveillance, robotique, photographie,
médecine…
3.2. Définition de vision par ordinateur (Computer vision)
La vision par ordinateur est une branche de L’IA et un domaine scientifique permettant
d’analyser des images ou des vidéos pour permettre à l’ordinateur d’accueillir une
compréhension de haut niveau.

29
3.3. Algorithmes de détection faciale
Voici les modèles de détection faciale les plus populaires :

 Open Cv
 SSD
 Dlib
 Mediapipe
 RetinaFace
 MTCNN
3.3.1. OpenCv haarcascade
Comparé à d'autres détecteurs basés sur le Deep Learning, OpenCV est le détecteur de
visage le plus léger. Il utilise un algorithme de haar-cascade qui n'est pas basé sur des
techniques d'apprentissage en profondeur. C'est pourquoi il est rapide, mais ses
performances sont relativement faibles. Pour qu'OpenCV fonctionne correctement, des
images frontales sont nécessaires. De plus, ses performances de détection des yeux sont
moyennes. Cela provoque des problèmes d'alignement.

3.3.2. MTCNN
Il s'agit d'un détecteur de visage basé sur le Deep Learning, et il est livré avec des repères
faciaux. C'est la raison pour laquelle les scores de détection et d'alignement sont élevés pour
MTCNN. Cependant, il est plus lent qu'OpenCV

Figure 2. 12 MTCNN

Voici une figure comparative entre les modèles opencv_haar et MTCNN en GPU colab

30
Figure 2. 13 comparaison entre openCV, Dlib, MTCNN

4-La détection des émotions


Après la détection des visages dans l’image, il faut extraire les caractéristiques émotionnelles
dans les visages, pour enfin prédire l’émotion.
4.1 Définition des émotions faciale
Une émotion faciale est le résultat de la relaxation de certains muscles et la contraction d’autres.
Les émotions peuvent être représentées d’une façon discrète ou continue. Ci-dessous une image
qui montre certaines émotions :

31
Figure 2. 14 les émotions faciales

La représentation discrète des émotions est très fréquente dans les systèmes de reconnaissance
automatique.

32
Figure 2. 15 Représentation discrète des émotions

Figure 2.16 Représentation discrète des émotions


Un paragraphe pour Représentation continue des émotions

Figure 2. 16 Représentation continue des émotions

33
4.2. Modèles pré-entraînés pour la classification d'images
Avant de citer les meilleurs modèles pré-entraînés on doit connaitre l’apprentissage par
transfert (Transfert Learning).

4.2.1 Apprentissage par transfert (Transfert Learning)


Le Transfert Learning désigne l’ensemble des méthodes qui permettent de transférer les
connaissances acquises à partir de la résolution de problèmes donnés pour traiter un autre
problème.Le Transfer Learning a connu un grand succès avec l’essor du Deep
Learning. En effet, bien souvent, les modèles utilisés dans ce domaine nécessitent
des temps de calcul élevés et des ressources importantes. Or, en utilisant des modèles
pré-entraînés comme point de départ, le Transfer Learning permet de développer
rapidement des modèles performants et résoudre efficacement des problèmes complexes
en Computer Vision ou.

Pour la détection des émotions on peut utiliser les CNN.


Et il suffit d’entrainer ces CNN à l’un des Bases de données d’expressions faciales.
Tel que FER-2013, CK +, RAF-DB…

4.2.2 Meilleurs modèles pré-entraînés

VGG-16

VGG16 est un modèle de CNN qui a atteint une précision de de 92.7% dans le tip 5 pendent
le test dans ImageNet, il a remporter la 2ème place de ILSVRC 2014.

Inception V3
Inception V3 est un réseau de neurones convolutif permettant l’analyse d’images et la
détection d’objets. Il est la 3ème édition du réseau de neurones convolutionnels de Google,
présenté lors du défi de reconnaissance ImageNet ILSVRC, il a occupé la première place
en 2014.

34
ResNet 50

ResNet est un réseau de neurones profond caractérisé par l’emploi de connexions saute-
couches, il a remporté la compétition ILSVRC en 2015.
ResNet 50 est le successeur d’autre modèles avec plus de couche, dont la première
s’appelait Residual net ou ResNet.

EfficientNet
EfficientNet est une architecture de réseau neuronal convolutif et une méthode de mise à
l'échelle qui met uniformément à l'échelle toutes les dimensions de
profondeur/largeur/résolution à l'aide d'un coefficient composé.

Le tableau suivant introduit une comparaison entre les différents modèles précèdent

Figure 2. 17 comparaison entre les différents modèles précèdent

ImageNet est une ensemble de données de plus de 14 millions d’images haute résolution
appartenant à 1000 classes collectées sur le Web.

Les modèles de prédictions des émotions dans un tableau comparatif

35
Figure 2. 18 comparaison entre le modèle CNN

Le choix du type d’architecture dépend des données et ressources de calcul disponibles, de


la tâche à effectuer, et du type d’utilisation du modèle.
Par exemple:
Pour construisez un modèle pour une utilisation en routine clinique, les architectures
Xception, MobileNet et EfficientNet peuvent être préférables de par leur compromis entre
consommation des ressources et niveau de précision.
Pour classifier des images où l’information spatiale est fortement discriminante, alors les
architectures Squeeze-and-ExcitationNet et Inception seront adaptées.
Pour la classification de plusieurs structures anatomiques, un ensemble de modèles avec
une architecture robuste et performante telle que ResNet ou DenseNet peut être une
approche intéressante.

36
Conclusion

Dans le présent chapitre, nous avons commencé par une généralité de l’intelligence
artificielle, ensuite exposé les algorithmes de détection des visages et dans un dernier temps
nous avons présenté des algorithmes qui nous permettrons de détecter les émotions dans des
images. Ce chapitre nous a permis de comprendre la voie sur le domaine d’étude ce qui
nous a permis de choisir la démarche à suivre et ça sera l’un des objectifs du chapitre
suivant.

37
Chapitre 3
Sprint zéro
3.1 Introduction .................................................................................................................... 39
3.2 la démarche suivie .......................................................................................................... 39
3.2.1 Explication de la démarche : ................................................................................... 39
3 .3 Spécification des besoins .............................................................................................. 40
3.3.1 Acteurs du projet ..................................................................................................... 40
3.3.2 Besoins fonctionnels ............................................................................................... 40
3.3.3 Besoin non fonctionnels .............................................................................................. 41
3.3.4 Diagramme de cas d’utilisation global .................................................................... 41
3.4 Conception architecturale ............................................................................................... 42
3.4.1 Structure architecturale ........................................................................................... 42
3.4.2 Pattern architectural................................................................................................. 43
3.5 Gestion du projet avec SCRUM ..................................................................................... 44
3.5.1 L’équipe de développement .................................................................................... 44
3.5.2 Le backlog du produit ............................................................................................. 44
3.5.3 Découpage du projet................................................................................................ 45
3.6 Conclusion ...................................................................................................................... 45

38
3.1 Introduction
L’analyse et la spécification des besoins représentent la phase préliminaire du cycle de
développement d’un logiciel. Elle sert à identifier les acteurs réactifs du système et leur associer
chacun l’ensemble d’actions avec lesquelles ils interviennent. Dans ce chapitre, nous allons
précéder par une spécification des besoins auxquels doit répondre l’application, et nous
passerons au conception architecturale enfin la gestion du projet avec SCRUM

3.2 la démarche suivie


Nous allons présenter dans cette section la démarche suivie pour la détection des émotions dans
notre projet, la figure suivante explique la démarche :

figure 3. 1 démarche suivie

3.2.1 Explication de la démarche :


La première phase images consiste à extraire les visages de l’images capturer par la caméra de
l’utilisateur pour ce faire nous allons utiliser l’un des algorithmes de détection des visages, bien

39
que notre état de l’art nous a permis de montrer que MTCNN donne les meilleurs résultats, nous
avons décidé de l’adopter pour l’extraction des visages.
La deuxième phase consiste a appliqué un modèle CNN a l’image extrait par le modèle
MTCNN, pour extraire les caractéristiques émotionnelles faciale et en fin faire une prédiction
selon les pourcentages obtenus.

3 .3 Spécification des besoins


Avant de commencer le développement de notre application nous allons expliquer les
spécifications des besoins en identifiant les acteurs, les besoins fonctionnels et non fonctionnels
de l’application pour aboutir finalement à la présentation du diagramme de cas d’utilisation
global de cette application.
3.3.1 Acteurs du projet
Un acteur est une entité externe (physique ou morale) ou un autre système informatique qui
attend un ou plusieurs services offerts par le système. Chaque acteur doit être décrit par son rôle
crucial dans l’environnement de l’application.
Dans notre cas, nous présentons les acteurs suivants :
 Le psychologue : c’est acteur est un acteur principal. Il est considéré comme administrateur.
Il représente la personne qui va capturer des images, vérifier si le programme de
l’intelligence artificielle a fait de fausses prédictions pour corriger les émotions relatives et
envoyer donc les modifications à la base de données.
Le psychologue peut capturer les images soit dans une visioconférence avec son patient ou à
partir d’une vidéo chargée depuis son ordinateur.
Il peut également charger un dossier d’images, et associer à chaque image l’émotion
correspondante et l’envoyer à la base de données d’apprentissage pour l’enrichir.
Il est évidemment nécessaire que le psychologue s’authentifie pour faire les tâches
précédentes.
 Le patient : c’est la personne qui va rejoindre une session de visioconférence avec un
psychologue. Pour ce faire, il doit à priori créer un compte puis s’authentifier à chaque fois
pour accéder à son espace de travail.

3.3.2 Besoins fonctionnels


Les besoins fonctionnels sont les actions qui doivent être attendues par le système en répondant
à une demande provenant d’un acteur.
Les besoins fonctionnels de notre application se résument dans les points suivants :
 Pour le psychologue :
-S’authentifier
-Rejoindre session
-Charger vidéo
-Capturer image
-Charger images
-Corriger émotion
-Se déconnecter
 Pour le patient :
- Créer compte
- S’authentifier

40
- Rejoindre session
- Se déconnecter

3.3.3 Besoin non fonctionnels


Les besoins non fonctionnels décrivent les contraintes et les exigences techniques et
ergonomiques auxquelles est soumis le système pour son bon fonctionnement. En ce qui
concerne notre application, nous avons dégagé les besoins non fonctionnels suivants :
- La convivialité de l’interface graphique : l’application doit fournir une interface conviviale et
simple pour tout type d’utilisateur. Elle doit être facile à manipuler même par les non
experts.
- La sécurité de système : Les données personnelles des utilisateurs doivent être sécurisées et
protégées par le système, puisque l’utilisateur doit s’authentifier avec ses propres
informations pour accéder à son interface
- La disponibilité : Notre applications doit être disponible pour tout utilisateur et à tout
moment.
- La performance : Le modèle généré doit être performant, c’est-à-dire que le système doit
réaliser la détection des émotions, quel que soient les conditions d’éclairage et les
mouvements du visage.

3.3.4 Diagramme de cas d’utilisation global


Un cas d’utilisation permet de décrire sous forme d’actions et de réactions le comportement du
système du point de vue d’un utilisateur. Il donne l’image d’une fonctionnalité du système
déclenchée en réponse à la stimulation d’un acteur. Un diagramme de cas d’utilisation permet
de spécifier clairement et exhaustivement les besoins relatifs à chaque type d’utilisateur. Le
diagramme ci-après présente une structure générale des différentes tâches de l’application pour
les deux acteurs psychologue et patient.

41
figure 3. 2 Diagramme de cas d’utilisation global

3.4 Conception architecturale


3.4.1 Structure architecturale
L’architecture d’un logiciel est une solution basée sur la méthode d’organiser les différents
éléments et codes d’une application. Cette structure est composée de trois niveaux représentés
par la figure 3.3 [11].

42
figure 3. 3 l’architecture à 3 niveaux (ou 3-tiers) du système d’information

Comme le montre la figure précédente, l’architecture 3-tiers est définie par les 3 niveaux
suivants :
 Niveau I : Il représente la couche de présentation qui correspond à l’interface utilisateur qui
consiste à afficher les données et permet à l’utilisateur final d’interagir avec ces dernières.
 Niveau II : Il représente la couche de traitement (ou couche « métier » ) qui réalise
l’implémentation des règles métiers et des contrôles nécessaires des données
 Niveau III : Il concerne la couche d’accès aux données qui assure la persistance des données
qui doivent être conservées.

3.4.2 Pattern architectural


Le pattern Modèle – Vue-Contrôleur (MVC) est un motif d’architecture logicielle destinée à
bien organiser son code source, il est composé de trois parties :
 Le modèle : cette partie consiste à la gestion des données de l’application. Son rôle regroupe
la validation, la lecture et l’enregistrement des informations d’une façon organisée dans la
base des donnés.
 La vue : Cette partie contient les éléments visibles de l’interface graphique comme les
boutons, les formulaires, etc. Elle est nécessaire pour la présentation de données provenant
du modèle. Le contrôleur : c’est le module de traitement des actions de l’utilisateur, on parle
alors de l’intermédiaire entre le modèle et la vue qui modifie leurs données. La figure ci-
dessous présente les trois parties [12].

Figure 3. 4 Architecture MVC

43
3.5 Gestion du projet avec SCRUM
Cette partie consiste à élaborer trois élément principaux du SCRUM, à savoir l’équipe de
développement, le backlog du produit et le découpage du projet.
3.5.1 L’équipe de développement
 Le Product Owner : son rôle principal est la représentation officielle du client au sein d’un
projet. Nous parlons alors du responsable de développement et d’évolution du projet.
 Le Scrum Master : c’est la personne responsable de l’organisation des actions et des tâches,
tout le long du cycle de développement, donc nous pouvons dire qu’il facilite la
communication entre les membres de l’équipe et avec le product owner dansle but
d’améliorer la productivité au sein du projet.
 Scrum Team : Nous parlons de toute personne responsable du développement, du testet de
la réalisation du projet comme le designer, le programmeur, etc.

figure 3. 5 Membres d’équipes de développement

3.5.2 Le backlog du produit


C’est l’ensemble des fonctionnalités et des actions intervenant dans le développement du projet
vis à vis des besoins des clients. Le tableau suivant représente le backlog produit de notre
application :
feature ID story User story Importance
1 Authentification 1 En tant que patient ou psychologue, je Elevée
dois m’authentifier pour accéder à ma
propre interface d’accueil
2.1 En tant que psychologue, Moyenne
je peux charger une vidéo
2.2 En tant que psychologue, Moyenne
2 Evaluer émotion vidéo je peux capturer des images
2.3 En tant que psychologue, Moyenne
je peux valider ma correction
3.1 En tant sue psychologue, Faible
je peux charger un dossier d’images
3 Evaluer émotion image 3.2 En tant que psychologue, je peux Moyenne
corriger les fausses prédictions de L’IA

44
4 Créer compte 4 En tant que patient, Elevée
je peux créer un compte
5 Rejoindre session 5 En tant que patient ou psychologue, je Elevée
peux rejoindre une session
6 Déconnection 6 En tant que utilisateur je peux me
déconnecter
Table 3. 1 - Le backlog du produit

3.5.3 Découpage du projet


L’organisation d’un projet SCRUM nécessite le découpage des tâches du projet en SPRINT, ce
qui permet d’améliorer la productivité et atteindre les objectifs. La figure suivante présente la
structure de notre découpage :

Sprint 1  Authentification
 Créer compter
 Rejoindre session
 Se déconnecter
Sprint 2  Charger vidéo
 Charger image
 Capturer image
 Corrigé émotion
Table 3. 2 - Découpage du projet

3.6 Conclusion
Dans ce chapitre, nous avons mis les premiers pas de notre application qui consiste à la précision
des besoins fonctionnels et non fonctionnels de l’application sous une méthodologie bien
déterminée dans le but d’améliorer la productivité du projet en évitant les risques des fautes,
tout en gardant les objectifs du client. Dans le chapitre suivant, nous allons décrire les
fonctionnalités du Sprint 1 et son déroulement avec les diagrammes UML.

45
Chapitre 4
Sprint 1
4.1 Introduction .................................................................................................................... 47
4.2 Spécifications fonctionnelles.......................................................................................... 47
4.2.1 Classification des cas d’utilisation par acteur ......................................................... 47
4.2.2 Diagramme de cas d’utilisation ............................................................................... 48
4.2.3 Description textuelle des cas d’utilisations ............................................................. 48
4.3 Conception des cas d’utilisations ................................................................................... 49
4.3.1 Diagrammes de Séquence Système ......................................................................... 49
4.4- Diagramme de Classe du SPRINT 1 ............................................................................. 52
4.5 Codage ............................................................................................................................ 53
4.5.1 Tableau de la base de données ................................................................................ 53
4.6 Développement et Test ................................................................................................... 53
4.7 Conclusion ...................................................................................................................... 55

46
4.1 Introduction
Dans ce chapitre, nous allons aborder les fonctionnalités et les tâches qui consistent à créer le
compte d’un patient ce qui lui permettra de rejoindre une session de visioconférence, avec un
psychologue déjà authentifier.
ID UserStory ID tâche tâche
1 En tant qu’utilisateur je peux 1.A Faire les diagrammes de cas
m’authentifier afin d’accéder au d’utilisation et de séquences de la
site fonctionnalité « S’authentifier »

1.B Développer le cas


« S’authentifier »
1.C Tester le cas «S’authentifier »
2 En tant qu’utilisateur (psychologue 2.A Faire le diagramme de séquences
ou patient), je peux rejoindre une
session 2.B Développer le cas « Rejoindre
session »
2.C Tester le cas « Rejoindre session »
3 En tant que psychologue, je peux 3.A Développer le cas « Capturer
capturer une image à partir d’une image »
session vidéo 1.B Tester le cas « Capturer image »
4 En tant que utilisateur je peux me 4.A Faire le diagramme de séquence de
déconnecter cas « se déconnecter »
4.B Développer le cas « se
déconnecter »
4.C Tester le cas « se déconnecter »
Table 4. 1 - Le backlog du SPRINT 1

4.2 Spécifications fonctionnelles


Les spécifications fonctionnelles permettent la précision de l’ensemble des tâches que l’équipe
de développement doit réaliser tout le long du sprint. Nous parlons donc de déterminer la
relation entre l’acteur et le système étudié tout en respectant les besoins du client.
4.2.1 Classification des cas d’utilisation par acteur
Le tableau, ci-dessous détermine le rôle du psychologue pendant le SPRINT 1.

Acteurs Cas d’utilisation


Psychologue S’authentifier
Rejoindre session
Patient Créer un compte
S’authentifier
Rejoindre session
Table 4. 2 - Classification de cas d’utilisation par acteur

47
4.2.2 Diagramme de cas d’utilisation
Dans ce diagramme, nous déterminerons les fonctions du système avec lesquelles les
psychologues et le patient interviennent.

Figure 4. 1 Diagramme du cas d’utilisation du "SPRINT 1"

4.2.3 Description textuelle des cas d’utilisations


C’est la description d’une façon un peu détaillée du dialogue entre les utilisateurs
(psychologue et patient) et le cas d’utilisation du système, c’est le scénario de grande fonction
entre l’acteur et le système.

 Tableau descriptif du cas « S’authentifier »

Cas d’utilisation S’authentifier


Acteurs Utilisateurs du système (psychologue ou patient)
Pré-condition L’utilisateur doit avoir un compte
Post-condition Utilisateur authentifié
1-L’utilisateur saisit son email ou nom d’utilisateur et son mot de
Scénario principal passe.
2- Il détermine s’il est patient ou psychologue
3- Il confirme en cliquant sur le bouton « s’authentifier »
4- Le système affiche l’interface d’accueil correspondant à l’utilisateur
- le système affiche un message d’erreur si les champs sont vides
Scenario alternatif -Le système affiche un message d’erreur informant l’utilisateur que
son email ou mot de passe sont incorrects
Table 4. 3 –Tableau descriptif du cas « s’authentifier »

Une fois l’authentification est terminée, le psychologue ou le patient peut accéder à son
interface d’accueil.

48
 Tableau descriptif du cas « Créer un compte »
Cas d’utilisation Créer Compte
Acteurs Patient
Pré-condition La patient visite le site
Post-Condition Compte patient créé
Scénario principal 1- Le patient clique sur créer un compte
2- Le système redirige le patient vers la page d’inscription.
3- Le patient fournit ses données et clique sur le bouton
« s’inscrire ».
4- Le système vérifie les données saisies.
5- Le patient un message de succès d’inscription
6- S’il y a des données saisie incorrecte retour à l’étape 3
Table 4. 4 – Tableau descriptif du cas « Créer compte »

 Tableau descriptif du cas « Rejoindre session »

Pour ce cas d’utilisation, il suffit que le patient ou le psychologue saisisse le nom de la


session, Si l’autre partie saisit le même nom, toutes les deux parties seront dans la même
session. La façon dont ils vont se contacter ne fait pas partie de notre tâche.

Cas d’utilisation Rejoindre session


Acteurs Utilisateur (psychologue ou patient)
Pré-condition l’utilisateur est authentifié
Post-condition Le psychologue et le patient sont dans la même session
Scénario principal 1- L’utilisateur demande la page de consultation
2- Le système affiche la page de consultation
3- L’utilisateur saisit le nom de la session
4- Si la session existe déjà, il va la rejoindre, sinon elle va
être créée
Table 4.5 Table 4. 5 –Tableau descriptif du cas « Rejoindre session »

4.3 Conception des cas d’utilisations


Cette partie consiste à détailler chaque cas d’utilisation sous forme de diagramme de séquence
système
4.3.1 Diagrammes de Séquence Système

 Diagramme de séquences système du cas « S’authentifier »


La figure 4.5 présente le diagramme de séquence du cas « S’authentifier ».

49
Le patient ou le psychologue doit insérer ses données de connexion (le login et le mot de
passe) et déterminer son profil (s’il est patient ou psychologue) pour accéder à son propre
interface d’accueil.

Figure 4. 2 Diagramme de séquences système du cas « S’authentifier »

 Diagramme de séquences système du cas « Créer un compte »

Le patient doit s’inscrire en fournissant son nom, email et mot de passe pour avoir un
compte. Le système va vérifier les données avant de les envoyer à la base de données.

50
Figure 4. 3 Diagramme de séquence système du cas « Créer compte »

 Diagramme de séquences système du cas « Rejoindre session »

51
Figure 4. 4 Diagramme de séquence système de cas « rejoindre session »

4.4- Diagramme de Classe du SPRINT 1

Figure 4. 5 Diagramme de classes du SPRINT 1

52
4.5 Codage
4.5.1 Tableau de la base de données
Attributs Type Contraintes
id Int Primary Key
nom Varchar(100) -
Email Varchar(100) -
Mot de passe Varchar(100) -
Table 4.6 Table 4. 6 – Table « Psychologue »

Attributs Type Contraintes


Id Int Primary Key
Nom Varchar(100) -
Email Varchar(100) -
Mot de passe Varchar(100) -
Table 4. 7 - Table « patient »

4.6 Développement et Test


Nous allons parler des dernières phases d’un sprint, à savoirle développement et la
vérification du système conçu afin de garantir un bon résultat du projet.

 L’interface d’authentification

Figure 4. 6 Interface authentification

 L’interface d’accueil du psychologue


C’est l’interface qui s’affiche après l’authentification du psychologue

53
Figure 4. 7 Interface d’accueil du psychologue

 L’interface d’inscription d’un patient

54
Figure 4. 8 Interface d’inscription d’un patient

4.7 Conclusion
Dans ce chapitre, nous avons fait la description des fonctionnalités du Sprint 1, nous
avons dressé quelques diagrammes UML y compris les diagrammes de séquences
ainsi que les diagrammes de cas d’utilisation des différentes fonctionnalités du
premier Sprint 1. Enfin nous avons réalisé et testé les fonctionnalités requises. Le
chapitre suivant aura l’objet de la description conceptuelle et textuelle des cas
d’utilisation du Sprint 2 de notre projet.

55
Chapitre 5
Sprint 2

5.1 Introduction .................................................................................................................... 57


5.2 Spécifications fonctionnelles.......................................................................................... 57
5.2.1 classification des cas d’utilisation par acteur .......................................................... 57
5.2.2 Diagramme de cas d’utilisation ............................................................................... 58
5.3 Conception des cas d’utilisation ..................................................................................... 59
5.3.1 Diagramme de séquences système .......................................................................... 59
5.4 –Diagramme de classes du Sprint 2 ............................................................................... 64
5.5 Codage ............................................................................................................................ 64
5.6 Test ................................................................................................................................. 65
5.7 Conclusion ...................................................................................................................... 67

56
5.1 Introduction
Après avoir terminé le Sprint 1, nous allons déterminer les tâches du Sprint 2 qui consiste à
charger des images et des vidéos, capturer des images, corriger des émotions. Le Sprint Backlog
du Sprint 2 se présente dans le tableau ci-dessous comme suit :
ID UserStory ID tâche Tâche
1 En tant que psychologue, je peux 1.A Faire les diagrammes de cas
charger une vidéo d’utilisation, puis de
séquences de la fonctionnalité
« Charger vidéo »
1.B Développer le cas « Charger
vidéo »
1.C Tester le cas « Charger
vidéo »
2 En tant que psychologue, je peux 2.A Faire le diagramme de
charger des images séquence de la fonctionnalité
« Charger image »
2.B Développer le cas « charger
image »
2.C Tester le cas « Charger
image »
3 En tant que psychologue, je peux 3.A Faire le diagrammes de
capturer une image séquences de la fonctionnalité
« Capturer image »
3.B Développer le cas «Capturer
image »
4 En tant que psychologue, je peux corriger 4.A Faire le diagramme de cas
les émotions d’utilisation, puis de
séquences de la fonctionnalité
« Corriger émotion »
4.B Développer le cas « Corriger
émotion »
4.C Tester le cas « Corriger
émotion »
Table 5. 1 - Le backlog du deuxième sprint

5.2 Spécifications fonctionnelles


5.2.1 classification des cas d’utilisation par acteur
Le tableau ci-dessous présente les rôles du psychologue du Sprint 2.

Acteurs Cas d’utilisation


Administrateur Charger vidéo
Charger image
Capturer image
Corrigé émotion
Table 5. 2 -Classification des cas d’utilisation par acteur

57
5.2.2 Diagramme de cas d’utilisation
Dans ce diagramme nous montrons les fonctions du patient et le psychologue que nous
parviendrons à réaliser à la fin du Sprint 2.

Figure 5. 1 Digramme de cas d’utilisation du Sprint 2

5.2.3 Description textuelle des cas d’utilisation

Le psychologue a la possibilité de charger des images, capturer des images soit dans une vidéo
ou dans une session de visioconférence
 Tableau Descriptif de cas « Charger vidéo »

Cas d’utilisation Charger vidéo


Acteurs Psychologue
Pré-condition Psychologue authentifié
Post-condition Vidéo chargée sur la page
Scénario principal 1- Le psychologue clique sur le bouton « insérer une vidéo »
2- Le système ouvre une fenêtre pour que le psychologue sélectionne
la vidéo
3- Le psychologue choisit la vidéo désirée
4- Le système affiche la vidéo dans la page
5- Le psychologue clique …

58
6- Le système commence à détecter les émotions s’il termine la
détection des visages

Table 5. 3 – Tableau descriptif du cas « charger vidéo »

 Tableau Descriptif de cas « Capturer image »

Cas d’utilisation Capturer image


Acteurs Psychologue
Pré-condition Une vidéo est déjà chargée ou durant une session
Post-condition Une image contenant une émotion est capturée de la vidéo au moment
du clic.
Scénario principal 1- Le psychologue clique sur « Capturer »
2- Le système capture l’mage (ou la frame) de la vidéo
3.1 Si c’est une vidéo charger Le système ajoute l’émotion prédite et
affiche l’image dans la page actuelle
3.2 Si durant une session Le système ajoute l’image dans la base de
données en fonction de son émotion majeure.

Table 5. 4 – Tableau descriptif du cas « capturer image »

 Tableau Descriptif de cas « Corriger émotions »

Cas d’utilisation Corriger émotions


Acteurs Psychologue
Pré condition Image capturée ou image charger
Post-condition Image ajoutée à la base de données
Scénario principal 1- Le psychologue décide si l’émotion prédite par le système est
correcte ou non
2- S’il n’est pas correct il sélectionne l’émotion correcte
3- Il clique sur le bouton « corriger émotion »
4- Le système ajoute l’image dans la base de données dans le dossier
correspondant à l’émotion sélectionnée
Table 5. 5 - Tableau descriptif du cas « Corriger émotion »

5.3 Conception des cas d’utilisation


Cette partie consiste à détailler chaque cas d’utilisation sous forme de diagramme de séquence
système
5.3.1 Diagramme de séquences système
 Diagramme de séquences système du cas « Charger vidéo »

Le psychologue peut importer une vidéo vers son espace de travail afin d’analyser les
émotions contenues dans la vidéo.

59
Figure 5. 2 Diagramme de séquences système du cas « Charger vidéo »

 Diagramme de séquence système du cas « capturer image » dans vidéo

Une fois le psychologue a chargé une vidéo, le système commence à prédire des émotions
relatives à cette vidéo. Si le psychologue remarque que le système a fait de fausses
prédictions, il peut capturer des images de ces fausses prédictions.

60
Figure 5. 3 Diagramme de séquences système du cas « Capturer image » dans vidéo

 Diagramme de séquence système du cas « capturer image » dans session

Figure 5. 4 Diagramme de séquence système du cas « capturer image » dans session

Figure 5.4 Diagramme de séquence système du cas « capturer image » dans session

 Diagramme de séquence système du cas « Corriger émotion »


Le psychologue sélectionne l’émotion correcte et clique sur le bouton « valider » et le
système ajoute l’image dans la base de données pour améliorer la performance du modèle.

61
Figure 5. 5 Diagramme de séquence système de cas « corriger émotion

 Diagramme de séquences système du cas « charger images »


Le psychologue, déjà authentifié va charger un dossier qui contient des images. Si le dossier
contient d’autre fichiers qui ne sont pas des images, le système va les exclure puis afficher les
images dans l’interface

62
Figure 5. 6 Diagramme de séquences du cas « Charger images »

63
5.4 –Diagramme de classes du Sprint 2

Figure 5. 7 Diagramme de classe du Sprint 2

5.5 Codage
Tableau de la base de données

Attributs Type Contraintes


Id Int Primary Key
Emotion Varchar(32)
Image Varchar(100)
Table 5. 6 - Table « émotion »

Attributs Type Contraintes


Id Int Primary Key
session Varchar(32)
Image Varchar(100)
Table 5. 7 - Table « images »

64
5.6 Test
Nous sommes aux dernières phases du Sprint 2. Ces phases consistent à développer les
fonctionnalités et assurer le bon fonctionnement du système. Les interfaces suivantes
représentent le résultat de ces phases :
 Interface de chargement d’image vidéos

Figure 5. 8 Interfaces de chargement d’images à partir d’une vidéo

 Interface de chargement d’images séparées


Le psychologue sélectionne un dossier d’images pour évaluer leurs émotions.

65
Figure 5. 9 Interface de chargement d’images séparées

 Interface de jointure d’une session

66
Figure 5. 10 Interface rejoindre session

5.7 Conclusion
Dans ce chapitre, nous avons réalisé le dernier Sprint de notre projet. Nous avons débuté
par présenter son backlog produit, ensuite nous avons fourni une description textuelle de ses
différents besoins fonctionnels en présentant les acteurs participants et les scénarios relatifs.,
Par la suite, nous avons illustré les diagrammes de cas d’utilisation et de séquences pour ce
Sprint ce qui nous a permis d’aboutir au codage et au test de ses fonctionnalités. Le chapitre
suivant donnera une idée sur l’environnement matériel et l’environnement logiciel qui ont aidé
à ce que notre projet voit le jour.

67
Chapitre 6 Environnement
logiciel et matériel

6.1 Introduction .................................................................................................................... 69


6.2 Environnement de travail ............................................................................................... 69
6.2.1 Matériels utilisés ..................................................................................................... 69
6.2.2 Logiciels utilisés ...................................................................................................... 69
6.2.3 langages adoptés ...................................................................................................... 70
6.3 Conclusion ...................................................................................................................... 71

68
6.1 Introduction
Dans ce chapitre nous allons exposer le matériel utilisé ainsi que les logiciels utilisés et en fin
les langages adoptés

6.2 Environnement de travail


L’une des étapes les plus intéressantes de ce projet est la mise en place de l’environnement
matériel et l’environnement logiciel et le choix de langages de programmation nécessaires pour
le développement et le test de notre application. Dans ce cadre, nous allons mentionner les
différents outils et langages exploités pendant l’élaboration de notre projet.
6.2.1 Matériels utilisés
Le tableau suivant correspond à la description de machine de développement.
Ordinateur : DELL
Processeur CORE i7 vPro
RAM 8.00GB
Disque dur 256 SSD
Système d’exploitation Windows Pro 64 bit
Table 6. 1 - La description de machine de développement

6.2.2 Logiciels utilisés


Dans cette section, nous allons présenter les logiciels et les bibliothèques que nous avons
utilisés pour faire cette application :
Le tableau ci-dessous présent les environnements logiciels utilisées
Nom logo Description
Visual Studio L’éditeur Visual Studio Code (VS code)
Code est un éditeur de code conçu par
Microsoft en 2015. Il a été classé en tête
des outils d’environnement de
développement les plus populaires. Cet
éditeur est proposé en open source sous
licence MIT et disponible à la fois pour
Windows, Linux et Mac. Il se présente
sous la forme d’un environnement multi-
langage léger, facile à manipuler. C’est
la raison pour laquelle nous l’avons
choisi.
PyCharm PyCharm est un environnement de
développement intégré utilisé pour
programmer en Python. Il permet
l'analyse de code et contient un
débogueur graphique. Il permet
également la gestion des tests unitaires,
l'intégration de logiciel de gestion de
versions, et supporte le développement
web avec Django.
MySQL MySQL est un système de gestion de
bases de données relationnelles
(SGBDR). Il est distribué sous une

69
double licence GPL et propriétaire. C'est
l'un des logiciels de gestion de base de
données les plus utilisés au monde
Postman C’est un outil de développement api qui
encapsule plusieurs fonctionnalités. Il
nous permet de gérer et tester nos API
RES
Table 6. 2 - Les environnements logiciels utilisées

6.2.3 langages et frameworks adoptés


Le tableau suivant présente les technologies et langages utilisées
Nom Logo Description
Angular Développé par Google, Angular
est un Framework open source
écrit en JavaScript qui permet la
création d’applications Web et
plus particulièrement de ce qu’on
appelle des « Single Page
Applications » : des applications
web accessibles via une page
web unique qui permet de
fluidifier l’expérience utilisateur
et d’éviter les chargements de
pages à chaque nouvelle action.
Django Django est un framework Web
Python de haut niveau qui
encourage un développement
rapide et une conception propre
et pragmatique. Construit par des
développeurs expérimentés, il
prend en charge une grande
partie des tracas du
développement Web, vous
pouvez donc vous concentrer sur
l'écriture de votre application
sans avoir à réinventer la roue.
C'est gratuit et open source.
HTML est un langage informatique créé
en 1996 qui se charge de la mise
en page des pages web

CSS est un langage créé en 1996 qui


est responsable de la structure du
contenu web

Type Script TypeScript est un langage de


programmation fortement typé
qui s'appuie sur JavaScript, vous
offrant de meilleurs outils à
n'importe quelle échelle.
70
Bootstrap Est un Framework basé sur html
et css, il est responsable de créer
des conception du page web plus
rapide et plus facile
Python Python est un langage de
programmation interprété, multi-
paradigme et multiplateforme. Il
favorise la programmation
impérative structurée,
fonctionnelle et orientée objet
Table 6. 3 - Les technologies et langages utilisées

6.3 Conclusion
Ce chapitre présente la phase de clôture de notre rapport dont nous avons cité les logiciels et
les langages utilisés. Ces outils nous ont apporté de nouvelles compétences à notre formation
universitaire.

71
Conclusion générale
En se basant sur le concept qui indique que l’intelligence artificielle nous a permis de faire
plusieurs tâches à la place des humains et que les visioconférences sont indispensables dans
notre vie actuelle, nous avons pu combiner ces deux atouts pour créer une application de
visioconférence qui vas aider les psychologues à prendre des décisions selon les émotions des
patients qu’ils consultent en visioconférence.
Pour ce faire, nous avons commencé par la présentation de l’organisme d’accueil THIS où nous
avons effectué notre stage. Nous passé à l’établissement d’une étude du projet en général
comportant l’étude de l’existant, le critique de l’existant, et la proposition de notre solution sans
oublier de fixer la méthodologie de gestion et le langage de modélisation adoptés. Notre projet
ne fait pas partie d’une simple application de gestion ordinaire, mais en plus d’une application
de recherche scientifique. Cela nous a poussé à faire un bref aperçu sur un domaine important
de l’intelligence artificielle à savoir la détection faciale et la détection des émotions sans
négliger l’étude des algorithmes de Deep Learning adoptés.
Une fois, l’environnement de recherche a été compris, nous avons présenté la démarche de
détection d’émotions que nous avons suivies. Nous avons également déterminé nos besoins
fonctionnels et non fonctionnels et le rôle de chaque acteur. Nous avons pu appliquer la
méthodologie Scrum en regroupant ces besoins dans des sprints d’une façon significative. Pour
chaque sprint, nous avons décrit textuellement la spécification des besoins, puis abouti
successivement aux phases de conception, de codage et finalement de test. Le travail obtenu
était encourageant et a répondu aux attentes de la société d’accueil THIS. Dans cette société,
nous avons appris l’esprit de groupe et les techniques de communication dans un monde
professionnel vu que notre travail représente un module dans une grande application.
Grâce à ce projet, nous avons en plus découvert un environnement logiciel professionnel et
polyvalent ainsi que de nouvelles bases de données images pertinentes.

72
Référence
- [1] https://www.blogdumoderateur.com/tools/zoom/
- [2] https://www.blogdumoderateur.com/tools/google-hangouts-meet/
- [3] https://www.slideshare.net/ChaymaMghazli/mthode-dagile-scrum-
49631404?ref=&smtNoRedir=1
- [4] https://docplayer.fr/6338906-Developpement-d-une-application-web-pour-la-gestion-
bancaire.html
- [5] https://www.college-de-france.fr/site/stephane-mallat/Introduction-aux-reseaux-de-
neurones-profonds.html
- [6] https://deeplylearning.fr/cours-theoriques-deep-learning/fonction-dactivation/
- [7] https://deeplylearning.fr/cours-theoriques-deep-learning/fonction-dactivation/
- [8] https://neuroconnection.eu/une-introduction-douce-a-la-fonction-sigmoide/
- [9] https://www.journaldunet.fr/web-tech/guide-de-l-intelligence-artificielle/1501861-
tensorflow-tout-savoir-sur-la-plateforme-de-deep-learning-de-
google/#:~:text=TensorFlow%20est%20une%20biblioth%C3%A8que%20open,'intelligence%2
0artificielle%20(IA)
- [10] https://datascientest.com/keras
- [11] https://blogdummi.fr/dossier/architecture-mvc-diviser-pour-mieux-developper/
- [12] https://www.supinfomaroc.com/blog/larchitecture-mvc/

73

Vous aimerez peut-être aussi