0% ont trouvé ce document utile (0 vote)
360 vues96 pages

Génération Vidéo Automatique avec GANs

Ce rapport de stage présente un projet de génération de vidéos automatique à l'aide de réseaux antagonistes génératifs (GAN) pour améliorer les services d'apprentissage en ligne. Le système proposé utiliserait des modules de synthèse vocale, de synchronisation audio-vidéo et de texture faciale pour automatiser la production de vidéos à partir de texte, facilitant ainsi le travail de validation des vidéos de cours.

Transféré par

Hajar Houmane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
360 vues96 pages

Génération Vidéo Automatique avec GANs

Ce rapport de stage présente un projet de génération de vidéos automatique à l'aide de réseaux antagonistes génératifs (GAN) pour améliorer les services d'apprentissage en ligne. Le système proposé utiliserait des modules de synthèse vocale, de synchronisation audio-vidéo et de texture faciale pour automatiser la production de vidéos à partir de texte, facilitant ainsi le travail de validation des vidéos de cours.

Transféré par

Hajar Houmane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ROYAUME DU MAROC

*-*-*-*-*
HAUT COMMISSARIAT AU PLAN
*-*-*-*-*-*-*-*
INSTITUT NATIONAL
DE STATISTIQUE ET D’ECONOMIE APPLIQUEE
INSEA

Projet de Fin d’Etudes


*****

Automatic video post-production using


GAN (Generative Adversarial Network)

Préparé par : Mme. HENDOR Ouiam

Sous la direction de : M. SAIDI Mohamed Nabil (INSEA)


Mme. TABITI Khouloud (UM6P)

M. EL ALAMI Rafiq (UM6P)


Soutenu publiquement comme exigence partielle en vue de l’obtention du

Diplôme d’Ingénieur d’Etat


Filière : INFORMATIQUE
Option : Ingénierie de données et informatique décisionnelle

Devant le jury composé de :


• M. SAIDI Mohamed Nabil (INSEA)
• M. El HACHIMI ALAOUI Ali (INSEA)
• Mme. TABITI Khouloud (UM6P)
1

September 2020 / PFE N° 40


Résumé

Résumé :

Cette mémoire a pour objectif de donner un aperçu de stage que j'ai effectué au sein
de l’université Mohammed 6 polytechnique dont La thématique du projet repose sur la
génération des vidéos à l’aide des GANs, utile à l’évolution et à l’amélioration des services
du E-Learning.

En effet, de plus en plus aujourd’hui, la technologie est présente partout et que tous
les organismes se précipitent à l’intégrer dans leurs services, la raison pour laquelle L’UM6P
a lancé ce projet.

Ce système a pour objectif de pouvoir travailler dans la plus grande commodité́ avec
une rentabilité́ accrue. ce projet est un système de génération des vidéos à partir des textes,
est mis en place pour automatiser leur traitement.

Ce système implémenté suivant l’architecture de LSTM et GANs a pour but de


faciliter de travail de l’équipe DLL qui valide les vidéos cours et les postent sur la plateforme
E-learning.

Ce rapport de fin d’études entre dans le cadre de la conception et de la réalisation d’un


système complet pour générer des vidéos avec GANs.

La solution proposée est basée sur les modules suivants :

➢ Text2speech.

➢ Audio2mouth.

➢ Facial texture synthesis.

Mots-clés: Pix2Pix, Gan,videos,images,audios,LSTM,Deep learning ,CNN…

2
Table des matières

Table des matières


Résumé : ............................................................................................................................................... 2
Table des matières ................................................................................................................................ 3
Liste des abréviations : ......................................................................................................................... 7
Table de figures :.................................................................................................................................. 8
Remerciement : .................................................................................................................................. 10
Dédicace : ........................................................................................................................................... 11
Abstract: ............................................................................................................................................. 12
Introduction générale : ....................................................................................................................... 13
Chapitre 1 : Contexte général du projet ............................................................................................. 15
Introduction : .................................................................................................................................. 15
Motivation : .................................................................................................................................... 15
1- Présentation de l’organisme d’accueil : .................................................................................. 16
2- Missions de l'UM6P : .............................................................................................................. 16
3- Partenaires de l'UM6P : .......................................................................................................... 17
4- Chiffres Clés de l'UM6P : ....................................................................................................... 18
5- Digital Learning lab : .............................................................................................................. 18
6- État de l’art : ............................................................................................................................ 19
7- Contexte du projet : ................................................................................................................. 19
6-1- Analyse du besoin : ...................................................................................................... 19
6-2- Problématique du projet : ............................................................................................. 20
6-3- Objectifs du projet :...................................................................................................... 21
7- Études conceptuelles : ............................................................................................................. 22
7-1- Méthode adoptée : ........................................................................................................ 22
7-2- Cycle CRISP : .............................................................................................................. 22
7-3- Gantt Project ................................................................................................................ 25
Conclusion : ................................................................................................................................... 25
Chapitre 2 : Génération des vidéos. ................................................................................................... 27
Introduction : .................................................................................................................................. 27
Motivation : .................................................................................................................................... 27
1- Revue de littérature des systèmes de Génération des vidéos : ................................................ 28
1-1- FakeApp : ..................................................................................................................... 28
1-2- Face App : .................................................................................................................... 28
2- GAN et génération des vidéos : .............................................................................................. 29

3
Table des matières

3- VAE et génération des vidéos : ............................................................................................... 30


3-1- C’est quoi un VAE ou auto-encodeur variationnel ? ................................................... 30
3-2- Génération des vidéos à l’aide du VAE : ..................................................................... 32
4- Comparaison entre les méthodes de génération des vidéos : .................................................. 33
5- Vers un système de génération des vidéos pour une plateforme e-learning ........................... 33
5-1- Revue de littérature : .......................................................................................................... 33
5-2- Utilité du système proposé : ............................................................................................... 34
5-3- Architecture de système : ................................................................................................... 34
Conclusion : ................................................................................................................................... 35
Chapitre 3 : Deep Learning (Apprentissage Profond) : ..................................................................... 36
Introduction : .................................................................................................................................. 36
Motivation : .................................................................................................................................... 36
1- GAN : ...................................................................................................................................... 37
1-1- Définition : ................................................................................................................... 37
1-2- Architecture des GANs : .............................................................................................. 37
1-3- Les cas d'utilisation des GANs .......................................................................................... 38
2- RNN : ...................................................................................................................................... 39
2-1- Définition : ......................................................................................................................... 39
2-2- Architecture : ...................................................................................................................... 39
2-3- Applications des RNN : ...................................................................................................... 40
2-4- Mémoire à long terme à court terme LSTM : .................................................................... 40
3- Réseau de neurones convolutionnel (CNN) : .......................................................................... 42
3-1- Définition : ................................................................................................................... 42
3-2- Architecture :................................................................................................................ 42
4- Fonction d'activation : ............................................................................................................. 43
4-1- Fonction d'activation linéaire : ..................................................................................... 43
4-2- Fonction d'activation non linéaire : .............................................................................. 44
4-3- Sigmoïde : .................................................................................................................... 44
4-4- Tanh : ........................................................................................................................... 45
4-5- Relu : ............................................................................................................................ 46
4-6- Softmax : ...................................................................................................................... 47
5- Highway Networks : ............................................................................................................... 48
6- L'algorithme L-BFGS-B : ....................................................................................................... 49
7- Couche convolutionnelle1D :.................................................................................................. 49
Conclusion : ................................................................................................................................... 49
Chapitre 4 : développement du modèle.............................................................................................. 50
Introduction : ................................................................................................................................. 50

4
Table des matières

Motivation : .................................................................................................................................... 50
1- Outils utilisés : ........................................................................................................................ 50
1- Description de la dataset : ....................................................................................................... 54
2- Data Preprocessing :................................................................................................................ 55
2-1- Extraction des images à partir des vidéos : ........................................................................ 55
2-2- Extraction de l’audio : ........................................................................................................ 56
2-3- extraction des points clés de la bouche : ............................................................................ 58
2-4- extraction des points clés des audios : ................................................................................ 60
2-5- Analyse en composants principales (ACP) : ...................................................................... 61
2- Text2speech : ............................................................................................................................. 61
2-1- La génération de voix à l’aide de pyttxs3 : ........................................................................ 62
2-3- Génération à l’aide d’un réseau de neurone convolutif profond : ...................................... 64
2-3- Adaptation de voix : ........................................................................................................... 66
3- Audio-to-mouth :..................................................................................................................... 69
3-1- Méthodologie : ................................................................................................................... 69
3-2-Architecture : ....................................................................................................................... 71
5-1- Fonction de perte :........................................................................................................ 71
5-2- Résultat : ...................................................................................................................... 72
6- FACIAL TEXTURE SYNTHESIS : ...................................................................................... 73
4-1- Pix2Pix model : .................................................................................................................. 73
4-2- UNET : ............................................................................................................................... 76
4-3- Architecture : ...................................................................................................................... 77
4-4- Fonction de perte : .............................................................................................................. 77
4-5- Génération des images : ..................................................................................................... 78
Conclusion : ................................................................................................................................... 80
Chapitre 5 : Résultats & Discussion ................................................................................................. 81
Introduction .................................................................................................................................... 81
Motivation : .................................................................................................................................... 81
1- Qualité des images : ................................................................................................................ 82
1-1- Entrainement des images : ........................................................................................... 82
1-2- Similarité : .................................................................................................................... 84
1-3- Synchronisation vidéo-audio : ..................................................................................... 86
2- Contraintes : ............................................................................................................................ 86
3- Limites de projet : ................................................................................................................... 87
4- Perspectives :........................................................................................................................... 88
3-1- Audio to mouth :................................................................................................................. 88
3-2- FACIAL TEXTURE SYNTHESIS .................................................................................... 90

5
Table des matières

5- Apports : .................................................................................................................................. 91
6- Synthèse : ................................................................................................................................ 92
Conclusion : ....................................................................................................................................... 93
Références .......................................................................................................................................... 94

6
Liste des abréviations

Liste des abréviations :

LSTM : La mémoire à court terme.


GAN : Réseau antagoniste génératif.
VAE : Auto-encodeur variationnel.
UM6P : Université Mohamed 6 Polytechnique.
DLL : Digital Learning Lab.
DFR : Digital For Research.
RNN : Réseau de neurones récurrents.
CNN : Réseau de neurones convolutifs.
TTS : Text To Speech.
MFCC : Coefficients Cepstraux à Fréquence Mel.
ACP/PCA : Analyse En Composantes Principales.
DCTTS: Deep Convolutional TTS (Text to Speech).
SSRN: Spectrogramme Super-resolution Network.
ISTFT : Transformée de Fourier à court terme inverse.
TCN : Réseau convolutif temporel.
GPU : Pprocesseur graphique.
HPC : High-performance computing.
CGAN : Réseau antagoniste génératif conditionnel.

7
Table de figures

Table de figures :
Figure 1 : Méthode scrum.
Figure 2 : Cycle CRISP-DM.
Figure 3 : Cycle CRISP-DM.
Figure 4 : Diagramme de Gantt
Figure 5 : Composants du GAN.
Figure 6 : Architecture VAE.
Figure 7 : Résultat de génération à travers VAE.
Figure 8 : Architecture de projet.
Figure 9 : Architecture des GANs
Figure 10 : Architecture RNN.
Figure 11 : Applications RNN.
Figure 12 : Schéma d’un réseau LSTM.
Figure 13 : Architecture d’un CNN.
Figure 14 : Couches du réseau CNN.
Figure 15 : Fonction linéaire.
Figure 16 : La fonction non linéaire.
Figure 17 : Fonction sigmoïde
Figure 18 : Fonction Tanh.
Figure 19 : La fonction softmax.
Figure 20 : Ligne de commande pour extraction des images
Figure 21 : Exemple des images extraites.
Figure 22 : Ligne de commande pour l’extraction des audios
Figure 23 : Waveforme d’un audio extrait.
Figure 24 : Spectrogramme de l’audio extrait
Figure 25 : L’index de 68 coordonnées de Dlib.
Figure 26 : Coordonnées de la bouche d’une image extraite.
Figure 27 : MFCCS des audios extraits.
Figure 28 : Waveforme de l’audio généré.
Figure 29 : Le spectrogramme d’audio généré.
8
Table de figures

Figure 30 : Architecture Text2Mel.


Figure 31 : Graphe de la fonction de perte du module text2speech.
Figure 32 : graphe de fonction de perte.
Figure 33 : Schéma explicative du fonctionnement du LSTM dans notre cas.
Figure 34 : Architecture adoptée pour la partie audio to mouth.
Figure 35 : Fonction de perte du LSTM.
Figure 36 : Résultat de la fonction de perte à la fin de l’entrainement.
Figure 37 : Résultat de LSTM.
Figure 38 : Transformation d’un dessin en image réelle.
Figure 39 : Architecture du générateur.
Figure 40 : Liaison entre les couches UNET.
Figure 41 : Entrainement de pix2pix.
Figure 42 : Exemple des images d’entrée pour pix2pix.
Figure 43 : Résultat générée à l’aide de pix2pixHD.
Figure 44 : Images générées après un entrainement resp de 3 epochs, 20 epochs et 70 epochs
Figure 45 : La fonction de perte du générateur.
Figure 46 : La fonction de perte discriminateur sur les images non réalistes.
Figure 47 : La fonction de perte discriminateur sur les images réalistes.
Figure 48 : Similarité entre une image réelle et image générée avec 70 epochs dans l’entrainement.
Figure 49 : La fonction de perte du LSTM.
Figure 50: Architecture audio to mouth avec TCN et les GAN.
Figure 51: Architecture everybody can dance.

9
Remerciement

Remerciement :

En préambule à ce mémoire, je rends grâce au Tout Puissant qui m’a aidé et m’a donné la
patience et le courage durant ces longues années d’étude.

Mes sincères remerciements sont adressés à M. Rafiq EL ALAMI qui m’a fait confiance et
m’a offert cette opportunité pour développer mes capacités dans le domaine du deep learning. Merci
infiniment.

Je tiens à remercier dans un premier temps mes professeurs et toute l’équipe pédagogique de
l’Institut National de Statistique et d’Économie Appliquée pour avoir assuré la partie théorique de
ma formation, durant mes 3 ans d'études à l'INSEA.

Mes remerciements vont à l’endroit de mes encadrants [Link] Tabiti et M. SAIDI


Mohamed Nabil. Ils se sont toujours montrés à l’écoute et très disponibles tout au long de la
réalisation de ce mémoire, ainsi pour l’inspiration, l’aide et le temps qu’ils ont bien voulus
m’accorder.

Également à M. Hamza Sbaai pour sa patience et son partage de connaissance qui était plus
que bénéfique pour moi. Je remercie aussi [Link] Salhi et M. Ayoub Bella pour leur
gentillesse et courtoisie.

Je remercie particulièrement ma collégue Sara foulani, qui est ma meilleure rencontre de


2020, pour son aide et sa collaboration, et que ce projet soit le début de pleins autres.

Je remercie surtout toute ma promotion sans exception, ils m’ont été tous utiles au cours de
ce cursus scolaire. Je salue ainsi la cohabitation harmonieuse au sein de cette entité.

10
Dédicace

Dédicace :
Toutes les lettres ne sauraient trouver les mots qu’il faut. Tous les mots ne sauraient
exprimer la gratitude, l’amour, le respect, la reconnaissance.

Je dédie ce modeste travail :

A mes parents,

Ma chère mère, Autant de phrases et d’expressions aussi éloquentes soient-elles ne sauraient


exprimer ma gratitude et ma reconnaissance. Tu as su m’inculquer le sens de la responsabilité, de
l’optimisme et de la confiance en soi face aux difficultés de la vie. Tes conseils ont toujours guidé
mes pas vers la réussite. Ta patience sans fin, ta compréhension et ton encouragement sont pour moi
le soutien indispensable que tu as toujours su m’apporter. Je te dois ce que je suis aujourd’hui et ce
que je serai demain et je ferai toujours de mon mieux pour rester ta fierté et ne jamais te décevoir.
Que Dieu le tout puissant te préserve, t’accorde santé, bonheur, quiétude de l’esprit et te protège de
tout mal. J’espère que votre bénédiction m’accompagne toujours. Que ce modeste travail soit le
fruit de vos innombrables sacrifices.

A la mémoire de mon cher père, je rêvais de ce jour-là pour que vous soyez fier de moi, de
ce que je suis aujourd’hui et de ce que je serai demain, mais malheureusement vous n’êtes plus avec
nous, que votre âme soit en paix.

Ma chère sœur et mon cher frère :

Je dédie ce travail à ma petite sœur Rajae et mon grand frère Mohammed. Grâce à leur
soutien, leur tendresse, je n’aurai pas pu réaliser ce travail. Vous me complétez. Vous êtes mes
perles.

A Youness :

Je dédie ce travail aussi à Youness…. Mon conseiller, mon ami fidèle qui m’a assisté dans
les moments difficiles. Je te suis très reconnaissante, et je ne te remercierai jamais assez pour ton
amabilité, ta générosité, ton aide précieuse.
11
Abstract

Abstract:
In order to follow the wave and digitize its services, the DFR with the UM6P decided to
launch this project to facilitate the manipulation of videos. This system is designed to be able to
work in the greatest convenience with increased profitability. Our project is a system for generating
videos from text, which is set up to automate their processing.

This system implemented according to the architecture of LSTM and GANs aims to
supplement the DLL team who validate the videos courses and post them on the E-learning
platform.

This graduation report is part of the design and construction of a Complete System for
Generating Videos with GANs.

Our solution is based on the following modules:

➢ Text2speech.

➢ Audio2mouth.

➢ Facial texture synthesis.

Keywords: Pix2Pix, Gan,videos,images,audios,LSTM,Deep learning, CNN…

12
Introduction générale

Introduction générale :
Le progrès informatique et technologique n’a pas cessé d’avoir un impact primordial sur la
vie des populations, en constituant le socle de l’épanouissement et de l’amélioration des conditions
de vie.

Cette évolution, aujourd’hui, matérialisée par une transformation digitale désignant le


processus numérique qui consiste pour une organisation, à intégrer pleinement des technologies
dans l’ensemble de ses activités comme l’intelligence artificielle, Data Mining, Big data ….

En effet, L’intelligence artificielle est la science dont le but est de permettre à des machines
d’accomplir des tâches et de résoudre des problèmes normalement réservés aux humains et à
certains animaux. Cette discipline est devenue irrévocable car elle permet de simuler l’intelligence
humaine en permettant à une machine d’analyser et de comprendre un objet bien précis ainsi que
son fonctionnement.

Tels que les vidéos ainsi que les images qui sont de nos jours des supports pouvant en
contenir une multitude d’information. De ce fait ; il y a une obligation de les traiter, les reconnaître,
d’y stocker ou d’y extraire des informations. C’est pourquoi, de nombreuses recherches et de cas
d’utilisation des technologies de l’intelligence artificielle portent sur le traitement d’image.
Notamment en ce qui concerne le Machine Learning qui est une branche de l’intelligence artificielle
qui permet de mettre en place des programmes informatiques capables de réaliser des tâches sans
être explicitement programmés.

Ce PFE se concentrera sur le développement et le déploiement d’un modèle de génération


des vidéos pour une plateforme E-learning appartenant à l’Université Mohammed 6 Polytechnique.
Ce modèle nous permet, en se basant sur des anciens vidéos réaliser par des professeurs, de générer
des vidéos qui sont sans fautes au niveau du visage.

Ce rapport organisé en cinq chapitres :

• Le premier chapitre présentera le cadre général du projet avec la description de l'organisme


d'accueil, le contexte du projet et la méthodologie adoptée pour mener à bien réaliser ce projet.

• Le deuxième chapitre présentera les approches populaires pour la génération des vidéos
ainsi qu'une exploration des recherches déjà faite sur le sujet.
13
Introduction générale

• Le troisième chapitre sera un aperçu sur des ensembles de données qu’on a utilisé tout au
long de ce projet avec une explication détaillée de l'étape de prétraitement, de la phase d'ingénierie
des caractéristiques, ainsi que de leurs résultats d'évaluation.

• Le quatrième décrit d'abord le modèle de base et sa mise en œuvre, puis explique nos
solutions proposées, leurs paramètres clés, la formation et le processus d'optimisation.

• Le dernier chapitre couvre les résultats et les limites obtenus à la fin, ainsi qu'une
explication étape par étape du résultat final, ses performances prévisionnelles sur l'ensemble des
tests.

14
Chapitre 1 : contexte général du projet

Chapitre 1 : Contexte
général du projet

Introduction :

Le but de ce chapitre introductif est de présenter le contexte général du projet. Tout d'abord,
il présente l'organisme d'accueil, son histoire, ses projets ainsi que la plateforme « E-learning »
Ensuite, on a prévu une présentation du cadre général du projet, en insistant sur sa problématique,
ses motivations et ses objectifs. Comme pour la dernière partie, l'accent sera mis sur la description
de la méthodologie adoptée pour mener à bien ce projet.

Motivation :

L’environnement dans lequel j’ai effectué le stage est considéré parmi les facteurs qui
peuvent affecter l’élaboration du projet, donc il est nécessaire de présenter l’organisme en premier
lieu puis on va se concentrer sur le besoin de ce dernier envers ce projet ainsi que la problématique
sans négliger la méthodologie adoptée lors de la réalisation.

15
Chapitre 1 : contexte général du projet

1- Présentation de l’organisme d’accueil :


Située dans la commune de Benguerir, à proximité de Marrakech, et logée au cœur de la
Ville Verte Mohammed VI, l’Université Mohammed VI Polytechnique ambitionne de rayonner à
l’échelle nationale, continentale et internationale [1].

Inaugurée en 2017 par Sa Majesté le Roi Mohammed VI que Dieu L’assiste, dans le cadre
des grands projets de développement du Groupe OCP, l’UM6P ambitionne de s’ériger comme un
pôle universitaire de rang mondial. Elle a pour vocation d’offrir un cadre de vie attractif et
écologiquement exemplaire autour d’un écosystème du savoir. L’Université se positionne dans une
ville nouvelle, aux dimensions à la fois locale et nationale.

Compte tenu de la conception et de l’ambition attachées à l’UM6P, cœur de la ville


nouvelle, ce projet est également porteur d’une dimension nationale car l’UM6P est appelée à jouer
un rôle majeur dans le succès de l’émergence industrielle du royaume, par son apport en matière de
formation, de recherche et innovation.

L'Université accueillera à terme 12 000 étudiants, encadrés par 1 000 professeurs et


chercheurs. Sa carrière internationale montre une forte orientation vers les pays émergents et va
également initier la création d'un réseau avec les autres universités.

Plus qu’une institution académique classique, l’Université Mohammed VI Polytechnique


(UM6P) est une plateforme d’expérimentation, un vivier d’opportunités.

Construite par les architectes Ricardo Bofill et Elie Mouyal, l'Université et ses installations
ont été conçues pour l'enseignement et la qualité de vie à dimension humaine, où l'individu a sa
place [1].

L'UM6P dispose de plusieurs laboratoires de recherche : MSN, Agricultural Research


Center (ESAFE), FABLAB, SIMLAB et DFR.

2- Missions de l'UM6P :
Ayant pour mission principale le développement du savoir, de la science et de la technologie,
l’Université s’est fixée de grandes ambitions :

16
Chapitre 1 : contexte général du projet

• Développement des compétences et du savoir.

• Donner naissance à une nouvelle génération de leaders compétents.

• Promouvoir la recherche.

• Partager les valeurs de responsabilité sociale et de développement durable.

• Développer des partenariats durables.

L’Université Mohammed VI Polytechnique, en tant qu’université à réputation internationale,


est connectée à un réseau global d’universités, d’institutions et d’acteurs industriels.

3- Partenaires de l'UM6P :
Parmi les institutions avec lesquelles l’Université a initié des collaborations :

• Arizona State University, Etats Unis.

• Columbia Business School, Etats Unis.

• Cranfield University, Royaume-Uni.

• École des Ponts ParisTech, France.

• École Normale Supérieure de Cachan, France.

• École Polytechnique, France.

• Mines ParisTech, Paris.

• HEC Paris, France.

• Institut National Polytechnique Félix Houphouët Boigny, Cote d’Ivoire.

• Instituto Internacional San Telmo, Espagne.

• Massachusetts Institute of Technology, Etats Unis.

• Rothamsted Research, Royaume-Uni.

17
Chapitre 1 : contexte général du projet

• Royal United Services Institute, Royaume-Uni.

• SciencesPO, France.

• Université Cadi Ayyad de Marrakech, Maroc.

• Université de Liège, Belgique.

• Université polytechnique de Montréal, Canada.

• University of California, Davis, Etats Unis.

4- Chiffres Clés de l'UM6P :


✓ 2017 : Inauguration.

✓ 540 : Étudiants.

✓ 120 : Doctorants.

✓ 5 : Formations Postbac.

✓ 5 : Masters.

✓ 7 : Masters Exécutifs.

✓ 10 : Certificats.

✓ 17 Ha de Superficie du campus.

✓ 110 Ha de Ferme Expérimentale.

5- Digital Learning lab :


Dirigé par M. Rafiq El Alami ; le DLL est l’entité responsable de la plateforme E-learning de
l’Université qui a pour but de préparer les cours en ligne sous format vidéo et texte. ce projet fait
partie de plusieurs projets que le Dll prévoit afin de présenter des bonnes formations aux utilisateurs
de sa plateforme.

18
Chapitre 1 : contexte général du projet

6- État de l’art :
Suivre des cours en ligne est devenu une tendance voire une obligation vu les opportunités
qu’ils offrent et aussi les circonstances qu’on vit ces jours-là. Surtout qu’on a la possibilité d’avoir
des certificats des universités ou des organisations internationales à partir de chez soi.

Ces cours sont souvent sous format vidéo pour plus d’interaction, mais pour produire des
vidéos si parfaites, un long processus est fait derrière. Ce processus peut être compliqué et
interrompu des fois à cause des erreurs qui sont commis par les professeurs ou les caméramans lors
de l’enregistrement.

Pour corriger ces imperfections, les spécialistes utilisent des logiciels de montages pour
avoir un résultat cohérant, ce montage peut causer la perte de grandes parties du cours ce qui
demande la plupart du temps de filmer de nouveau la partie manquante.

Avec la révolution de la technologie, le rendu de ce montage n’est plus satisfaisant d’où la


recherche des solutions est devenue une nécessité.

Dans cette partie, l’objectif est de discuter l’état de l’art des nouvelles technologies qui
peuvent remplacer les méthodes existantes.

7- Contexte du projet :
6-1- Analyse du besoin :

« L’e-learning est l’utilisation des nouvelles technologies multimédias de l’Internet pour


améliorer la qualité de l’apprentissage en facilitant d’une part l’accès à des ressources et à des
services, d’autre part les échanges et la collaboration à distance » la définition donnée par l’union
européen du E-learning. En effet, ce célèbre terme est composé du préfixe « E » pour web, numérique
et « Learning » pour apprentissage, donc il signifie á la lettre : formation sur internet [2].

C’est un dispositif d’apprentissage qui est organisé à distance et en ligne, à partir de l’outil
informatique (tout objet connecté et une connexion internet). Il consiste à mettre à disposition d’un
apprenant ou d’un groupe d’apprenants des modules qui délivrent un contenu pédagogique et qui
peuvent inclure différentes interactions comme des Tests, des Qcm et des Tps. Pour se former les
plateformes « E-learning » se structurent autour de vidéos, d’animations, de textes, et de tests en tout
genre.
19
Chapitre 1 : contexte général du projet

Ces jours-là, Le Maroc vit des circonstances particulières avec la pandémie COVID-19.
Pour cela l’UM6P et plus précisément le Digital Learning Lab a développé une plateforme e-
learning (Figure 1) destiné aux élèves de classes préparatoires pour leur présenter les cours de
maths et physique sous forme de vidéos avec des description de chaque partie. L’intérêt principal de
ce projet est de permettre aux étudiants de bénéficier d’une salle de classe virtuelle et mobile où Le
cours devient accessible 7 jours sur 7, 24h sur 24, tout en contrôlant le temps de leur apprentissage.

Figure 1 : Plateforme « prépa digitale ».

La majorité des vidéos présentées sur la plateforme doit respecter des exigences bien
précises qu’on peut les résumer dans la qualité des vidéos faites pour faciliter la compréhension aux
étudiants, et aussi la disponibilité des professeurs pour présenter leurs cours.

Donc ce projet s’inscrit dans le cadre d’amélioration de la qualité des vidéos offertes et la
génération d’autres qui sont plus lisible que les précédentes.

6-2- Problématique du projet :


Comme on avait déjà présenté dans la partie précédente, le but de la plateforme c’est de
produire des cours aux étudiants sous forme des vidéos pédagogiques.

Le problème c’est que ces vidéos peuvent contenir des fautes commises par les professeurs.
Souvent, elles peuvent se résider dans l’articulation des mots ou bien au niveau du visage du
professeurs.

20
Chapitre 1 : contexte général du projet

Chaque professeur prononce un mot d’une manière différente des autres, mais il peut
commettre une erreur lors de l’articulation d’une lettre c’est-à-dire quand il dit « Bonjour », ce qui
sort de sa bouche n’est pas compatible avec ce qu’il doit dire.

Il se peut aussi qu’un professeur lors de sa présentation du cours, ferme ses yeux ou bien
éternue ; ce qui va rendre la vidéo imparfaite.

C’est alors dans cette perspective que ce sujet de stage de fin d’études se présente afin de
répondre aux questions suivantes :

• Comment peut-on générer une vidéo propre, compréhensible ?

• Comment peut-on bénéficier des vidéos précédentes pour réaliser nos objectifs ?

• Quelles sont les critères à respecter pour avoir une vidéo réaliste ?

6-3- Objectifs du projet :


De nos jours, traiter et exploiter les données médias comme les images et les vidéos est devenu
une tendance technologique qui a poussé les organismes qui se sentent concernés par la science des
données, de profiter du maximum de valeur ajoutée ainsi de ces informations non exploitées durant
des années.

L’UM6P est aussi attirée par cette vague, surtout qu’elle stock une large masse de données ;
c’est la raison pour laquelle elle utilise cette science souvent dans ces projets.

L’idée de la mise en place d’un projet de génération des vidéos vient pour offrir aux étudiants
une meilleur expérience durant leur utilisation de la plateforme, ce projet se compose de plusieurs
modèles. Commençant par le modèle TEXT2SPEECH qui va générer un audio à partir d’un texte en
adaptant la voix avec celle du professeur. Puis la génération du contour de la bouche selon le mot qui
va prononcer le professeur va se faire à l’aide d’un modèle appelé AUDIO TO MOUTH puis on va
utiliser le FACIAL TEXTURE SYNTHESIS afin d’adapter le visage du professeur avec le cadre de
la vidéo et faire le fine tuning ou bien les dernières retouches.

Du coup, ce système permettra à la fois de :

• Amélioration de la qualité des vidéos.

• Corriger les fautes commises par les professeurs dans les vidéos.

21
Chapitre 1 : contexte général du projet

• Générer des vidéos qui apparaissent réelles aux utilisateurs.

7- Études conceptuelles :
7-1- Méthode adoptée :
Avoir une méthode de gestion est nécessaire pour réussir chaque projet. Chaque méthode
fournit des étapes de processus. Ainsi que l’utilisation de cette méthodologie nous permet
d’éliminer le besoin et de réinventer la roue pour chaque nouveau projet. Dans notre cas, et pour
réussir un bon déroulement du projet on a choisi le Framework agile d’organisation de produits
complexes SCRUM (Figure 2).

Figure 2 : Méthode scrum.

7-2- Cycle CRISP :


CRISP-DM OU Cross-Industry Standard Process for Data Mining, une méthode développée
par IBM pour réaliser les projets Datamining et destinée à la data science. Elle permet d’orienter les
travaux d’exploration de données. Elle est à la fois une méthodologie car CRISP -DM contient des
descriptions des phases typiques d’un projet et des tâches comprises dans chaque phase et une

22
Chapitre 1 : contexte général du projet

explication des relations entre ces tâches et aussi un modèle de processus car elle offre un aperçu du
cycle de vie de l’exploration de données

CRISP-DM découpe le processus de data mining en six phases principales :

• Connaissance du Métier.

• Connaissance des Données.

• Préparation des Données.

• Modélisation des données.

• Évaluation.

• Déploiement.

La méthodologie CRISP est décrite en termes d'un modèle de processus hiérarchique,


constitué d'ensembles de tâches décrites en six étapes majeures [1] :

✓ Compréhension du problème :
La première étape insiste sur la bonne compréhension des éléments métiers et
problématiques que la Data Science vise à résoudre ou à améliorer puis transformer ces
connaissances en une définition de problème d'exploration de données et un plan préliminaire.

✓ Compréhension des données :


Cette phase consiste à déterminer les données à analyser, identifier leurs qualités et faire le
lien entre les données et leur signification d’un point de vue métier afin de se familiariser avec ses
connaissances et détecter des sous-ensembles intéressants pour former des hypothèses.

✓ La construction du Data Hub :


La phase de préparation des données se concentre sur la construction des données à analyser
à partir de celles brutes initiales. Elle comprend aussi le classement des données en fonction des
critères bien précis, le nettoyage des données, et surtout leur recodage pour les rendre compatibles
avec les algorithmes qui seront utilisés.

✓ La modélisation :
Puisque certaines techniques comme les réseaux de neurones ont des exigences spécifiques
concernant la forme des données. Cette étape comprend le choix, le paramétrage et le test de
23
Chapitre 1 : contexte général du projet

différents algorithmes ainsi que leur enchaînement, qui constitue un modèle.

✓ L’évaluation :
L’évaluation vise à vérifier les modèles ou les connaissances obtenues afin de s’assurer
qu’ils répondent aux objectifs formulés au début du processus. Elle contribue aussi à la décision de
déploiement du modèle ou, si besoin est, à son amélioration. A ce stade, on teste notamment la
robustesse et la précision des modèles obtenus.

✓ Le déploiement
Il s’agit de l’étape finale du processus. L’objectif de cette phase est de mettre la
connaissance obtenue par la modélisation, dans une forme adaptée, et l’intégrer au processus de
prise de décision pour mettre en production pour les utilisateurs finaux des modèles obtenus.

✓ Planification du projet :
Cette phase est considérée parmi les phases procédurales les plus importantes dans la gestion
du projet où la documentation nécessaire est créée pour assurer la réussite du projet. Le plan va
définir les différentes étapes (Figure 3) qui vont permettre la création et l’exécution du projet tout
en contrôlant ces tâches et en les clôturant, toutes ces informations vont être insérer dans un
diagramme de Gantt qui va nous présenter d’une manière chronologique les différentes tâches en
affichant la date de début de chaque tâche, sa durée ainsi que sa date de fin.

Figure 3 : Cycle CRISP-DM.

24
Chapitre 1 : contexte général du projet

7-3- Gantt Project


Gantt Project est un logiciel libre, permettant de modéliser sous forme de Gantt la
planification (Figure 4) des différentes tâches qui sont nécessaires à un projet. Chaque tâche pourra
être définie par sa durée et par les ressources qui pourront lui être affectées [1].

Figure 4 : Diagramme de Gantt.

Conclusion :
Ce chapitre nous aide à connaitre le contexte du projet et avoir une idée générale afin de
comprendre les objectifs à atteindre à la fin de ce stage.

Pour cela, on a commencé par une présentation de l’organisme d’accueil ensuite on a


présenté la problématique, puis on a introduit la méthodologie qu’on a adoptée. À la fin, en utilisant
25
Chapitre 1 : contexte général du projet

le fameux logiciel Gantt Project, on a développé un plan de travail et définissant les différentes
tâches.

Après avoir éclaircir l’idée générale du projet, on va présenter dans le chapitre suivant les
différentes solutions pour la génération des vidéos et les outils utilisés.

26
Chapitre 2 : Génération des videos

Chapitre 2 : Génération des vidéos.


Introduction :
Dernièrement, la consommation des vidéos sur Internet a connu une montée spectaculaire.
Deux facteurs expliquent ce phénomène : une avancée technologie rapide (haut débit, mobilité, …)
et l’émergence des médias sociaux (viralité, partage, …). Les entreprises et les marques doivent
aujourd’hui réfléchir à un moyen pour intégrer les contenus vidéos dans leurs stratégies éditoriales.

Motivation :
Les applications mobiles du genre face swap sont à la hausse durant ces dernières années,
considérées comme des jeux amusants pour certains et comme des applications dangereuses pour
d’autres.

Cependant, la technologie continue d’avancer à pas géants, tellement, qu’elle peut faire peur.
Comme dit Oncle Ben : « Un grand pouvoir implique de grandes responsabilités ».

27
Chapitre 2 : Génération des videos

1- Revue de littérature des systèmes de Génération des


vidéos :
Il existe plusieurs applications qui se basent sur des techniques de génération des vidéos.
Des applications sur App store, Play Store, etc. Dans cette partie on va découvrir ces applications.

1-1- FakeApp :
FakeApp est une application qui permet avec des techniques d’entraînement d’IA d’ajouter
des photos de visages à une vidéo à l’aide d’un algorithme qui crée des masques pour remplacer les
visages de la vidéo d’origine. Le résultat est surprenant et très réel et le développement est continue
pour améliorer le résultat et simplifier l’emploi du software.

Le problème est le suivant : même si cette technologie pourrait s’utiliser pour changer le
visage de n’importe qui sur n’importe quelle vidéo pour qu’une personne créative puisse s’amuser un
peu, sans nuire personne, il arrive qu’elle soit utilisée avec une mauvaise intention.

Cette technologie sera utile au cinéma. Des études ont démontré que ce software est capable
d’ajouter des images en quelques minutes tandis que le processus normalement suivi durant le film
dura des semaines [4].

1-2- Face App :


Face App est une application téléchargée sur téléphone et qui permet d'envoyer une photo et
que celle-ci soit transformée avec des filtres proposés dans l'application (qui permettent de vieillir,
rajeunir, modifier le teint ou le sourire d'un visage). Lancée en 2017 par une société russe, Wireless
Lab., elle est actuellement l'application gratuite la plus téléchargée sur Google Play avec plus de
cent millions d'utilisateurs.

Face App est d’une simplicité confondante, avec une interface basique permettant de
retoucher des selfies grâce à des filtres préétablis.

Comment ça marche ? Face App applique des modifications automatiques sur la photo d’un
visage. Ces images peuvent être prises avec la fonction selfie de l’application, être retrouvée dans la
galerie photo du portable de l’utilisateur ou en faisant une recherche sur Internet, grâce à un moteur
de recherche intégré, une fois la photo à modifier sélectionnée, Face App la charge sur ses serveurs
à distance. C’est ensuite dans son environnement cloud que Face App apporte les modifications

28
Chapitre 2 : Génération des videos

voulues au visage. Ces retouches ont lieu grâce à des logiciels d’apprentissage automatique, qui
fonctionnent grâce à des technologies d’intelligence artificielle [5] .

2- GAN et génération des vidéos :


Les GANS généralement sont composer de 2 fameux réseaux : le générateur et le
discriminateur (Figure 5). Le générateur est réseau neuronal convolutif dont le rôle est de créer de
nouvelles instances d’un objet.

Le générateur essaie donc de produire des outputs sans que l’on puisse déterminer s’ils sont
faux. Ainsi, au fil du processus, le générateur produit des outputs de meilleure qualité tandis que le
discriminateur détecte de mieux en mieux les faux.

La première étape est de déterminer ce que l’on souhaite que le GAN produit. La seconde
consiste à composer un ensemble de données basé sur ces paramètres. Ces données sont ensuite
entrées dans le générateur jusqu’à ce qu’il commence à produire des résultats convaincants.

Les images générées sont ensuite transmises au discriminateur, à côtés des véritables points
de données du dataset. Ensuite vérifiées manuellement, et le processus est répété jusqu’à ce que le
résultat souhaité soit atteint.

Puis les images générées sont introduites dans le discriminateur accompagnées des points de
données réelles provenant de la conception d'origine. Le discriminateur filtre les informations et
renvoie une probabilité entre 0 et 1 pour représenter l'authenticité de chaque image (1 pour une image
réelle et 0 pour une image contrefaite).

Enfin encore une fois, ces valeurs sont contrôlées manuellement et répétées jusqu'à obtention
du résultat souhaité. Les deux réseaux essaient d'optimiser des fonctions différentes, opposées, dans
un jeu à somme nulle.[6]

Les GANs peuvent avoir de multiples cas d’usage. Il est possible de s’en servir pour imiter du
contenu multimédia, des textes ou encore des discours. De manière générale, la principale utilité d’un
GAN est de créer des données à partir de rien.

Parmi les applications populaires de cette technologie, on peut citer la modification ou la


création d’images, la colorisation d’images en noir et blanc, ou encore l’amélioration de la
définition d’une image. Il est par exemple possible de créer des visages inexistants grâce à cette

29
Chapitre 2 : Génération des videos

technologie. De même, les GANs peuvent servir à recréer une peinture ou une photo populaire.
C’est ainsi que Mona Lisa a pu prend vie grâce à l’IA de Samsung. On peut aussi s’en servir
pour entraîner une IA à écrire des articles pour un blog ou un site web en se basant sur du contenu
existant. Il est aussi possible de générer une image à partir de texte, ou encore de produire des
représentations photoréalistes de prototypes de produits.

Figure 5 : Composants du GAN.

3- VAE et génération des vidéos :


3-1- C’est quoi un VAE ou auto-encodeur variationnel ?
Un Auto encoder est une paire de deux réseaux de neurones connectés : un modèle
d'encodeur et un modèle de décodeur. Son objectif est de trouver un moyen d'encoder les visages
dans une forme compressée (espace latent) de telle sorte que la version reconstruite soit aussi
proche que possible de l’entrée [7].

Le modèle de codeur transforme l'entrée x en une petite représentation dense z, semblable à


la façon dont fonctionne un réseau de neurones convolutionnels en utilisant des filtres pour
apprendre les représentations.

Le modèle de décodeur peut être considéré comme un modèle génératif capable de générer
des caractéristiques spécifiques.

L'encodeur et le décodeur sont généralement formés dans leur ensemble. La fonction de


perte pénalise le réseau pour créer des faces de sortie qui diffèrent des faces d'entrée.

Par conséquent, l'encodeur apprend à conserver autant d'informations pertinentes nécessaires


à la limitation de l'espace latent et à éliminer intelligemment les parties non pertinentes, par
exemple un bruit.

Le décodeur apprend à prendre les informations latentes compressées et à les reconstruire en


un visage complet.
30
Chapitre 2 : Génération des videos

Un encodeur automatique peut également être utile pour la réduction de la dimensionnalité


et le dé-bruitage des images, mais peut également réussir dans la traduction automatique non
supervisée.

Un auto-encodeur variationnel est une classe particulière d'auto-encodeur (Figure 6) dans


laquelle le code est produit par un générateur aléatoire qui suit une loi normale N(μ, σ). Pour
produire le code, il faut que l'encodeur apprenne μ et σ. on rajoute une contrainte supplémentaire à
savoir que lors de l'apprentissage, on cherche à faire en sorte que la distribution de Z obéisse à une
loi normale N (μ=0, σ=1) [8].

Figure 6 : Architecture VAE.

L’architecture la plus simple d’un auto-encodeur (Figure 6) est semblable à un multicouches


perceptron. Cependant, en fonction des données traitées, on peut utiliser différentes topologies de
réseaux de neurones. Par exemple, des couches du réseau convolutif afin d’analyser des images ou
des couches récurrentes pour traiter des séries temporelles ou des séquences.

Un auto-encodeur peut servir à plusieurs choses :

• Le dé-bruitage d'une source de données.

• La compression d'une source de données.

• La représentation sémantique ou abstraite d'une source de données.

• La génération automatisée de données (Figure 7).

31
Chapitre 2 : Génération des videos

Figure 7 : Résultat de génération à travers VAE.

3-2- Génération des vidéos à l’aide du VAE :


En regardant des milliers de visages de célébrités, un réseau de neurones pourrait apprendre
à générer des visages d'humains qui n'existent pas.

Les réseaux de neurones sont l'une des nombreuses méthodes possibles qu’on peut utiliser
pour obtenir une approximation de fonction. Une des raisons pour lesquelles ils sont devenus
populaires est leur capacité à apprendre les représentations. Les réseaux peuvent apprendre les
représentations spécifiques qui importent lors de la classification d'une image en tant qu’humain ou
animal, en supposant qu’on leur fournit les étiquettes correctes.

Dans certains cas, on n’a pas ces étiquettes. Néanmoins, on peut former deux réseaux, l'un
qui apprend la représentation et l'autre qui reconstruit à partir de la représentation en minimisant la
fonction de perte de reconstruction. Il s'agit d'un encodeur automatique. Il obtient ce nom car il
trouve automatiquement le meilleur moyen de coder l'entrée afin que la version décodée soit aussi
proche que possible de l'entrée.

Les résultats fournis par ce genre de modèle ont tendance d’être flou. Ce problème est dû à
l’attribution d’une probabilité élevée aux points dans les données définies mais aussi vers d'autres
points flous [9].

32
Chapitre 2 : Génération des videos

4- Comparaison entre les méthodes de génération des vidéos :


Deux des modèles génératifs profonds les plus populaires sont le Variational Auto encoder
(VAE) (Kingma et Welling, 2013) et le Generative Adversarial Network (GAN) (Goodfellow et al.,
2014). Une VAE s'apprend en maximisant la variation de la borne inférieure de l'observation tout en
encourageant la distribution postérieure approximative (variationnelle) du latent caché qu’elle soit
proche de la distribution précédente. Le framework GAN repose sur un jeu minimax entre un «
générateur » et un « Discriminateur ». Le générateur synthétise les données tandis que le
discriminateur cherche à distinguer entre réel et généré Les données. Dans les situations
multimodales, le GAN montre empiriquement des avantages par rapport au cadre VAE
(Goodfellow et al., 2014) [10].

Le modèle VAE n’est pas particulièrement bon. Avec plus de temps et une meilleure
sélection d'hyperparamètres et ainsi de suite. On peut probablement obtenir des résultats
satisfaisants et aussi claire au contraire des GANs.

5- Vers un système de génération des vidéos pour une


plateforme e-learning
5-1- Revue de littérature :
La génération d'images à partir de texte est un sujet bien étudié, ainsi que la génération des
vidéos à partir de texte qui a été explorée largement. Les travaux antérieurs sur la relation
générative entre le texte et une courte vidéo se sont concentrés sur la production sous-titrage du
texte d'une vidéo (Venugopalan et al., 2015 ; Donahue et al., 2015 ; Pan et al., 2016 ; Pu et al.,
2017). Cependant, le problème inverse de la production de vidéos à partir de texte constitue un
problème difficile pour les méthodes existantes. Une considération clé dans la génération vidéo est
que la vue d'ensemble et le mouvement de l'objet doivent être déterminés par la saisie de texte.
L’adaptation directe de la génération de texte à image aboutit à des vidéos dans lesquelles le
mouvement n’est pas synchronisé avec le texte.

La génération vidéo est intimement liée à la prédiction vidéo. La prédiction vidéo vise à
rendre réaliste le mouvement des objets dans un environnement stable. A l’aide. Des réseaux de
neurones récurrents (RNN) et le modèle séquence à séquence largement utilisé (Sutskever, Vinyals
et Le, 2014) se sont montrés très prometteurs dans ces applications (Villegas et al., 2017 ; De
Brabandere et al.,2016 ; van Amersfoort et al., 2017 ; Kalchbrenner et al., 2017).
33
Chapitre 2 : Génération des videos

Un dénominateur commun entre ces travaux est le réseau neurone convolutif (CNN) code /
décode chaque image et se connecte à un modèle séquence à séquence pour prédire les pixels des
cadres futurs. De plus, Liu et al. (2017) proposé en profondeur réseaux de flux voxel pour
l'interpolation d'images vidéo. En particulier, Karras et al. (2017) ont essayé de générer les
animations faciales en se basant sur des audios segmentés. Mais ce que Suwajanakorn et al. (2017)
ont fait est le plus proche à ce qu’on a fait mais il y a deux grandes différences ; d’abord, on a
utilisé un réseau neurone à la place d’un modèle computer vision traditionnel et on a ajouté la partie
text-to-speech afin d’avoir un système de text-to-video complet [11].

5-2- Utilité du système proposé :


On capitalise sur de grandes quantités de vidéos afin de produire un modèle dynamique pour les
tâches de reconnaissance vidéo (par exemple, classification des actions) et de génération de vidéos
(par exemple, prédiction future). On propose plusieurs modèles des réseaux de neurones pour
accomplir les différentes tâches du projet (audio to mouth, text to audio, facial texture synthetisis)
qui démêlent le premier plan de la scène de l'arrière-plan. Les expériences suggèrent que ce modèle
peut générer de minuscules vidéos avec une fréquence d'images bonne, et on montre son utilité pour
prédire les futurs plausibles des images statiques. De plus, des expériences et des visualisations
montrent que le modèle apprend en interne des fonctionnalités utiles pour reconnaître des actions
avec une supervision minimale, suggérant que la dynamique de la scène est un signal prometteur
pour l'apprentissage de la représentation. On pense que les modèles vidéo génératifs peuvent avoir
un impact sur de nombreuses applications dans la compréhension et la simulation vidéo.

Les modèles d'apprentissage qui génèrent des vidéos peuvent également être un moyen efficace
pour apprendre des représentations. Par exemple, on peut former des générateurs sur un grand
référentiel de vidéos non étiquetées, puis affiner le discriminateur sur un petit ensemble de données
étiquetées afin de reconnaître certaines actions avec un minimum de supervision.

5-3- Architecture de système :


Pour la génération d’un audio, on utilise un réseau convolutionnel profond qui reçoit un texte et
produit un audio puis à travers un autre réseau CNN qui va adapter la voix avec celle du professeur.
Pour la génération des points clés du contour de la bouche, on va utiliser un time-delayed LSTM.
Afin de rendre les images générées plus réalistes, on a pensé à un modèle CGAN appelé pix2pix qui
contiendra un réseau générateur qui va générer des images puis le discriminateur va juger si les
images sont réelles ou non, on utilise des convolutions up spatio-temporelles (2D pour l'espace, 1D
pour le temps). On illustre cela ci-dessous (Figure 8) :

34
Chapitre 2 : Génération des videos

Figure 8 : Architecture de projet.

Conclusion :
Ce chapitre est pour avoir une idée générale sur les applications de génération des vidéos
ainsi que les différentes méthodes qui permet de réaliser comme le GAN et le VAE afin d’obtenir
un bon résultat.

35
Chapitre 3 : deep learning (Apprentissage profond)

Chapitre 3 : Deep Learning


(Apprentissage Profond) :
Introduction :
Le deep Learning s'appuie sur un réseau de neurones qui sont artificiel s'inspirant du cerveau
des humains. Ce réseau est composé de dizaines voire de centaines de couches de neurone chacune
recevant et interprétant les informations de la couche précédente. Le système apprendra par
exemple à reconnaître les lettres avant de s'attaquer aux mots dans un texte, ou détermine s'il y a un
visage sur une photo avant de découvrir de quelle personne il s'agit.

Motivation :
Le deep learning est considéré pari les méthodes les plus simple dans le sens où les réseaux
de neurones s’avèrent plus performants que les techniques de régressions pour des tâches de Ma-
chine Learning

Il est utilisé dans plusieurs domaines d’application qui sont caractérisés par une relation en-
trée-sortie de la donnée d’information comme : La reconnaissance d’image, Les classifications de
textes ou d’images, Identification d’objets, Prédiction de données, Filtrage d’un set de données, etc..

36
Chapitre 3 : deep learning (Apprentissage profond)

1- GAN :
1-1- Définition :
Un GAN ou Generative Adversarial Network (réseau antagoniste génératif) est une technique
d’intelligence artificielle permettant de créer des imitations parfaites d’images ou autres données. En
termes techniques, les GAN reposent sur l’entrainement non supervisé de deux réseaux de neurones
artificiels appelés Générateur et Discriminateur. Ces deux réseaux s’entrainent l’un et l’autre dans le
cadre d’une relation contradictoire.

1-2- Architecture des GANs :


Comme on a déjà mentionné, l’architecture d’un GAN (Figure 9) est composée de deux
réseaux de neurones, mis en compétition : Générateur et discriminateur.

Le Générateur est en charge de créer des designs à partir des vecteurs de bruits.

Le Discriminateur reçoit des designs provenant du générateur et d’une base de données


constituée de designs réels. Il est en charge d’identifier la source de chaque design et ainsi de deviner
si ces designs sont réels ou s’ils sont le produit du Générateur.

A la suite du travail du Discriminateur, deux boucles de feedbacks transmettent aux deux


réseaux de neurones l’identité des designs sur lesquels ils doivent s’améliorer.

Le Générateur reçoit l’identité des designs sur lesquels il a été démasqué par le Discriminateur.

Ce dernier reçoit l’identité des designs sur lesquels il a été trompé par le Générateur.

Les deux algorithmes entretiennent donc une relation gagnant-gagnant d’amélioration


continue : le Générateur apprend à créer des designs de plus en plus réalistes et le Discriminateur
apprend à identifier de mieux en mieux les designs réels de ceux provenant du Générateur.

La perte de ces deux réseaux est aussi contradictoire d’où le terme contradictoire mentionné
dans le nom de ce type. Cette caractéristique qui va permette de mettre à jour les réseaux et avoir des
résultats satisfaisants [12].

37
Chapitre 3 : deep learning (Apprentissage profond)

Figure 9 : Architecture des GANs

. 1-3- Les cas d'utilisation des GANs :


Les GAN ont des cas d'utilisation très spécifiques et il peut être difficile de
comprendre ces cas d'utilisation au démarrage. Il y a un grand nombre d'applications intéressantes
de GAN comme

• Générer des exemples pour les ensembles de données d'image.

• Générer des photographies de visages humains.

• Générer des photographies réalistes.

• Générer des personnages de dessins animés.

• Traduction d'image en image.

• Traduction de texte en image.

• Traduction sémantique d'image en photo.

• Édition de photos.

• Vieillissement du visage.

38
Chapitre 3 : deep learning (Apprentissage profond)

• Mélange de photos.

• Super résolution.

• Photo Inpainting.

2- RNN :
2-1- Définition :
Un réseau neuronal récurrent (RNN) est un type de réseau neuronal artificiel couramment
utilisé dans la reconnaissance vocale et le traitement du langage naturel (NLP). Les RNN sont
conçus pour reconnaître les caractéristiques séquentielles des données et utiliser des modèles pour
prédire le prochain scénario probable.

Les RNN sont utilisés dans l'apprentissage profond et dans le développement de modèles qui
simulent l'activité des neurones dans le cerveau humain. Ils sont particulièrement puissants dans les
cas d'utilisation dans lesquels le contexte est essentiel pour prédire un résultat et sont distincts des
autres types de réseaux de neurones artificiels car ils utilisent des boucles de rétroaction pour traiter
une séquence de données qui informe la sortie finale, qui peut également être une séquence des
données. Ces boucles de rétroaction permettent aux informations de persister ; l'effet est souvent
décrit comme de la mémoire [13].

2-2- Architecture :
Les réseaux de neurones récurrents, également appelés RNN, sont une classe de réseaux de
neurones qui permettent aux sorties précédentes d'être utilisées comme entrées tout en ayant des
états cachés. Ils sont généralement les suivants (Figure 10) [13] :

Figure 10 : Architecture RNN.

39
Chapitre 3 : deep learning (Apprentissage profond)

2-3- Applications des RNN :


Les modèles RNN sont principalement utilisés dans les domaines du traitement du langage
naturel et de la reconnaissance vocale. Les différentes applications sont résumées dans la figure 11
ci-dessous [14] :

Figure 11 : Applications RNN.

2-4- Mémoire à long terme à court terme LSTM :


Les réseaux de longue mémoire à court terme (LSTM) sont une extension pour les réseaux
neuronaux récurrents, qui étend leur mémoire. Par conséquent, il est bien adapté pour apprendre des
expériences importantes qui ont des retards très longs entre les deux.

Les unités d'un LSTM sont utilisées comme unités de construction pour les couches d'un RNN,
qui est alors souvent appelé un réseau LSTM.

Les LSTM permettent aux RNN de se souvenir de leurs intrants sur une longue période de
temps. C'est parce que les LSTM contiennent leurs informations dans une mémoire, ce qui ressemble

40
Chapitre 3 : deep learning (Apprentissage profond)

beaucoup à la mémoire d'un ordinateur parce que le LSTM peut lire, écrire et supprimer des
informations de sa mémoire.

Cette mémoire peut être vue comme une cellule gated, où gated signifie que la cellule décide
de stocker ou de supprimer des informations (par exemple si elle ouvre les portes ou non), en fonction
de l'importance qu'elle attribue à l'information. L'attribution de l'importance se fait à travers des poids,
qui sont également appris par l'algorithme. Cela signifie simplement qu'il apprend avec le temps
quelle information est importante et laquelle ne l'est pas.

Dans un LSTM vous avez trois portes : entrée, oublier et sortie. Ces portes déterminent s'il
faut ou non laisser entrer une nouvelle entrée (porte d'entrée), supprimer l'information car elle n'est
pas importante (oublier la porte) ou la laisser influencer la sortie au pas de temps courant (porte de
sortie). Vous pouvez voir une illustration d'un LSTM avec ses trois portes ci-dessous (Figure 12)
[14]:

Figure 12 : Schéma d’un réseau LSTM.

Les portes d'un LSTM sont analogiques, sous la forme de sigmoïdes, ce qui signifie qu'elles
vont de 0 à 1. Le fait qu'elles soient analogiques leur permet de faire une rétropropagation avec
elles.

Les problèmes posés par la disparition des gradients sont résolus grâce à LSTM, car les
gradients sont assez raides et l'entraînement est relativement court et la précision élevée.

41
Chapitre 3 : deep learning (Apprentissage profond)

3- Réseau de neurones convolutionnel (CNN) :


3-1- Définition :
Les réseaux de neurones convolutifs sont directement inspirés du cortex visuel des vertébrés.
Dans un réseau de neurones à convolution CNN, on distingue deux parties, une première partie que
l’on appelle la partie convolutive du modèle et la seconde partie, que l’on va appeler la partie
classification du modèle qui correspond à un modèle MLP (Multi Layers Perceptron).

Figure 13 : Architecture d’un CNN.

C'est un réseau de neurones multicouches (Figure 13) et plus précisément c’est un réseau
profond composé de multiples couches qui en générale sont organisées en blocs (CONV→ RELU
→ POOL) ; la couche de convolution, la couche de pooling, la couche de correction ReLU et la
couche fully-connected [15].

3-2- Architecture :
Les réseaux de neurones convolutionnels, sont un type spécifique de réseaux de neurones
qui sont généralement composés des couches suivantes (Figure 14) :

Figure 14 : Couches du réseau CNN.

42
Chapitre 3 : deep learning (Apprentissage profond)

La couche convolutionnelle et la couche de pooling peuvent être ajustées en utilisant des


paramètres (Figure 14).

Couche convolutionnelle (CONV) utilise des filtres qui scannent l'image d’entrée suivant ses
dimensions en effectuant des opérations de convolution. Elle peut être réglée en ajustant la taille du
filtre FF et le stride SS. La sortie de cette opération est appelée feature map ou aussi activation map.

Pooling (POOL) est une opération de sous-échantillonnage typiquement appliquée après une
couche convolutionnelle. En particulier, les types de pooling les plus populaires sont le max et
l'average pooling, où les valeurs maximales et moyennes sont prises, respectivement.

Fully Connected (FC) s’applique sur une entrée préalablement aplatie où chaque entrée est
connectée à tous les neurones. Les couches de fully Connected sont typiquement présentes à la fin
des architectures du CNN et peuvent être utilisées pour optimiser des objectifs tels que les scores de
la classe [16].

4- Fonction d'activation :
La fonction d'activation prend la décision de transmettre ou non le signal. Dans ce cas, il
s’agit d’une fonction simple avec un seul paramètre : le seuil. Maintenant, lorsqu’on apprend
quelque chose de nouveau, le seuil et la probabilité de connexion (appelée poids synaptique) de
certains neurones changent. Cela crée de nouvelles connexions entre les neurones, ce qui permet au
cerveau d'apprendre de nouvelles choses [17].

4-1- Fonction d'activation linéaire :


C'est une fonction simple de la forme : f(x) = Ax ou f(x) = x. En gros, l'entrée passe à la sortie
sans une très grande modification ou alors sans aucune modification. On reste ici dans une situation
de proportionnalité. Utilisée en couche de sortie pour une utilisation de régression. on peut la
caractériser de nulle, puisque les unités de sortie seront identiques à leur niveau d’entré (Figure 15).
Intervalle de sortie (-∞; +∞).

43
Chapitre 3 : deep learning (Apprentissage profond)

Figure 15 : Fonction linéaire.

4-2- Fonction d'activation non linéaire :


Les situations de proportionnalité sont généralement des cas particuliers. Les fonctions non
linéaires permettent de séparer les données non linéairement séparables. Elles constituent les
fonctions d'activation les plus utilisées. Une équation non linéaire régit la correspondance entre les
entrées et la sortie (Figure 16).

Figure 16 : La fonction non linéaire.

L’utilisation de fonctions d'activation non linéaires est tout simplement indispensable pour la
simple et bonne raison que les fonctions linéaires ne fonctionnent qu'avec une seule couche de
neurone. Car au-delà d'une couche de neurones, l'application récurrente d'une même fonction
d'activation linéaire n'aura plus aucun impact sur le résultat. Autrement dit, afin de résoudre des
problèmes complexes, l'utilisation de fonctions non linéaires est obligatoire.

4-3- Sigmoïde :
Le but premier de la fonction est de réduire la valeur d'entrée pour la réduire entre 0 et 1. En
plus d'exprimer la valeur sous forme de probabilité, si la valeur en entrée est un très grand nombre
positif, la fonction convertira cette valeur en une probabilité de 1. A l'inverse, si la valeur en entrée

44
Chapitre 3 : deep learning (Apprentissage profond)

est un très grand nombre négatif, la fonction convertira cette valeur en une probabilité de 0. D'autre
part, l'équation de la courbe est telle que, seules les petites valeurs influent réellement sur la variation
des valeurs en sortie.

L'image ci-dessous représente la fonction Sigmoïde (Figure 17):

Figure 17 : Fonction sigmoïde.

La fonction Sigmoïde a plusieurs défauts :

• Elle n'est pas centrée sur zéro, c'est à dire que des entrées négatives peuvent engendrer
des sorties positives.

• Étant assez plate, elle influe assez faiblement sur les neurones par rapport à d'autres
fonctions d'activations. Le résultat est souvent très proche de 0 ou de 1 causant la saturation de
certains neurones.

• Elle est couteuse en termes de calcul car elle comprend la fonction exponentielle.

4-4- Tanh :
La fonction Tanh est également appelée "tangente hyperbolique» (Figure 18 ).

45
Chapitre 3 : deep learning (Apprentissage profond)

Figure 18 : Fonction Tanh ().

Cette fonction ressemble à la fonction Sigmoïde. La différence avec la fonction Sigmoïde est
que la fonction Tanh produit un résultat compris entre -1 et 1. La fonction Tanh est en terme général
préférable à la fonction Sigmoïde car elle est centrée sur zéro. Les grandes entrées négatives tendent
vers -1 et les grandes entrées positives tendent vers 1.

Mis à part cet avantage, la fonction Tanh possède les mêmes autres inconvénients que la
fonction Sigmoïde.

4-5- Relu :
Pour résoudre le problème de saturation des deux fonctions précédentes (Sigmoïde et Tanh)
il existe la fonction ReLU (Unité de Rectification Linéaire). Cette fonction est la plus utilisée.

La fonction ReLU est interprétée par la formule : f(x) = max (0, x). Si l'entrée est négative la
sortie est 0 et si elle est positive alors la sortie est x. Cette fonction d'activation augmente
considérablement la convergence du réseau et ne sature pas.

Mais la fonction ReLU n'est pas parfaite. Si la valeur d'entrée est négative, le neurone reste
inactif, ainsi les poids ne sont pas mis à jour et le réseau n’apprend pas.

46
Chapitre 3 : deep learning (Apprentissage profond)

✓ Leaky ReLU :

La fonction Leaky ReLU est interprétée par la formule : f(x) = max (0.1x, x). La fonction
Leaky Relu essaye de corriger la fonction ReLU lorsque l'entrée est négative. Le concept de Leaky
ReLU est lorsque l'entrée est négative, il aura une petite pente positive de 0,1. Cette fonction élimine
quelque peu le problème d'inactivité de la fonction relu pour les valeurs négatives, mais les résultats
obtenus avec elle ne sont pas cohérents. Elle conserve tout de même les caractéristiques d’une
fonction d’activation ReLU, c’est-à-dire efficace sur le plan des calculs, elle converge beaucoup plus
rapidement et ne sature pas dans les régions positives

✓ ReLU paramétrique :
L'idée de la fonction Leaky ReLU peut être encore élargie. Au lieu de multiplier x par un
terme constant, on peut le multiplier par un hyperparamètre qui semble mieux fonctionner que la
fonction Leaky ReLU. Cette extension à la fonction Leaky ReLU est connue sous le nom de ReLU
paramétrique.

La fonction ReLU paramétrique est interprétée par la formule : f(x) = max (ax, x) où "a" est
un hyperparamètre. Cela donne aux neurones la possibilité de choisir quelle pente est la meilleure
dans la région négative. Avec cette capacité, la fonction ReLU paramétrique a la possibilité de devenir
une fonction ReLU classique ou une fonction Leaky ReLU.

Il sera le plus souvent préférable d'utiliser la fonction ReLU, ses deux autres versions (Leaky
ReLU et ReLU paramétrique) sont des expérimentations sans réelle valeur ajoutée.

4-6- Softmax :
La régression softmax (ou régression logistique multinomiale) est une généralisation de la
régression logistique au cas où on veut traiter plusieurs classes. Il est particulièrement utile pour les
réseaux de neurones où l'on souhaite appliquer une classification non binaire. Dans ce cas, la simple
régression logistique ne suffit pas. On aura besoin d'une distribution de probabilités pour toutes les
étiquettes, ce que Softmax nous donne.

Softmax est calculé avec la formule ci-dessous :

47
Chapitre 3 : deep learning (Apprentissage profond)

Utilisée pour de la multi classification en couche de sortie (Figure 19). Intervalle de sortie (-
∞;+∞):

Figure 19 : La fonction softmax.

5- Highway Networks :
Quand on a un réseau de neurone très profond, on rencontre des difficultés à l’optimiser. En
se basant sur la mémoire à long court terme (LSTM) et de la fonction Gatin, les Highway Networks
(Figure 20) adapte le signal pour que le réseau puisse aller plus loin. Du coup même un réseau
considéré profond avec 1000 couches est possible de l’optimiser [18].

48
Chapitre 3 : deep learning (Apprentissage profond)

Figure 20 : Highway circuit.

6- L'algorithme L-BFGS-B :
La méthode BFGS est la réponse en cas du besoin d’un algorithme à directions de descentes.

L'idée majeure de cette méthode est de ne pas construire explicitement la matrice Hessienne
et de construire à la place une approximation de l'inverse de la dérivée seconde de la fonction à
minimiser, en analysant les différents gradients qui se suivent.

L'algorithme L-BFGS-B est une extension de l'algorithme L-BFGS pour pouvoir gérer des
bornes simples. L'algorithme L-BFGS est un algorithme qui s’est montré très efficace pour résoudre
des problèmes à grande échelle. L-BFGS-B emprunte des idées aux méthodes de la région de
confiance tout en conservant la mise à jour L-BFGS des algorithmes de recherche de Hessienne et
de ligne [19].

7- Couche convolutionnelle1D :
C’est la couche 1D du réseau utilise des filtres qui scannent l'entrée suivant ses dimensions
en effectuant des opérations de convolution. Elle peut être réglée en ajustant la taille du filtre F et le
stride S. La sortie O de cette opération est l’activation map. Ce genre de convolution est utilisé pour
la notion temporelle.

Conclusion :
Le but de ce chapitre était de comprendre le rôle du Deep Learning dans ce projet, aussi
d’introduire les réseaux neurones qui seront utilisés et leurs architectures, ainsi que les fonctions
d’activation. Le prochain chapitre présentera les grandes étapes à suivre pour réaliser le projet.

49
Chapitre 4 : développement du modèle

Chapitre 4 : développement du
modèle
Introduction :
La conversion audio-vidéo réaliste a des applications pratiques telles que l'amélioration de la
visioconférence pour les réunions (le streaming audio sur Internet prend beaucoup moins de bande
passante que la vidéo, ce qui réduit les problèmes vidéo), ou la conversation avec un personnage
historique de la réalité virtuelle. Cela bat les précédents processus de conversion audio-vidéo, qui
impliquaient de filmer plusieurs personnes dans un studio en répétant les mêmes phrases à plusieurs
reprises pour essayer de capturer comment un son particulier correspond à différentes formes de
bouche, ce qui est coûteux, fastidieux et prend du temps.

cette approche est basée sur la synthèse vidéo de l'audio ou texte au niveau de la zone de la
bouche et l'utilisation de techniques de composition pour emprunter le reste de la tête à partir
d'autres séquences. L’ approche de composition s'appuie sur des techniques de tête parlante
similaires, comme Face2Face, bien que cette dernière transfère la bouche d'une autre séquence
vidéo alors que on synthétise la forme de la bouche directement à partir de l'audio grâce au texte.

Motivation :
Que pouvez-vous déduire de la personnalité de quelqu'un à partir de son film vidéo ?
Imaginez-vous apprendre à reproduire le son et la cadence de la voix d'une personne, comment elle
parle, ce qu'elle dit, comment elle communique et interagit, et comment elle apparaît et s’exprime.
Dans le cas des personnalités publiques, il existe des séquences vidéo importantes disponibles en
ligne, sous la forme d'interviews, de discours, de bulletins de nouvelles, etc. L'analyse d’une vidéo
est cependant assez difficile, car les visages sont une vue de profil proche, la région du visage est
petite et l'éclairage, les vêtements et les cheveux varient considérablement d'une interview à l'autre).

1- Outils utilisés :
50
Chapitre 4 : développement du modèle

Dans cette partie, on va voir les outils qui va nous aider à réaliser le projet et aussi les
bibliothèques utilisées :

➢ Ubuntu :

Ubuntu est un système d’exploitation GNU/Linux basé sur la distribution Linux Debian. Il
est développé, commercialisé et maintenu pour les ordinateurs individuels (desktop), les serveurs
(Server) et les objets connectés (Core) par la société Canonical [20] .

➢ 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[21].

➢ Python :

Python est un langage de programmation interprété́ , interactif, orienté objet et de haut niveau
à usage général. Python est aujourd'hui un des langages de programmation les plus populaires. Les
développeurs ont aujourd'hui la latitude de faire de Python leur langage privilégié́ dans presque tous
les domaines de l'informatique, y compris le développement Web, le cloud computing,
l'automatisation, les tests de logiciels, Big Data, Hadoop, deep Learning,etc. vue le nombre énorme
de bibliothèque qu’il contient.

Python permet aux développeurs de concevoir des fonctions avec moins de lignes de code,
ce qui ne serait pas le cas avec d'autres langages de programmation. C'est un langage facile à̀
apprendre et avec la pratique, un autre facteur qui fait de Python un langage de programmation
intéressant pour les novices est sa lisibilité́ et son efficacité. Si vous avez besoin d'un code qui
fonctionne sur aussi bien Linux que Windows et Mac OS, pensez à̀ Python, et il est aussi utilisable
sur plusieurs plateformes puisqu’il est open source [22].

➢ Tensorflow :

Tensorflow est une plate-forme Open Source pour le calcul numérique au machine Learning.
Elle propose un écosystème complet et flexible d'outils, de bibliothèques et de ressources
communautaires permettant aux chercheurs d'avancer dans le domaine du machine Learning. C’est

51
Chapitre 4 : développement du modèle

la principale librairie que l’on a eue à utiliser pour l’entrainement du modèle de machine
Learning/Deep [23].

➢ Open CV :

Open CV est une bibliothèque proposant un ensemble de plus de 2500 algorithmes de vision
par ordinateur, accessibles à travers d'une API pour plusieurs langages. Elle est distribuée sous une
licence BSD pour toutes les plateformes. Initialement écrite en C il y a plus de 10 ans par des
développeurs de la société́ Intel, Open CV est aujourd'hui développé, maintenue, documentée et
utilisée par de nombreux utilisateurs. C’est la bibliothèque de référence pour le computer vision,
aussi bien dans le monde de la recherche que celui de l'industrie. Débogage. Il permet également
d'accéder aux objets inaccessibles que le collecteur a trouvés mais ne peut pas libérer. Étant donné
que le collecteur complète le comptage de références déjà utilisé dans Python, vous pouvez
désactiver le collecteur si vous êtes sûr que votre programme ne crée pas de cycles de référence. La
collecte automatique peut être désactivée en appelant gc. Disable (). Pour déboguer un programme
qui fuit, appelez gc.set_debug (gc. DEBUG_LEAK) [24].

➢ Keras :

Keras est une API de réseaux de neurones de haut niveau, écrite en Python et capable de
fonctionner sur Tensorflow, CNTK ou Theano. Il a été́ développé́ dans le but de permettre une
expérimentation rapide. Pouvoir passer de l'idée au résultat avec le moins de retard possible est la
clé́ pour faire de bonnes recherches. En effet, Keras permet un prototypage facile (plus que
Tensorflow) et rapide (grâce à̀ la convivialité́ , la modularité́ et l’extensibilité́ ) [25].

➢ Keras. Callbacks :

Un callback est un objet qui peut effectuer des actions à différentes étapes de la formation
(par exemple au début ou à la fin d'une époque, avant ou après un seul lot, etc.) [26].

➢ Keras. Model :

Un modèle séquentiel est approprié pour une pile simple de couches où chaque couche a
exactement un tenseur d'entrée et un tenseur de sortie [27].

➢ Keras. Layers :

52
Chapitre 4 : développement du modèle

Les couches sont les éléments de base des réseaux de neurones dans Keras. Une couche se
compose d'une fonction de calcul tensor-in tensor-out (call back de la couche) et d'un état, contenus
dans des variables Tensorflow (les poids de la couche) [28].

➢ Sklearn. Preprocessing :

Le package Sklearn. Preprocessing fournit plusieurs fonctions utilitaires courantes et classes


de transformateur pour changer les vecteurs de caractéristiques bruts en une représentation plus
appropriée pour les estimateurs en aval [29].

➢ Scikit-image :

Scikit-image est une collection d'algorithmes pour le traitement d'images. Le paquet principal
de scikit-image ne fournit que quelques utilitaires pour la conversion entre les types de données
d’image ; pour la plupart des fonctionnalités, vous devez importer l'un des sous-packages suivants :
Io. Reading, saving, and displaying images and vidéo [30].

➢ Imutils :

Une série de fonctions pratiques pour rendre les fonctions de traitement d'image de base telles que
la traduction, la rotation, le redimensionnement, le squelette, l'affichage des images Matplotlib, le tri
des contours, la détection des bords [31].

➢ [Link]:

[Link] est une collection de fonctions qui aide matplotlib faire le travail comme
Matlab. Chaque fonction pyplot modifie une figure : crée une figure, crée une zone de traçage dans
une figure [32].

➢ Web VTT :

Le format des pistes de texte vidéo Web. Son utilisation principale est de baliser les
ressources de piste de texte externe en relation avec HTML. Les fichiers Web VTT fournissent des
légendes ou des sous-titres pour le contenu vidéo, ainsi que des descriptions vidéo textuelles, des
chapitres pour la navigation dans le contenu et plus généralement toute forme de métadonnées
alignées sur le contenu audio ou vidéo [33].

➢ Pickle :

53
Chapitre 4 : développement du modèle

Le module pickle implémente des protocoles binaires pour la sérialisation et la


désérialisation d'une structure d'objet Python. « Pickling » est le processus par lequel une hiérarchie
d'objets Python est convertie en un flux d'octets, et « unpickling » est l'opération inverse, par
laquelle un flux d'octets (à partir d'un fichier binaire ou d'un objet de type octets) est reconverti en
une hiérarchie d'objets [34].

➢ NumPy :

NumPy est une extension du Python, destinée à manipuler des matrices ou tableaux
multidimensionnels ainsi que des fonctions mathématiques opérant sur ces tableaux. Plus
précisément, cette bibliothèque fournit de multiples fonctions permettant notamment de créer
directement un tableau depuis un fichier ou au contraire de sauvegarder un tableau dans un fichier,
et manipuler des vecteurs, matrices et polynômes [35].

➢ Soundfile :

SoundFile peut lire et écrire des fichiers audios. La lecture ou l'écriture de fichiers est prise
en charge par libsndfile, qui est une bibliothèque pour la lecture et l'écriture de nombreux formats
de fichiers audio échantillonnés différents qui s'exécutent sur de nombreuses plates-formes. Il est
accessible via CFFI, qui est une interface de fonction étrangère pour Python appelant du code C
[36].

➢ Dlib :

Dlib est une boîte à outils C ++ moderne contenant des algorithmes d'apprentissage
automatique et des outils pour créer des logiciels complexes en C ++ pour résoudre des problèmes
du monde réel. Elle est utilisée à la fois dans l'industrie et dans le milieu universitaire dans un large
éventail de domaines, notamment la robotique, les appareils embarqués, les téléphones mobiles et
les grands environnements informatiques haute performance [37].

1- Description de la dataset :
Pour ce projet, on aura besoin des vidéos comme Dataset afin de pouvoir les segmenter et
extraire les images et les audios pour entrainer les modèles. Ces derniers doivent respecter plusieurs
critères pour avoir un bon résultat, parmi ces critères :

• Bon éclairage

54
Chapitre 4 : développement du modèle

• L’objet doit être centré dans la vidéo

• Avoir un vidéo de durée 1h

Qu’est-ce qu’une vidéo ?

Sans Pour faire simple et loin des complications de codage et de compression, un document
vidéo est considéré comme étant la combinaison de deux modes : l’image et l’audio, représentés
dans un espace discret de temps associé, en général, à une fréquence d’échantillonnage plus élevée
que les changements d’états qu’il reflète, ce qui permet au spectateur de le percevoir comme étant
continu. Pour simplifier, on peut le définir comme un ensemble de séquences d’images
synchronisées avec une ou plusieurs bandes de son. Ses niveaux hiérarchiques sont : le fichier audio
et l’ensemble des images. Cette dernière, n’ayant pas un équivalent structurel sur la bande son et ne
reflétant pas non plus la notion du temps, mais nécessaire pour la construction d’une vidéo.

2- Data Preprocessing :
2-1- Extraction des images à partir des vidéos :
Les vidéos représentent un ensemble des images synchronisés avec un audio, donc pour
déduire les points clés de la bouche de la personne qui est présente dans la vidéo, il est important
d’extraire les images contenues dans cette dernière, et pour effectuer cela , on va utiliser la fameuse
ligne de code FFMEPG.

Figure 20 : Ligne de commande pour extraction des images.

La ligne de commande qui apparait dans la figure 20 montre la nécessité à des paramètres
comme :

L’option -i sert à obtenir l’entrée qui est le fichier vidéo.

L’option -vf scale permet de redimensionner la taille l’image extraite.

On obtient après l’extraction des images comme montre la figure 21 :

55
Chapitre 4 : développement du modèle

Figure 21 : Exemple des images extraites.


2-2- Extraction de l’audio :
Puisque les audios sont considéré comme le point principal dans notre projet pour générer
une vidéo finale suivant les points clés de l’audio, donc on a besoin d’extraire les audios en premier
lieu avec la même ligne de commande utilisée pour l’extraction des images. (FFMEPG)

Figure 22 : Ligne de commande pour l’extraction des audios.

Les paramètres utilisés dans la ligne de commande montrée dans la figure 22 sont :

Ac : Définir le nombre des canaux audios. Pour les flux de sortie, il est défini par défaut sur
le nombre des canaux audios d'entrée.

Ar : Régler la fréquence d'échantillonnage audio. Pour les flux de sortie, il est défini par
défaut sur la fréquence du flux d'entrée correspondant.

Vn : Dépasser la vidéo et enregistrer que l’audio.

Une analyse des audios est faite après l’extraction, elle sert à calculer le sample rate ou la
fréquence d'échantillonnage qui définit combien de fois par seconde un son est échantillonné.
Techniquement parlant, c'est la fréquence des échantillons utilisés dans un enregistrement
numérique. Dans notre cas elle vaut 22050 HZ (On a pu capturer 22050 échantillons par second)
qui est une fréquence acceptable pour un enregistrement d’audio.

56
Chapitre 4 : développement du modèle

Figure 23 : Waveforme d’un audio extrait.

Ci-dessus (Figure 23) est la représentation du waveforme pour un audio extrait à partir
d’une vidéo enregistrée (enregistrement humain vocal). Cela nous montre le volume (amplitude) de
l'onde sonore qui change avec le temps. Ici, l'amplitude = 0 représente le silence. On remarque qu’il
varie entre -0.53 et 0.53. Cette plage varie d’un audio à un autre.

Ces amplitudes ne sont pas très informatives, car elles ne parlent que du volume de l'enregis-
trement audio. Pour mieux comprendre le signal audio, il est nécessaire de le transformer dans le
domaine fréquentiel. La représentation dans le domaine fréquentiel d'un signal nous indique les dif-
férentes fréquences présentes dans le signal. La transformée de Fourier est un concept mathéma-
tique qui peut convertir un signal continu du domaine temporel au domaine fréquentiel.

57
Chapitre 4 : développement du modèle

Figure 24 : Spectrogramme de l’audio extrait.

On remarque dans la figure 24 l’existence de la couleur noire qui représente le silence dans
la figure précédente ainsi qu’un changement de degré de la couleur et qui nous donne une idée sur
le changement de la fréquence durant le temps.

2-3- extraction des points clés de la bouche :

Après un parcours de toutes les images extraites dans la 1 ère partie , on va tirer les
coordonnées de la bouche (mouth Keyspoints) pour chaque image , par exemple , si la personne dit
« bonjour » , on va calculer la position de la bouche au moment où il articule le mot ,cette extraction
se fait à l’aide de la bibliothèque Dlib qui permet de détecter la position des yeux , bouche , le nez ,
et aussi le modèle pré-entrainé « shape_predictor_68_face_landmarks.dat » qui est inclus dans Dlib
est utilisé pour estimer l'emplacement de 68 coordonnées (x, y) qui correspondent aux structures
faciales sur le visage.

Les index des 68 coordonnées peuvent être visualisés sur la figure 25 :


58
Chapitre 4 : développement du modèle

Figure 25 : L’index de 68 coordonnées de Dlib.

Ces indexes (Figure 25) appartiennent à l’ensemble de données 68 points iBUG 300-W sur
lequel le prédicteur de repère facial Dlib a été entrainé.

Il existe plusieurs types de détecteurs de points de repères faciaux comme les 194 points qui
peuvent être entrainés sur l’ensemble de données HELEN [38].

La chose la plus importante est qu’on peut utiliser le même cadre DLIB pour entrainer sur
prédicteur de forme sur les données d'entraînement d’entrée. Cela va nous aider à entrainer des
détecteurs de repère facial ou des prédicteurs de forme personnalisés.

Après le calcul des positions, les coordonnées seront enregistrées dans un fichier
« kp. Pickle », les fichiers contiendront ce genre de données (Figure 26) :

Figure 26 : Coordonnées de la bouche d’une image extraite.

59
Chapitre 4 : développement du modèle

2-4- extraction des points clés des audios :

L’extraction des points clés de chaque audio se résume dans l’extraction des MFCCS,

Dans le traitement du son, le cepstre de fréquence mel (MFC) est une représentation du
spectre de puissance à court terme d'un audio, basée sur une transformée en cosinus linéaire d'un
spectre de puissance log sur une échelle de fréquence mel non linéaire.

Les coefficients cepstraux à fréquence Mel (MFCC) sont des coefficients qui composent
collectivement un MFC. Ils sont dérivés d'un type de représentation cepstrale du clip audio (un
"spectre-d ’un-spectre" non linéaire). La différence entre le cepstre et le cepstre à fréquence mel est
que dans le MFC, les bandes de fréquences sont également espacées sur l'échelle mel, ce qui se
rapproche plus étroitement de la réponse du système auditif humain que les bandes de fréquences
linéairement espacées utilisées dans le cepstre normal. Cette déformation de fréquence peut
permettre une meilleure représentation du son, par exemple en compression audio.

Les MFCCs sont généralement calculés comme suit :

• Prendre la transformée de Fourier d'un signal.

• Cartographier les puissances du spectre obtenu ci-dessus sur l'échelle de mel, en


utilisant des fenêtres triangulaires superposées.

• Prendre les logs des puissances à chacune des fréquences mel.

• Prendre la transformée cosinus discrets de la liste des puissances du journal mel,


comme s'il s'agissait d'un signal.

• Les MFCCs (Figure 27) sont les amplitudes du spectre résultant [39].

Donc après un parcours de tous les audios, on va enregistrer les MFCCS dans un fichier
appelé « Kp_audio. Pickle », le résultat est représenté comme suit :

60
Chapitre 4 : développement du modèle

Figure 27 : MFCCS des audios extraits.


2-5- Analyse en composants principales (ACP) :

Le PCA permet la réduction de la dimensionnalité linéaire à l'aide de la décomposition de


valeurs singulières des données (SVD) pour les projeter dans un espace de dimension inférieure.
Les données d'entrée sont centrées mais pas mises à l'échelle pour chaque entité avant d'appliquer le
SVD [40].

Dans notre cas on va enregistrer le PCA pour chaque image extraite en utilisant les
coordonnées de la bouche extraite dans la partie 1- 3 dans un fichier pca. Pickle, ce fichier sera
utilisé dans l’entrainement et la génération du contour de la bouche (voir la partie 2)

Après cela, on va décorréler les points clés de la bouche en utilisant le PCA pour avoir
comme résultat un dernier fichier appelé pkp. Pickle.

2- Text2speech :

61
Chapitre 4 : développement du modèle

Le Text-to-Speech est la technologie qui permet à un ordinateur de lire des textes à voix
haute, afin de créer un contenu vocal à partir d’un texte. Il est nécessaire d’utiliser une application
de synthèse vocale ; ces applications ont beaucoup d’utilité, ils permettent aux malvoyants
d’écouter l’audio du texte qu’ils veulent, d’ailleurs c’est pour cette cause que ce genre d’application
est développée.

Pour notre cas, le TTS va nous permettre de générer un audio à partir d’un texte donné qui
va être utiliser pour la génération de la vidéo par la suite. Pour cela, on a utilisé 2 méthodes, la 1 ère
est la bibliothèque de python appelée pyttxs3 et la 2 -ème est basée sur les réseaux de neurones
convolutifs profonds, et enfin on va utiliser un réseau de neurones afin d’adapter le style de voix.

2-1- La génération de voix à l’aide de pyttxs3 :

Pyttxs3 est une bibliothèque qui permet la conversion d’un texte vers un audio, elle est
compatible avec python 2 et 3, et elle inclut les TTS engines, comme Sapi5, nsss, and espeak [41].

On doit initialiser l’instance qui utilisera un driver donné (dans notre cas espeak) avec la
fonction [Link](« espeak »).

Elle reçoit un texte comme entrée et génère l’audio avec [Link]("texte"). Le pyttxs3
permet la manipulation de la fréquence de voix à travers engine. SetProperty ('rate', 125) , et le
volume par [Link]('volume',1.0).

Également le type de voix ; si on veut une voix de femme ou d’un homme avec plusieurs
langues , on peut les manipuler à l’aide de la fonction engine. SetProperty ('Voice', voices[1].id),
cette bibliothèque contient une longue liste de voix de 80 langues avec un style de voix de femme et
d’homme.

62
Chapitre 4 : développement du modèle

Figure 28 : Waveforme de l’audio généré.

D’après la figure 26, L’audio généré a une fréquence de 22050 Hz comme l’audio extrait
précédemment, la différence est remarquable au niveau de la plage de variation du waveforme dans
ce cas elle varie entre -0,61 et 0,61.

Puisque le waveforme (Figure 28) ne donne pas des visualisation complète sur l’audio car il
nous montre juste la variation d’amplitude à travers le temps, on va passer d’un espace temporel
vers un espace fréquentiel, on va analyser le spectrogramme de l’audio.

63
Chapitre 4 : développement du modèle

Figure 29 : Le spectrogramme d’audio généré.

Alors dans notre cas, qui est le même que le cas qui précède pour un audio extrait, on voit
l’arrière-plan Blue (Figure 29) qui représente le silence et les autres couleurs représente la variation
des fréquences. Plus la couleur évolue vers l’orange plus l’intensité est importante. Les traits noirs
soulignent les formants des voyelles.

2-3- Génération à l’aide d’un réseau de neurone convolutif profond :

Pour cette partie on utilise une nouvelle technique de text2speech (TTS) basée sur les
réseaux de neurones convolutifs profonds (CNN), sans unités récurrentes. Le réseau neuronal
récurrent (RNN) a été une norme technique pour modéliser des données séquentielles récemment, et
cette technique a été utilisé dans certaines techniques TTS neuronales de pointe.

a- Méthodologie :
Le modèle utilisé dans cette partie est Deep Convolutional TTS (DCTTS) [42] se compose
de deux réseaux : Text2Mel, qui synthétise un spectrogramme mel à partir d'un texte d'entrée, et un

64
Chapitre 4 : développement du modèle

Spectrogramme Super-résolution Network (SSRN), qui convertit un mel spectrogramme au


spectrogramme STFT complet.

✓ Text2Mel: Text to Mel Spectrogram Network:

On commence d'abord par synthétiser un spectrogramme mel à partir d'un texte. C'est la
partie principale de la méthode proposée. Ce module se compose de quatre sous-modules : Text
Encoder, Audio Encoder, Attention, et Audio Decoder.

Figure 30 : Architecture Text2Mel.

Les réseaux utilisés sont entièrement convolutifs et ne dépendent d’aucune unité récurrente.

L'équation du haut de la figure (Figure 30)est le contenu de TextEnc. Il se compose de


l'incorporation de caractères et de l'empilement des convolutions 1D non causales.

AudioEnc et AudioDec, illustrés sur la figure, sont composés de couches de convolution


causale 1D avec activation Highway.

Ces convolutions doivent être causales car la sortie d'AudioDec est renvoyé à l'entrée
d'AudioEnc dans l'étape de synthèse (partie suivante).

✓ Spectrogram Super-resolution Network (SSRN):

65
Chapitre 4 : développement du modèle

On synthétise enfin un spectrogramme complet du mel spectrogramme obtenu à partir d’un


spectrogramme réseau de super-résolution (SSRN).

On peut y parvenir en augmentant le canal de convolution du réseau convolutif 1D.


Fréquence de suréchantillonnage dans la direction temporelle ne se fait pas de la même manière, mais
en appliquant deux fois des couches de déconvolution de taille de foulée (stride) 2. L'équation du bas
de la figure (Figure 30) montre SSRN.

b- Entrainement
Ce module utilisé était très bien entrainé sur la fameuse LJ speech dataset (figure 31) ,il s'agit
d'un ensemble de données vocales du domaine public composé de 13100 courts extraits audios d'un
seul locuteur lisant des passages de 7 livres non romanesques. Une transcription est fournie pour
chaque clip. Les clips varient en longueur de 1 à 10 secondes et ont une durée totale d'environ 24
heures, on l’a utilisé pour générer un audio [43] :

Figure 31 : Graphe de la fonction de perte du module text2speech

2-3- Adaptation de voix :

L’adaptation de voix pour les signaux audios est basée sur la texture, ou style, d'un
échantillon audio extrait à l'aide de CNN, qui est ensuite transférée vers l'échantillon audio cible.
Cela crée un son avec les éléments structurels des données cibles, mais avec le rythme du style
audio voulu.

66
Chapitre 4 : développement du modèle

Les CNNs ont la capacité d'extraire des caractéristiques de haut niveau à partir des données
disponibles, de manière à fournir une adaptation de bonne qualité pour le signal audio concerné.
L'ajout de couches convolutives supplémentaires fournit des fonctionnalités de niveau supérieur et
plus complexes à chaque niveau suivant.

Il est nécessaire d'utiliser des formats comme WAV car ils stockent les données dans un
format non compressé ce qui facilite l'extraction des données.

a- Méthodologie :

✓ Audio Preprocessing :
Tout d'abord, le signal audio est transformé du domaine temporel au domaine fréquentiel en
utilisant la transformée de Fourier à court terme vu que le coût de calcul de la transformation de
Fourier sur l'ensemble du fichier audio est très élevé. La fonction STFT consiste à diviser le signal
audio en segments de taille égale, puis à effectuer une transformation de Fourier sur ces segments
individuellement.

✓ Modéliser le réseau convolutionel :

La couche convolutive est nécessaire pour extraire les caractéristiques de haut niveau des
signaux audio. Cette implémentation utilise une seule couche de convolution composée de 4096
filtres. Ces filtres sont initialisés à l'aide du Xavier normal initializer qui tire des échantillons d'une
distribution normale.
✓ Extraction du style :

Les matrices obtenues après le prétraitement des signaux audio de contenu et de style sont
modifiés de manière appropriée pour correspondre à l'exigence de forme d'entrée du réseau
convolutif. Les matrices de contenu et de style sont transmises individuellement à travers le réseau
neuronal convolutif pour obtenir respectivement la carte des caractéristiques de contenu et la carte
des caractéristiques de style : Pour extraire les fonctionnalités de style de haut niveau, on utilise une
matrice Gram. Une matrice Gram est le produit interne de la carte de caractéristiques de style avec
elle-même. Cette représentation capture la covariance des caractéristiques de style.

✓ Définir la fonction de perte :

La perte de contenu et de style sont définies indépendamment. Afin de déterminer cette


perte, un échantillon d'entrée avec des valeurs aléatoires est introduit dans le réseau et la sortie
obtenue à partir de celui-ci est traitée pour en extraire des caractéristiques. Une représentation
67
Chapitre 4 : développement du modèle

matricielle de Gram pour ces caractéristiques de sortie est également obtenue. La perte détermine la
capacité du réseau à générer la même réponse que les caractéristiques de contenu et de style de
l'échantillon d'entrée aléatoire. La perte de contenu est calculée comme l'erreur quadratique entre les
caractéristiques de contenu obtenues lors de l'étape précédente et les caractéristiques de sortie pour
l'entrée aléatoire.

La perte totale est définie comme la combinaison linéaire de la perte de contenu et de la


perte de style.

✓ Entrainement du réseau :

Le réseau est formé de manière à minimiser la perte totale. L'algorithme d'optimisation L-


BFGS-B est utilisé pour le training, car il est connu pour fournir de bons résultats pour l'application
de transfert de style. Le taux d'apprentissage peut être ajusté de manière appropriée pour obtenir de
meilleurs résultats. Les épochs maximales pour le training peuvent être limitées afin de réduire le
temps du training, bien que trop peu d'épochs se traduisent par une qualité de sortie inférieure.

✓ Reconstruction d’audio :

Une fois l’entrainement terminé, l’output finale du réseau est obtenu doit être traité afin de
reconstruire l'audio à partir du résultat. Cela se fait en effectuant d'abord l'exponentiation de chaque
élément dans l output. La transformée de Fourier à court terme inverse (ISTFT) est calculée pour
chaque élément afin de reconvertir le signal dans le domaine temporel à partir du domaine
fréquentiel. La sortie est convertie au format entier et écrite dans un fichier WAV.

b- Entrainement du modèle :

Le modèle a été entrainé en utilisant deux audio de durée de 15 min (content et style)
contenant des phrases dites par la personne qu’on veut déduire l’audio avec son style de voix. La
fonction de perte diminue ce qui nous permet de dire que le modèle est bien entrainé (Figure 32) :

68
Chapitre 4 : développement du modèle

Figure 32 : Graphe de fonction de perte .

3- Audio-to-mouth :
Étant donné une piste audio source quelconque, on cherche à synthétiser une piste vidéo
correspondante. Pour atteindre cette capacité, on propose d’entraîner le modèle sur des séquences
vidéo pour apprendre à mapper l'entrée audio à la sortie vidéo. Ce problème peut être considéré
comme l'apprentissage du mappage « séquence to séquence », de l'audio à la vidéo, qui est conçu
pour un individu spécifique. Ce problème est difficile à résoudre à la fois en raison du fait que la
cartographie passe d'un signal de dimension inférieure (audio) à un signal de dimension supérieure
(vidéo), mais également de la nécessité d'éviter l'étranglement, car les humains sont très sensibles
au mouvement des lèvres. Le problème plus facile, on se concentre sur la synthèse des parties du
visage qui sont le plus corrélées à la parole.

On se concentre donc sur la synthèse de la région autour de sa bouche et empruntons le


reste de l’image de la personne (yeux, tête, toupie, arrière-plan) à des séquences d'archives.

3-1- Méthodologie :

Plutôt que de synthétiser la vidéo directement à partir de l'audio, on décompose le problème en deux
étapes :

1) mapper des caractéristiques audios aux coefficients de forme éparse.

2) mapper de la forme à la texture de la bouche.

69
Chapitre 4 : développement du modèle

Un réseau neuronal convertit d'abord les sons d'un fichier audio en forme de bouche de base.
On cherche à apprendre une cartographie des coefficients audio MFCC aux coefficients de forme de
bouche PCA. Pour cela on va utilisé un réseau LSTM unidirectionnel monocouche avec un time
DeLay ou un délai de retard, ce choix est motivé par le besoin des évènements passés et futures et
aussi parce que les LSTM facilite le fait de se souvenir (s’il est nécessaire) et oublier les
informations en remplaçant chaque unité cachée par une série de portes.

On considére que la personne prononce le mot « Allo ». Il commence par faire le son Ahhh,
qui est un signal destiné au synthétiseur de bouche qui devrait commencer à ouvrir la bouche. Il est
clair que ce réseau a besoin des dernières fonctionnalités audio comme entrée pour déterminer la
forme de la bouche. Mais on doit noter également que la forme actuelle de la bouche dépend
également de la forme précédente ; il continuera à dire Ahhh pendant plusieurs millisecondes
pendant lesquelles la bouche s'ouvrira plus large, plutôt que de rouvrir à partir d'un état fermé. A
chaque instant dans le temps, ce réseau prend la dernière entrée audio xt, et l'utilise pour modifier
son état caché, et génère un nouveau vecteur de forme de bouche yt pour cet instant, ainsi que pour
faire avancer sa mémoire dans le temps. De cette manière, le vecteur mémoire (qui peut être aussi
grand qu’on souhaite), peut représenter des événements potentiellement très éloignés du passé.

Parfois, la bouche bouge avant que le professeur dit quelque chose. C'est-à-dire qu'au
moment où la personne dit : Ahhh, sa bouche est déjà ouverte. Par conséquent, il ne suffit pas de
conditionner la forme de la bouche sur l’entrée audio passée - le réseau doit se tourner vers l’avenir,
cela est considérer comme une limitation de la méthode LSTM. La solution possible consiste à
rendre le réseau bidirectionnel. En effet, on va utiliser le LSTM bidirectionnel pour exploiter le
contexte futur. Cependant, les réseaux bidirectionnels nécessitent beaucoup plus de puissance de
calcul et de mémoire pour s'entraîner, car ils doivent être dépliés dans le processus de
rétropropagation, ce qui limite généralement non seulement la longueur des exemples
d'apprentissage, mais également la longueur de la sortie. C’est pour cela, un moyen beaucoup plus
simple d'introduire un contexte futur court dans un réseau unidirectionnel consiste à ajouter un délai
à la sortie en reportant la sortie du réseau dans le temps et il est appelé « délai de retard ». On trouve
que le mécanisme de temporisation plus simple est suffisant pour cette tâche, probablement en
raison de la nécessité de ne pas regarder loin dans le futur pour l'audio vers la vidéo.

Donc le schéma du réseau comme suit (Figure 33):

70
Chapitre 4 : développement du modèle

Figure 33 : Schéma explicative du fonctionnement du LSTM dans notre cas.

3-2-Architecture :

Figure 34 : Architecture adoptée pour la partie audio to mouth.

Pour notre cas, on a commencé par définir la couche LSTM avec 25 neurones, ensuite on a
ajouté une couche dropout avec la valeur 0.25 afin de surmonter le problème de’overfitting’ ou le
surapprentissage et enfin on utilise la couche qui sert à générer un output de taille (8), en appliquant
une fonction d’activation sigmoïde. Batch size qui vaut None dans notre cas va être modifier durant
l’entrainement du modèle (Figure 34).

5-1- Fonction de perte :


Le réseau LSTM standard proposé est défini par les fonctions suivantes (Figure 35):[3]

Figure 35 : Fonction de perte du LSTM.

Où f, i, o, c, h sont Forget gate, porte d'entrée, porte de sortie, état de cellule, sortie de
cellule. σ est l'activation sigmoïde. Notez que l'état de la cellule et la sortie de la cellule est
transformé avec Tanh.

71
Chapitre 4 : développement du modèle

Ŷt − d représente les coefficients PCA prédits au temps t − d où est le paramètre de retard.


(Time DeLay). On utilise un état de cellule de 60 dimensions c et un délai d de 20 pas (200 ms).

Le réseau est minimisé à l'aide de l'optimiseur Adam implémenté dans Tensorflow, sur de
nombreuses séquences de vidéos (Figure 36).

Figure 36 : Résultat de la fonction de perte à la fin de l’entrainement.

5-2- Résultat :
Après l’entrainement du LSTM sur 45 min d’audio vocal, on a utilisé pour le test plusieurs
audios de durée 1 minute et on a obtenu le résultat suivant (Figure 37):

Figure 37 : Résultat de LSTM.

72
Chapitre 4 : développement du modèle

6- FACIAL TEXTURE SYNTHESIS :


La plupart de problèmes de traitement d’image sont posés comme la traduction d’images
d’entrée en une image de sortie correspondante, par exemple la correction des couleurs d’image
d’entrée, un changement d’une partie de l’image … c’est pour cela l'architecture Pix2pix a été
présentée en 2016 par des chercheurs de Berkeley dans leur travail « Image-to-Image Translation
with Conditional Adversarial Networks » afin de régler ce genre de problèmes.

Alors afin de rendre nos images générer par le LSTM réaliste, ce projet va se basé sur
pix2pix, il utilise un réseau antagoniste génératif conditionnel (cGAN) pour apprendre une fonction
à mapper d'une image d'entrée à une image de sortie. Le réseau est composé de deux éléments
principaux, le générateur et le discriminateur. Le générateur transforme l'image d'entrée pour
obtenir l'image de sortie. Le discriminateur mesure la similitude de l'image d'entrée avec une image
inconnue (soit une image cible de l'ensemble de données ou une image de sortie du générateur) et
essaie de deviner si cela a été produit par le générateur.

4-1- Pix2Pix model :


Le modèle Pix2Pix est un type de GAN conditionnel, ou cGAN, où la génération de l'image
de sortie est conditionnelle à une entrée, dans ce cas, une image source. Le discriminateur est
pourvu à la fois d'une image source et de l'image cible et doit déterminer si la cible est une
transformation plausible de l'image source.

Là encore, le modèle discriminateur est mis à jour directement et le modèle générateur est
mis à jour via le modèle discriminateur, bien que la fonction de perte soit mise à jour. Le générateur
est entraîné via une perte contradictoire, ce qui encourage le générateur à générer des images
plausibles dans le domaine cible. Le générateur est également mis à jour via la perte L1 mesurée
entre l'image générée et l'image de sortie attendue. Cette perte supplémentaire encourage le modèle
générateur à créer des traductions plausibles de l'image source.

Le Pix2Pix GAN a été démontré sur une gamme de tâches de traduction d'image à image
telles que la conversion de cartes en photographies satellite, des photographies en noir et blanc en
couleur et des croquis de produits en photographies de produits.

73
Chapitre 4 : développement du modèle

Figure 38 : Transformation d’un dessin en image réelle.

L'entrée est une image de taille 192 * 192, qui ne contient que deux types de valeurs (0,
255). Le générateur générera une image colorée 192 * 192 avec trois canaux. La structure du discri-
minateur est illustrée ci-dessous (Figure 38 ). Le tenseur d'entrée 192 * 192 * 4 est une concaténa-
tion d'une image croisée à la main et de son image RVB correspondante. Le discriminateur décidera
si l'image RVB est réelle ou fausse.

Pix2Pix GAN a un générateur et un discriminateur comme un GAN normal. Mais, il est plus
supervisé que GAN (car il a des images cibles comme étiquettes de sortie). Dans le Pix2Pix, le
générateur est un réseau convolutionnel avec une architecture U-net [44].

✓ PIX2PIXHD

Pix2pixHD est une méthode pour synthétiser des images photo-réalistes haute résolution à
partir de cartes d'étiquettes sémantiques à l'aide de réseaux d'adversaires génératifs conditionnels
(CGAN), capable de générer des résultats d'image haute résolution avec une nouvelle perte
antagoniste, ainsi que de nouvelles architectures de générateur et de discriminateur multi-échelles.
En termes moins techniques, pix2pixHD est un chemin simple pour générer des images haute
résolution avec des options presque infinies pour modifier les petits et grands détails sur ces images.
Cela se fait en dessinant sur une carte d'étiquettes, puis en traduisant les dessins à l'aide de GAN
pour avoir des images HD.

Une amélioration est faite au niveau du Framework pix2pix en utilisant un générateur


Coarse-to-fine, une architecture de discriminateur multi-échelle, et une fonction d'objectif
d'apprentissage antagoniste robuste. Et un discriminateur multi échelle.

Pour améliorer la qualité des images, on a utilisé des blocs résiduels car ils prennent
n’importe quelle qualité d’image. Ce type de système de génération des images réaliste permet de
74
Chapitre 4 : développement du modèle

générer des images de résolution 4*la taille de l’image d’entrée. (2 × le long de chaque dimension
de l'image).

Figure 39 : Architecture du générateur.

On va entrainé d'abord un réseau résiduel G1 sur des images de résolution inférieure(Figure


39). Ensuite, un autre réseau résiduel G2 est annexé à G1 et les deux réseaux sont formés
conjointement sur des images haute résolution. Plus précisément, l'entrée des blocs résiduels dans
G2 est la somme élémentaire de la carte de caractéristiques de G2 et de la dernière carte de
caractéristiques de G1.

Pour l’entrainement, qui est déjà une ressource rare pour la génération d'images à haute réso-
lution, ils ont proposé d'utiliser des discriminateurs multi-échelles. Cette architecture dépend de 3
discriminateurs qui ont une structure de réseau identique mais fonctionnent à des échelles d'image
différentes. On appellera les discriminateurs D1, D2 et D3. Plus précisément, chaque discriminateur
va être entrainée pour formés pour différencier les images réelles et synthétisées à 3 échelles diffé-
rentes au niveau de la résolution [45].

✓ Fonction de perte :

La perte du discriminateur : La fonction de perte du discriminateur mesure à quel point les


prédictions du discriminateur sont bonnes ou mauvaises. Plus la perte du discriminateur est faible,
plus elle devient précise pour identifier les paires d'images synthétiques.

La perte du générateur : La perte du générateur mesure l'apparence réelle des images


synthétiques. En minimisant cela, le générateur pourrait produire des images plus réalistes.
Cette perte est presque la même que la perte générée, sauf qu'il s'agit de l'entropie croisée sigmoïde
de la sortie du discriminateur NxN et d'une matrice de celles-ci. Lorsque cette perte est propagée en
retour, les paramètres du réseau discriminateur sont gelés. Et seuls les poids du générateur sont
ajustés.
75
Chapitre 4 : développement du modèle

Pour améliorer l'esthétique de l'image générée, le terme de perte L1 a été ajouté dans le
pix2pix. Il calcule la distance L1 entre l'image cible et l'image générée. Il est ensuite multiplié par
un paramètre « Lambda » et ajouté à la perte du générateur.

4-2- UNET :
Le générateur de pix2pix dans notre cas va se basé sur une architecture UNET, Le modèle
U-Net est un modèle codeur-décodeur pour la traduction d'image où les connexions de saut sont
utilisées pour connecter les couches dans le codeur avec les couches correspondantes dans le
décodeur qui ont les mêmes cartes de caractéristiques de taille.

La partie encodeur du modèle est composée de couches convolutives qui utilisent une
foulée(stride) 2 × 2 pour sous-échantillonner l'image source d'entrée jusqu'à une couche de goulot
d’étranglement (bottleneck layer). La partie décodeur du modèle lit la sortie du goulot
d'étranglement et utilise des couches convolutionnelles transposées pour suréchantillonner à la taille
d'image de sortie requise.

Figure 40 : Liaison entre les couches UNET.

Des connexions de saut sont ajoutées entre les couches de même taille(Figure 40) afin que la
première couche de sous-échantillonnage soit connectée à la dernière couche de suréchantillonnage,

76
Chapitre 4 : développement du modèle

la deuxième couche de sous-échantillonnage est connectée à l'avant-dernière couche de


suréchantillonnage, et ainsi de suite. Les connexions concatènent les canaux dans la couche de sous-
échantillonnage avec celles dans la couche de suréchantillonnage [46].

4-3- Architecture :
On présente l’ architecture qui prend l’image résultat du LSTM et génère des images
réalistes ou la bouche est étalée sur le visage, ces images seront utilisées pour générer une vidéo
synchronisée avec l’audio utilisé comme entrée du LSTM précèdent, cette approche est basée sur un
réseau basé sur Pix2Pix pour générer les images vidéo conditionnées sur Keyspoints.

La motivation derrière le choix de la méthode pour effectuer la génération vidéo est le récent
succès de pix2pix CGAN en tant que solution à usage général pour les problèmes de traduction
d'image à image.

L’objectif ici est de traduire une image de visage d'entrée avec une zone de bouche recadrée,
en une sortie image avec la zone de la bouche peinte, conditionnée sur la forme de la bouche.

Pour éviter un conditionnement explicite de la représentation de la forme de la bouche,


l’architecture U-Net, on conditionne implicitement en dessinant un aperçu de bouche sur l'image
recadrée d'entrée. Le réseau apprend à tirer parti ce contour pour conditionner la génération de la
bouche en sortie. Cette dernière est utilisée dans le générateur puisqu’elle donne des résultats
satisfaisants. Le générateur et discriminateur se compose des couches conv2D pour appliquer une
convolution spatiale sur les images

4-4- Fonction de perte :


La perte dans pix2pix est qualifiée comme contradictoire. La perte du générateur est définie
par la somme de la perte L1 et celle du GAN, elle se compose de 2 termes, le 1 er est gen_loss_L1
est simplement la différence entre votre entraînement réel et votre objectif. En fait, c'est la réduction
moyenne. Cela donne facilement de bons résultats.
gen_loss_L1 = tf. reduce_mean (tf. Abs (targets – outputs))

Alors que gen_loss_GAN est la mesure de la formation qui vise à identifier les sorties
comme réelles.
gen_loss_GAN = tf. reduce_mean (-[Link] (predict_fake + EPS))

77
Chapitre 4 : développement du modèle

Donc la perte générale du générateur est comme suit :


gen_loss = gen_loss_GAN * a.gan_weight + gen_loss_L1 * a.l1_weight

Les deux gen_loss_GAN et gen_loss_L1 sont combinés pour former ce que on appelle le
générateur. Gen_loss_L1 donne un moyen simple qui converge rapidement. La combinaison utilisée
est quelque chose comme 100 * gen_loss_L1 + gan (Donner 10 fois L’importance à la perte L1 que
celle de GAN). Cela signifie que dans une première phase, gen_loss_L1 diminuera, et
probablement Gan augmentera. Mais GAN peut aider à aller plus loin dans les détails d'image que
gen_loss_L1 découvrira à peine.

Discrim_loss et gen_loss_GAN se battent l'un contre l'autre. Ceci est un artefact


mathématique. Discrim_loss est la mesure de la formation qui vise à identifier les sorties comme
des faux. Cette mesure sert à former ce que on appelle le discriminateur.
discrim_loss = tf. reduce_mean (-([Link] (predict_real + EPS) + [Link] (1 - predict_fake +
EPS)))

On a remarqué que les Keyspoints générés par le réseau récurrent sont cohérents dans le
temps sans changements brusques. Cela nous a permis d’effectuer la génération vidéo en parallèle,
en synthétisant chaque image dans la vidéo indépendamment dans le temps, compte tenu du
conditionnement informations sur les Keyspoints de la bouche. On n'avait besoin d'aucune
explication mécanisme pour maintenir la cohérence temporelle dans les trames générées de la vidéo.

Figure 41 : Entrainement de pix2pix

On a entrainé ce réseau (Figure 41) uniquement en utilisant la perte L1 du générateur dans


l'espace pixel et on a découvert que cet objectif est suffisant pour apprendre l'in-painting de la
bouche,

4-5- Génération des images :


Les données requises pour l’entrainement de ce composant sont des images réalistes, où
l'input face image est rognée autour de la bouche et annotée avec le contour de la bouche et l'image
de sortie qui forment le visage complet.
78
Chapitre 4 : développement du modèle

Pour cette tâche, on aura besoin des positions de la bouche extraite dans la section 2-3. On
recadre la bouche zone de chaque image(Figure 42) à l'aide d'un cadre de sélection autour des Keys
points de la bouche, et le contour de la bouche est dessiné avec les Keys points 49-68 utilisant Open
CV. La figure suivante montre un exemple entrée /paire de sortie.

Figure 42 : Exemple des images d’entrée pour pix2pix.

Un aspect important du processus de génération vidéo est de dénormaliser les Keys points
générés à partir de la précédente étape du pipeline en utilisant PCA de la section 2-4 , avec
l'emplacement de la bouche, la taille et les paramètres de rotation de la vidéo cible. Cela garantit
que la bouche rendue est visuellement compatible avec le visage,

Alors l’ensemble des images générer par pix2pix et qui seront présentes dans la vidéo seront
comme suit (Figure 43) :

79
Chapitre 4 : développement du modèle

Figure 43 : Résultat générée à l’aide de pix2pix.

Et pour améliorer la qualité des images, on a essayé d’utiliser également le pix2pixHD et les
résultats sont comme suit (Figure 44) :

Figure 44 : Résultat générée à l’aide de pix2pixHD.

Conclusion :
Cette technique de réseau de neurones actuelle pour synthétiser la forme de la bouche à
partir de l'audio est une contribution dans ce domaine, formée sur quelques vidéos, ce qui est
nettement plus simple que les méthodes précédentes. On a évalué de nombreuses architectures de
réseaux différentes pour arriver à cette solution, mais on a constaté qu'une approche étonnamment
simple basée sur des techniques LSTM standard produit d'excellents résultats. De plus, cette
approche pour générer une texture de bouche photoréaliste est faite avec 2 méthodes afin d’avoir
des résultats satisfaisants.

80
Chapitre 5 : Résultats & Discussion

Chapitre 5 : Résultats & Discussion

Introduction
Dans ce chapitre, on va se focaliser sur la qualité des résultats du projet qui a comme
objectif avoir une vidéo assez réaliste qui peut concurrencer une vraie vidéo ; se baser sur l'œil
humain n’est pas suffisant pour juger. C’est la raison pour laquelle le mesure de similarité est une
nécessité ainsi que l’évaluation de la qualité des images.

Une des étapes les plus importante pour réussir à obtenir un bon résultat est la
synchronisation entre les images et l’audio de la vidéo, car un petit décalage entre ces deux peuvent
causer l’échec des résultats même si les images sont réalistes et de bonne qualité.

Nul travail est parfait ; il y a toujours des contraintes sur plusieurs niveaux qui limitent le
projet mais heureusement qu’il y a aussi des perspectives qui ont comme but l’amélioration du
projet et le garder vivant.

Motivation :
Dans un projet informatique, il est primordial d’évaluer les résultats finaux. Pour cela, on va
discuter ces derniers durant plusieurs étapes en entrainant le Modèles avec des epochs différentes
pour pouvoir faire le suivi de l’amélioration de la qualité des images générées.

81
Chapitre 5 : Résultats & Discussion

1- Qualité des images :


1-1- Entrainement des images :
Les modèles d'apprentissage en profondeur sont formés à l'aide de grands ensembles de
données étiquetées et d'architectures de réseau neuronal qui apprennent les fonctionnalités
directement à partir des données sans avoir besoin d'extraction manuelle des fonctionnalités.

On a entrainé pix2pix plusieurs fois pour avoir un meilleur résultat au niveau de la qualité
des images, après chaque entrainement, on obtient un résultat meilleur que le précèdent, on a
commencé par 3 epochs , puis 20 epochs et enfin 70 epochs .

Figure 45 : Images générées après un entrainement resp de 3 epochs, 20 epochs et 70 epochs

On remarque une grande différence entre les images (Figure 45), on peut déduire que plus le
modèle est entrainé avec un nombre grand d’epochs, le résultat sera satisfaisant et la qualité sera
très bonne.
Bien que l’on pense régulièrement du qualitatif et quantitatif, ces deux formes d’évaluation sont
très liées voire complémentaires. Alors que le quantitatif permet d’obtenir des chiffres, des
comparaisons et de communiquer aisément sur des résultats, le qualitatif va renforcer les résultats
exposés, les expliquer. Le qualitatif ajoutera une profondeur à l’analyse quantitative ; dans notre
cas, après avoir comparé les résultats entre eux et avec les images réelles, on constate la qualité est
présente et les images générées sont assez réalistes, chose que le pourcentage de similarité (voir la
partie suivante) confirme ainsi que l’œil humain et il est possible d’améliorer cette qualité en
ajoutant les epochs d’entrainement .

En ce qui concerne la quantité, il n’y a pas de perte ; le nombre des images inputs est égal
aux nombres des images générées à l’output.

Le modèle de pix2pix a été entrainé sur une video de 1h càd l’ensemble de 5400 images
82
Chapitre 5 : Résultats & Discussion

avec un maximum d’epochs de 70 et on a testé avec des petite video de durée 1 min ce qui donne
500 images. On a obtenu le graphe de la fonction de perte du générateur (Figure 46)et du
discriminateur (Figure 47 et 48 ) :

Figure 46 : La fonction de perte du générateur

Figure 47 : La fonction de perte discriminateur sur les images non réalistes.


83
Chapitre 5 : Résultats & Discussion

Figure 48 : La fonction de perte discriminateur sur les images réalistes

La perte du générateur(Figure 45) était presque 200 et le discriminateur a convergé vers 0


.Ce résultat n’est donc pas optimal mais c’est le meilleur que on a pu obtenir avec cette architecture
et ce paramétrage ainsi que le matériel disponible.

1-2- Similarité :
a- Définition de similarité :
En général, c’est une fonction qui quantifie le rapport entre deux objets comparés en
fonction des points de ressemblance et de différence. Bien entendu, ces deux objets doivent
appartenir à une même classe sémantique.

Dans le cas le plus basique, la mesure de similarité est une fonction binaire qui affirme ou
nie la ressemblance de deux images. Elle peut servir de prédicat d’égalité, c'est à dire qu’elle
indique si deux contenus sont deux copies d’un même document. Cette notion stricte d’égalité peut
être étendue pour s’adapter à la nature complexe d’une image. on considère égaux deux documents
images identiques au bruit de transmission près, à la fréquence de codage près, aux petits
changements dus à des variations de montage près, à la longueur près, et ainsi de suite .

Il n’existe pas de définition standard en ce qui concerne la comparaison des images. En


effet, on peut la déduire en comparant la distances entre les pixels de chaque image, cela serait le
cas de ce projet.
84
Chapitre 5 : Résultats & Discussion

b- Calcul de similarité :
Afin de justifier la qualité des images générés , on doit se baser sur des mesures qui peuvent
nous donner une idée sur notre résultat , l’œil peut détecter la différence entre l’image réelle et
l’image générée mais elle ne nous donne pas un résultat exacte sur la qualité ,pour cela , on va
comparer les deux images en se basant sur le nombres de pixels différents et similaires(Figure 46) ,
on va définir un seuil de tolérance qui va nous permettre de déclarer que les deux images sont
différentes ou similaires ,après un parcours du nombres de pixels des 2 images , on peut savoir le
nombre de pixels similaires , différents , même le pourcentage de similarité, le code qu’on a
proposé prend comme entrée 2 images de la même personne dans un même instant ; puis on a
obtenu les résultats suivantes :

Image générée après 3 Image générée après Image générée après


epochs 20 epochs 70 epochs

Similarité 20.4% 53.7% 87%

Tableau 1 : Comparaison de la similarité entre les images générées.

Alors, on peut déduire que l’image qui est générée après un entrainement de 70 epochs et
plus similaire à celle réelle car elle représente le pourcentage le plus grand. Donc si on continue
l’entrainement avec un nombre grand d’epochs, on va avoir des résultats qui sont plus réalistes.

Figure 49 : Similarité entre une image réelle et image générée avec 70 epochs dans l’entrainement.

85
Chapitre 5 : Résultats & Discussion

1-3- Synchronisation vidéo-audio :


Durant la création d’une vidéo, l'image et le son s'enregistrent sur deux supports séparés.
La synchronisation audio vidéo est la coordination de la production de l'image et du son qui lui est
associé.

Lors du processus de fusion, l'audio enregistré par caméra et celui saisi grâce à un
enregistreur sont analysés et comparés. L'audio original du vidéo est ensuite remplacé par le fichier
audio sélectionné.

Pour fusionner des fichiers vidéo et audio et éviter le petit décalage causé lors de
reconstitution de la vidéo output, le modèle LSTM est responsable de cette tâche, ainsi que la loss
fonction (Figure 50) afin de faire l’évaluation.

Ce modèle qui est entrainé avec 70 epochs a pu nous aide à avoir une vidéo sans décalage
entre l’image et l’audio. Mais pour un résultat plus net, on peut lancer l’entrainement avec plus
d’epochs jusqu’à obtenir le résultat voulu.

Figure 50 : La fonction de perte du LSTM.

On a obtenu une accuracy de 50% ce qui nous permet de dire que les images de contour de
la bouche est précis, Ce résultat n’est donc pas optimal mais c’est le meilleur qu’on peut obtenir
avec cette architecture et ce paramétrage.

2- Contraintes :

86
Chapitre 5 : Résultats & Discussion

Lors de l’élaboration de ce travail, on a rencontré quelques difficultés, surtout avec la situation


actuelle et l’obligation du télétravail, parmi ces problèmes confrontés :

➢ La durée limitée de session sur google colab :

L’un des problèmes qui a empêché d’entrainer les modèles avec un grand nombre d’epochs c’est la
durée de la session qui vaut 12h, tandis que pour entrainer un modèle avec juste 3 epochs, il prend
10h.

➢ Manque de matériel professionnel :

Le projet sur lequel on a travaillé exige une machine avec des capacités gigantesques comme une
carte graphique RAM élevée, un bon processeur, ce qui était presque impossible de l’avoir durant la
période de confinement.

3- Limites de projet :
Même si l’architecture suivi dans le projet est impeccable et sans faute, Il est indispensable
d’avoir des limites :

Durée de la vidéo cible : l’approche de synthèse de la texture du visage proposée repose sur
un ensemble complet de formes de bouche disponibles dans la vidéo cible, suffisamment pour
couvrir les formes de bouche nécessaires pour l'audio source. Du coup l’apparition des dents ou du
double menton peut causer un déséquilibre pour le modèle.

Modélisation des émotions : cette méthode ne modélise pas explicitement les émotions ni ne
prédit le sentiment du discours d'entrée. Les expressions faciales dans la vidéo de sortie finale
peuvent sembler trop graves pour un discours désinvolte, ou trop joyeux pour un discours sérieux.

Modélisation de la langue : la synthèse de la texture de la bouche suppose que la texture de


la bouche peut être entièrement déterminée par les positions des repères des lèvres. Mais ce n’est
pas si simple si la personne est atteinte d’un trouble de parole comme le bégaiement, la dysphasie,
la dysphonie ou le zézaiement qui nécessite l'utilisation de la langue pour la prononciation, ce qui
peut être difficile à distinguer en se basant uniquement sur des repères labiaux.

Modélisation de la mâchoire : Cette partie sera un problème pour les personnes qui souffrent
d’un handicap ou une déformation au niveau de la mâchoire comme Stephen William Hawkins.
Dans ce cas les repères faciaux ainsi que labiaux seront difficiles à détecter ; ce qui demande un
modèle personnalisé.
87
Chapitre 5 : Résultats & Discussion

4- Perspectives :
3-1- Audio to mouth :
Le mapping Seq-à-Seq des signaux audio de la bouche avec un réseau de convolution
temporel contradictoire (TCN). Les expériences montrent que le modèle qu’on a utilisé surpasse les
lignes de base traditionnelles RNN en termes de précision et de vitesse.

Ce choix est motivé par la performance de ce type de réseau de neurones. Une expérience
complète démontre que le TCN surpasse les réseaux récurrents tels que les LSTM à travers une
gamme diversifiée de tâches et jeux de données, tout en démontrant une mémoire efficace plus
longue.

TCN a la force du grand champ perceptif séquentiel, des gradients stables et faibles besoins
En mémoire. Pour apporter de telles forces dans le scénario de synchronisation labiale, Les réseaux
de neurones récurrents (RNN) sont autrefois le choix commun dans la modélisation des problèmes
de séquence. Les RNN sont écartés à cause des problèmes de limitation de bande passante et
gradients et aussi le problème pour les séquences les plus longues.

Figure 51 : Architecture d’audio to mouth avec TCN et les GAN.

a- Architecture
L'architecture du modèle contradictoire basé sur TCN dans le module audio-à-bouche
(Figure 51). Le générateur basé sur TCN est utilisé pour apprendre le mappage des features MFCC
aux points clés de la bouche. Un autre classificateur qui est le discriminateur basé sur TCN prend la
combinaison de l'audio et la bouche présente en entrée et juge les paires réelles et fausses
88
Chapitre 5 : Résultats & Discussion

(synthétisées). On modélise d'abord le mappage Seq-à-Seq à partir de données audios


chronologiques caractéristiques à des caractéristiques de bouche séquentielles en utilisant une paire
de Temporelle Réseaux convolutifs (TCN).

✓ Dilated Non-causal Convolutions :

Les convolutions dilatées permettent aux architectures TCN champ de réception


exponentiellement grand sur la longue séquence. Dans le paramètre TCN commun, la contrainte
causale signifie la convolution les noyaux ne couvrent que les entrées passées. Cependant, de
nombreuses études enregistrer que les mouvements des lèvres dépendent non seulement du passé
mais aussi sur les futurs signaux vocaux. Ainsi, les modèles tels que temporisé LSTM et LSTM
bidirectionnel sont les choix préférés. Dans l’environnement TCN, on utilisera les circonvolutions
non causales dilatées pour prendre en compte les signaux futurs et passés tout en grand champ
récepteur.

Générateur : génère des caractéristiques de la bouche suivant le débit audio, puis sous-
échantillonnage, on enveloppe le bloc TCN avec des convolutions 1D pour sous-échantillonner
dans le modèle.

Discriminateur : basé sur TCN pour soutenir la formation du réseau de cartographie.


Semblable au générateur, le discriminateur a la même structure non causale dilatée, mais
différemment, il prend la combinaison de séquences audio et de bouche comme entrée et sortie
d'une étiquette réelle ou fausse. Le générateur et discriminateur a le bloc TCN avec la taille du
noyau 3.

Une perte contradictoire est utilisée avec le discriminateur basé sur le TCN pour capturer un
écart de haut niveau entre ce qui est généré et ce qu’on doit avoir à la fin Target.

✓ Chevauchement entre séquences consécutives

TCN utilise des rembourrages pour garder la même longueur entre l'entrée et séquences de
sortie. Cependant, les signaux de remplissage auront un impact sur la prédiction à la fois en tête et
en queue de la séquence de sortie. Pour éviter cela, on crée des chevauchements sur les séquences
d'entrée et de sortie. Cela signifie que on utilise uniquement le segment optimal pour construire la
sortie finale. La plage de chevauchement est liée au champ récepteur, et nous le considérons comme
un hyperparamètre et déterminé par des expériences ultérieures [47].

89
Chapitre 5 : Résultats & Discussion

3-2- FACIAL TEXTURE SYNTHESIS


En se basant sur une vidéo d'une personne source et une autre d'une personne cible, notre
objectif est de générer une nouvelle vidéo de la cible en agissant les mêmes mouvements de visage
que la source. Pour accomplir cette tâche, on divise notre pipeline en trois étapes - la détection de la
grimace, la normalisation globale de ce qu’on a détecté et la cartographie des figures de grimace du
visage normalisées au sujet cible. Pour faire cela on s’appuiera sur la même architecture (Figure 52)
du projet « Everyday can dance » . Ce problème est traité comme une traduction vidéo en vidéo en
utilisant la pose stick comme représentation intermédiaire. Pour transférer le mouvement, on extraie
les poses du sujet source et appliqué le mappage pose-apparence appris pour générer le sujet cible.
On prédit deux images consécutives pour des résultats vidéo cohérents dans le temps et introduit un
pipeline séparé pour la synthèse de visage réaliste. Bien que la méthode soit assez simple, elle
produit des résultats étonnamment convaincants.

Dans la phase de détection de pose, on utilise un détecteur de pose de pointe pré-entraîné


pour créer des figures de pose à partir d'images de la vidéo source. L'étape de normalisation de
l'objectif global tient compte des différences entre les formes et les emplacements du corps source
et cible dans le cadre. Enfin, on conçoit un système pour apprendre la cartographie des figures du
pose aux images de la personne cible en utilisant un entraînement antagoniste.

De telles méthodes de traduction image à image à une seule image ne conviennent pas à la
synthèse vidéo car elles produisent des artefacts temporels et ne peuvent pas générer les détails fins
importants pour percevoir les humains en mouvement. On ajoute donc un modèle appris de
cohérence temporelle ainsi qu'un module de génération de faces haute résolution.

En effet, Pour créer des séquences vidéo, modifiez la configuration de génération d'image
unique pour appliquer la cohérence temporelle entre les images adjacentes, Au lieu de générer des
images individuelles, on prédit deux images consécutives où la première sortie G (xt − 1) est
conditionnée sur la pose correspondant xt − 1 et une image nulle (un espace réservé car il n'y a pas
de trame précédemment générée à temps− 2). La deuxième sortie G (xt) est conditionnée par son la
pose correspondant xt et la première sortie G (xt-1). Par conséquent, le discriminateur est désormais
chargé de déterminer à la fois la différence de réalisme et de cohérence temporelle entre la fausse
séquence (xt − 1, xt, G (xt − 1), G (xt)) et réelle séquence (xt − 1, xt, yt − 1, yt). Les changements
de lissage temporel sont désormais reflétés dans l'objectif GAN mis à jour

90
Chapitre 5 : Résultats & Discussion

Figure 52: Architecture everybody can dance.

Entrainement : ce modèle utilise un détecteur de pose P pour créer des figures de bâton de
pose à partir d'images vidéo du sujet cible. On apprend la cartographie Galongside à un
discriminateur contradictoire D qui tente de distinguer les « vraies » correspondances (xt, xt + 1),
(yt, yt + 1) et la « fausse » séquence (xt, xt + 1), (G (xt), G (xt + 1)).

Transfert : on utilise un détecteur de pose P pour obtenir des joints appropriés pour la
personne source qui sont transformés par ce processus de normalisation N ou en minuscules pour la
personne cible pour laquelle des figures pose stick sont créées. Ensuite, on applique le mapping G
formé [48].

5- Apports :
La réalisation de ce projet a été́ très enrichissante pour moi dans la mesure où elle nous a
permis de nous initier dans la science des données avec l’apprentissage du Deep Learning et des
réseaux neurones. En fait à̀ travers ce projet on a pu voir beaucoup d’aspects et de technologies liés
au métier de data science. En plus de cela ce stage nous a permis d’étendre nos compétences en
plusieurs niveaux malgré les circonstances actuelles. En plus des apports sur le plan technique,
travailler à̀ deux dans ce projet a renforcé nos capacités de travail en équipe. Aussi travailler au sein
du service de DFR m’a donné l’opportunité́ de collaborer avec des professionnels du monde de
l’entreprise. Ce qui a abouti à̀ améliorer notre capacité́ à mener un projet et à travailler dans un
environnement collaboratif.

91
Chapitre 5 : Résultats & Discussion

6- Synthèse :
Le but de ce projet était de générer des vidéos en utilisant les GANs. Ce système permet
d’avoir des vidéos fausses mais assez réalistes à partir des textes, des audios et des images qu’on ne
peut pas distinguer des vidéos réelles.

On a commencé par une présentation du contexte du projet et expliquer brièvement la


problématique. Par la suite, on s’est intéressé à l’étude conceptuelle du projet, ce qui nous a permis
de faire, après une analyse et spécification des besoins, la conception détaillée. Ensuite on a
présenté́ les concepts de base issus de la recherche scientifique et qui nous ont permis
d’appréhender les connaissances requises pour la réalisation de ce système. Dans cette section on
est revenus sur les concepts du Deep-Learning ainsi que sur les réseaux neurones. Le dernier volet
de notre projet était la partie de reconstitution qui a été́ consacrée à̀ la présentation des outils utilisés
et de l’architecture logicielle de ce résultat. Ce qui nous a permis de revenir en détail sur
l’implémentation de nos modèles entrainés.

92
Conclusion

Conclusion :

A l’issue de la réalisation de ce travail, on peut affirmer sans risque de se tromper que le


projet nous a été́ grandement bénéfique dans la mesure où il nous a permis de s’améliorer sur le
plan technique, professionnel et humain.

Sur le plan technique, ce projet nous a permis d’apporter nos connaissances théoriques et
approfondir nos recherches dans certains domaines comme la data science et le Deep Learning.

Dans le cadre professionnel, le stage au sein de l UM6P, nous a offert l'opportunité́ de nous
imprégner des réalités professionnelles en développant en nous l'esprit communicationnel.

Comme apports sur le plan humain, ce projet a été́ une véritable occasion de vivre de près
une expérience de travail très remarquable (même à distance) au sein d’une équipe où tout le monde
est accueillant avec un esprit très ouvert.

93
Références

Références
[1] :[Link]

[2] : [Link]
est

[3] : [Link]
science/

[5] : [Link]
application-qui-fait-vieillir_3517831.html

[6] : [Link]

[7] : [Link]

[8] : [Link]

[9] : [Link]
step-tutorial-69e6d1c9d8e9

[10] : [Link]

[11] : [Link]

[12] : [Link]

[13] : [Link]

[14] : [Link]
neuronaux-recurrents-et-lstm

[15] : [Link]
neurones-convolutifs

[16] : [Link]
architecture-for-face-recognition_fig1_330333023

94
Références

[17] : [Link]

[18] : [Link]
to-highway-image-classification/

[19] :[Link]
Sc_2018.pdf?sequence=5&isAllowed=y

[20] : [Link]

[21] : [Link]

[22] : [Link]

[23] : [Link]

[24] : [Link]

[25] : [Link]

[26] : [Link]

[27] : [Link]

[28] : [Link]

[29] : [Link]

[30] : [Link]

[31] : //[Link]/project/Imutils/

[32] : [Link]

[33] : [Link]

[34] : [Link]

[35] : [Link]

[36] : [Link]

95
Références

[37] : [Link]

[38] : [Link]

[39] : / [Link]

[40] : [Link]
principales-acp

[41]: [Link]

[42]: [Link]

[43]: [Link]

[44] : [Link]

[45] : [Link]

[46] : [Link]
scratch-with-keras/

[47] : [Link]

[48] : [Link]

96

Vous aimerez peut-être aussi