Vous êtes sur la page 1sur 7

en

fr

Accueil » Blog » Data » IA » Reconnaissance des émotions

Data IA

Reconnaissance des émotions


Publié le 17/01/2019
Par Charbel Fakhry

Le machine learning a le vent en poupe actuellement. Charbel nous propose de découvrir comment on peut créer un réseau de
neurones prof ond destiné à reconnaître les émotions à partir des images et du son d’une personne.

Depuis des siècles, les f acteurs f ondamentaux de la croissance économique ont été des innovations technologiques. Les plus
importants d’entre eux sont ce qu’on appelle des technologies à usage général telles que la mécanisation et l’automatisation.

La technologie plurivalente la plus sérieuse de notre époque semble être l’intelligence artificielle, en particulier l’apprentissage
automatique, c’est-à-dire la capacité de la machine à continuer d’améliorer ses perf ormances sans que les humains ne doivent
expliquer exactement comment accomplir toutes les tâches. Grâce à l’évolution rapide de ce domaine ces dernières années, on
est aujourd’hui capable de créer des systèmes qui apprennent à ef f ectuer des tâches complexes par eux-mêmes.

L’IA semble être en en mesure d’avoir un impact prof ond, à l’échelle des technologies existantes et limitées, particulièrement
dans le domaine financier. Néanmoins, la plupart des grandes opportunités n’ont pas encore été exploitées.

Dans une optique d’innovation, je vous présente une validation de concept (PoC) d’un prototype de reconnaissance des
émotions en temps réel, à travers les expressions f aciales et la parole qui a pour objectif principal de s’intéresser à l’analyse des
comportements humains sur la base de capteurs. Cela peut être très utile dans les relations commerciales où, en analysant ces
comportements, on est en mesure de mesurer les ef f ets qu’un service a sur un client et donc essayer de l’améliorer.

Ces ef f ets se traduisent par des ’émotions qui varient surtout selon l’âge et le genre de la personne concernée. La
problématique peut donc être abordée en développant un agent intelligent capable de reconnaître les émotions traduites par
les expressions f aciales ainsi que la parole, l’âge et le genre des clients de f açon anonyme et en temps réel.

Définition Globale des Émotions


Les émotions sont des expériences conscientes caractérisées par une intense activité mentale et un degré élevé de plaisir ou
de déplaisir. De plus, elles sont des états de sentiment qui entraînent des changements physiques et psychologiques qui
influencent notre comportement.

Elles peuvent être classées en 7 catégories de base :

1. La joie
2. La tristesse
3. La surprise
4. La peur
5. Le dégoût
6. La colère
7. L’indif f érence

En parlant à d’autres personnes, nous avons tendance à montrer dif f érentes émotions pour les aider à mieux comprendre ce que
nous exprimons ou ressentons. C’est ce qu’on appelle la reconnaissance des émotions.
en
fr

Intuitivement, le cerveau humain est capable de reconnaître les émotions en analysant des caractéristiques spécifiques telles
que le langage corporel, les expressions f aciales ou la tonalité de la parole.

Avec l’avancement en intelligence artificielle et l’apprentissage automatique, il y a eu diverses implémentations de prototypes de


reconnaissance des émotions grâce à l’utilisation de dif f érents algorithmes intelligents tels que la machine à vecteurs de
support (SVM) ou l’Analyse des composantes principales (ACP).

Mais les résultats les plus marquants en termes de précision et de validation ont été atteints jusqu’à présent grâce à l’utilisation
des réseaux de neurones prof onds.

Architecture Globale

Le prototype présenté dans la figure ci-dessus cherche à reconnaître les émotions des personnes en temps réel, à travers un
flux audio et vidéo. L’architecture globale repose sur 2 modèles :

Un système de reconnaissance des émotions à travers les expressions f aciales.


Un système de reconnaissance des émotions à travers la parole.

Tout d’abord en entrée, un flux vidéo, à travers une caméra, alimente le modèle de reconnaissance des émotions f aciales. De
plus, un flux audio à travers un microphone est utilisé pour reconnaître les émotions de la parole.

En outre, on a 3 vecteurs en sortie de taille 7 représentant la distribution des émotions, dont le premier est renvoyé par le
système de reconnaissance des émotions f aciales et le deuxième par le modèle des émotions de la parole. En revanche, le
dernier résultat est l’agrégation (moyenne) des 2 autres vecteurs qui pourrait servir selon le cas d’usage.

La Reconnaissance des Émotions à travers les Expressions


Faciales
en
fr

On s’intéresse à reconnaître les émotions à travers les expressions f aciales en temps réel grâce à un flux vidéo en direct. Bien
qu’un flux vidéo soit une séquence d’images avec un taux de f réquence prédéfini (par exemple, 40 images par seconde ou «
Frames per Second (FPS) »), on prend la dernière image de chaque seconde et l’on détecte tous les visages de cette image.

Ensuite on f ournit les visages recadrés à notre modèle CNN qui va renvoyer une étiquette d’émotion pour chaque visage en
f onction des expressions qu’ils montrent.

C’est ainsi que notre architecture se compose de 2 parties :

1. Dans un premier temps il f aut préparer les données, plus précisément capturer l’image du flux vidéo et détecter les visages
présents.
2. Alimenter le réseau de neurones avec les données préparées.

Réseau de Neurones Convolutifs (CNN)

Un Réseau de neurones convolutif s (Convolutional Neural Networks ou CNN) est une classe des réseaux de neurones prof onds
conçue pour les applications de vision artificielle (Computer Vision) où les données traitées consistent principalement en des
matrices à N-dimensions et dans notre cas des images.

De plus et contrairement à d’autres algorithmes de Machine Learning où on doit manuellement spécifier les caractéristiques qui
sont importantes pour le processus d’apprentissage, le CNN le f ait automatiquement grâce à ses couches cachées.

En outre, des résultats expérimentaux montrent que les modèles CNN of f rent une précision et validation plus élevées que
d’autres algorithmes en traitement d’images.

Représentation d’une image

Une image peut être représentée sous f orme d’une matrice de pixels tridimensionnelle où les attributs correspondent à la
longueur, largeur et prof ondeur de l’image. Par exemple, pour le système de couleur RGB, la prof ondeur est 3.

De ce f ait, on peut considérer qu’une image est la concaténation de 3 matrices telle que chaque matrice spécifie la quantité de
Rouge, Vert et Bleu qui constitue l’image.

Traitement et Préparation des Images


en
fr

La couche d’entrée a des dimensions prédéterminées et fixes, de sorte que l’image doit être prétraitée avant qu’elle ne puisse
être alimentée dans la couche. Pour l’étape de préparation des données, on capture la dernière image de chaque seconde du
flux vidéo.

Puis, on utilise des techniques de détection f aciale (non abordées dans cet article) qui contiennent des filtres appris et l’on se
base sur des optimiseurs comme Adaboost pour trouver et découper rapidement les visages de cette image.

Et dans une dernière étape, on redimensionne les visages recadrés pour qu’elles deviennent des images carrées de taille (n x n x
3) pour un traitement plus simple.

Conception du Modèle

Après avoir préparé l’image, on propose le visage recadré à une première couche de convolution où il f aut spécifier le nombre de
filtres comme l’un des paramètres. L’ensemble des filtres sont uniques avec des poids aléatoires tel que chaque filtre glisse sur
l’image d’entrée pour générer un « f eature map » en sortie.

Couche(s) de Convolution

Le but principal d’une couche de convolution est d’extraire des caractéristiques (f eature maps) de l’image en entrée. En f ait, la
convolution préserve la relation spatiale entre les pixels, en apprenant des caractéristiques d’image, en réduisant le nombre de
paramètres libres et améliorant la généralisation.

En ef f et, la couche de convolution contient plusieurs filtres apprenants, qui sont des petites f enêtres ou matrice 2D, qu’on
glisse sur notre matrice d’entrée pour calculer le produit scalaire entre cette dernière et les valeurs du filtre concerné. En sortie,
une matrice contenant des caractéristiques spécifiques appelée « f eature map » est générée pour chaque filtre.

Rectified Linear Unit (ReLU)

Il est important d’appliquer une couche non linéaire (ou couche d’activation) immédiatement après une couche de convolution. Le
but de cette couche est d’introduire la non-linéarité dans un système qui vient tout juste de calculer des opérations linéaires.

Par conséquent, on choisit d’utiliser les couches ReLU parce que le réseau peut apprendre beaucoup plus rapidement qu’avec
d’autres f onctions, telle que la tangente hyperbolique «tanh», (en raison de l’ef ficacité de calcul) sans f aire une grande
dif f érence de la précision.

La couche ReLU applique la f onction f (x) = max (0, x) à toutes les valeurs du volume d’entrée. Plus précisément, cette couche
met à 0 toutes les activations négatives.

Couche(s) de Pooling
en
fr

Pooling est une technique de réduction de dimension appliquée habituellement après une ou plusieurs couches de convolution
qui conserve les inf ormations les plus importantes. Il existe plusieurs types de pooling : Max, Moyenne, Somme, etc.

Par exemple, dans le cas du Max pooling, on définit une f enêtre glissante de taille mxm et on prend le plus grand élément du
f eature map dans cette f enêtre.

Couche(s) Dense(s)

La couche dense s’inspire de la f açon dont les neurones transmettent des signaux par le cerveau, telle que tous les neurones
d’une couche sont totalement connectés à toutes les activations dans la couche précédente.

En ef f et, les poids d’une couche dense sont appris par une passe avant (f orward propagation) des données d’apprentissage et
puis par une passe arrière (back propagation) de ses erreurs. Cette dernière commence par évaluer la dif f érence entre la
prédiction et la sortie désirée et puis ajuste des poids, nécessaire à chaque couche préalable.

Cependant, la complexité de l’architecture et la vitesse d’apprentissage dépendent de plusieurs paramètres comme le taux
d’apprentissage (learning rate) et la densité du réseau.

Sortie Softmax

On utilise une couche de Sof tmax pour transf ormer des scores logistiques calculés dans la couche dense en une distribution
probabiliste en sortie. Cette sortie n’est pas unif orme ou proportionnelle. En f ait, la couche Sof tmax est exponentielle et peut
élargir les dif f érences. Par exemple, cette f onction peut rapprocher la probabilité d’un résultat de 1 et d’un autre de 0.

Par conséquent, le modèle est capable de montrer la distribution de probabilité des émotions f aciales.

Conclusion
Dans cette première partie, j’ai présenté la mise en œuvre théorique d’un système intelligent de reconnaissance des émotions
par détection f aciale, à l’aide des techniques d’apprentissage prof ond. En conséquence, dans un prochain article, je parlerai d’un
système plus complexe impliquant la reconnaissance des émotions de la parole et vous présenterai des cas d’usage réels
pouvant contribuer à l’amélioration des relations commerciales.

Pas encore de commentaires

Publier un commentaire
Tapez votre commentaire ci-dessous

Votre nom*

Entrez un vrai nom

Votre email*

Ne sera jamais publié

Enregistrer mon nom, mon e-mail et mon site web dans le navigateur pour mon prochain commentaire.
SOUMET T RE LE COMME NTAIRE en
fr

Auteur
Charbel Fakhry
Spécialiste en Intelligence Artificielle et Data Scientist, diplômé
d'un Master en Intelligence Artificielle de l'Université Pierre et
Marie Curie et d'un diplôme d'ingénieur en Inf ormatique de la
Lebanese American University, Charbel a travaillé sur de nombreux
projets innovants en Machine / Deep Learning et Intelligence
Artificielle, dont un système de reconnaissance d'émotions grâce à
la reconnaissance vocale et f aciale. Il intervient sur divers projets
d'IA innovants chez des grands clients principalement dans le
secteur financier tels que le Crédit Agricole et la Société
Générale.

Découvrir ses autres articles

La reconnaissance des émotions de la parole

Partager :


 Envoyer :

Actualités et évènements similaires

Développement applicatif Par Meriteam IA Par Meriteam

26/03/2021 20/04/2020

Crack The Captcha Challenge Meetup – Introducing


© – Les éléments de Knowledge Graph
résolution Convolutional Networks
Le 25 mars 2021, des Développeurs & Data Découvrez ou redécouvrez en vidéo le
Scientists de tous les niveaux ont participé à Knowledge Graph Convolutional Networks,
notre évènement, le Crack The Captcha une nouvelle technique dans le domaine du
Challenge. Un concours qui consistait à Machine Learning.
cracker 10 000 captchas par programmation
en 2 heures ! Découvrez dans cet article les
éléments de réponse à ce challenge.

VOIR T OUT E S LE S ACT UALIT É S


en
fr

INSCRIVEZ-VOUS À LA NEWSLETTER RETROUVEZ-NOUS SUR


Et recevez chaque mois les dernières actus sélectionnées par Meritis
    
E-mail*

OK

Meritis est certifiée GPTW pour la 4ème f ois !


3ème place en France*

11ème du Palmarès Européen

*Great Place To Work 2020 des entreprises de 250


© 1970-2021 MERITIS - Tous droits réservés -
Mentions légales - Politique de confidentialité à 1000 salariés.

Vous aimerez peut-être aussi