Université Cadi Ayyad Faculté des Sciences et Techniques Marrakech (FSTG) Mémoire de Projet de fin d’étude Deepfake Detection GUI Systèmes Informatiques Répartis June 25, 2020 Contributors • Author One • Author Two History Version Date Comment 1.0 xx/yy/20zz Text 2 Contents 1 Introduction générale 6 2 Contexte général et l’analyse des besoins 7 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Contexte général . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.1 Définition du DEEPFAKE . . . . . . . . . . . . . . . . . . . . . 7 2.2.2 Histoire et l’origine du DEEPFAKE . . . . . . . . . . . . . . . 8 2.3 l’analyse des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3.1 Présentation de la problématique : . . . . . . . . . . . . . . . . 8 2.3.2 Deepfake Detection . . . . . . . . . . . . . . . . . . . . . . . . 9 3 Conception et modélisation du projet 10 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2 Présentation UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3 Diagramme de cas d’utilisation . . . . . . . . . . . . . . . . . . . . . . 10 3.3.1 UML pour la version simple. . . . . . . . . . . . . . . . . . . . . 11 3.3.2 UML pour la version complète. . . . . . . . . . . . . . . . . . . 12 4 Outils techniques 13 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.2 Outils utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.2.1 Colab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.2.2 PyCharm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.2.3 NgRok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.2.4 GIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.2.5 Githack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.2.6 SQLite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.3 Langages et technologies de programmation . . . . . . . . . . . . . . . 15 4.3.1 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.3.2 Flask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.3.3 JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.3.4 Ajax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.3.5 Bootstrap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.3.6 DropZone.js . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.3.7 JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.3.8 LaTeX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 5 Mise en oeuvre 19 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.2 Mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.2.1 Aperçu interfaces graphiques de la version simple - Test Video - 19 3 5.2.2 Aperçu interfaces graphiques de la version simple - Train a model - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.2.3 Aperçu interfaces graphiques de la version complet - Compte - 27 5.2.4 Aperçu interfaces graphiques de la version complet - Test Video - 29 5.2.5 Aperçu interfaces graphiques de la version complete - Train a model - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 6 Conclusion générale et perspectives 34 6.1 Les défis du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6.2 Conclusion générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4 List of Figures 1 Diagramme de cas d’utilisation pour la version Simple . . . . . . . . . 11 2 Diagramme de cas d’utilisation pour la version Complet . . . . . . . . 12 3 Page d’accueil version simple . . . . . . . . . . . . . . . . . . . . . . . 19 4 Page de test version simple . . . . . . . . . . . . . . . . . . . . . . . . . 20 5 Page de test version simple lorsque le téléchargement est terminé . . . 21 6 Page de test version simple quand clique ’start testing’ . . . . . . . . . 21 7 Page de résultats version simple ’FakeVideo’ . . . . . . . . . . . . . . . 22 8 Page de résultats version simple ’RealVideo’ . . . . . . . . . . . . . . . 23 9 Page ’Train a model’ version simple . . . . . . . . . . . . . . . . . . . . 24 10 page ’Train model’ version simple Téléchargement complet . . . . . . . 25 11 page ’Train model’ version simple ’Start Training’ . . . . . . . . . . . . 25 12 Page ’model complete’ . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 13 Page d’accueil version complet . . . . . . . . . . . . . . . . . . . . . . 27 14 Page Créer un compte version complet . . . . . . . . . . . . . . . . . . 28 15 Page de connexion version complet . . . . . . . . . . . . . . . . . . . . 28 16 Page de test version complet 1 . . . . . . . . . . . . . . . . . . . . . . 29 17 Page de test version complet 2 . . . . . . . . . . . . . . . . . . . . . . 30 18 Page de vidéos version complet . . . . . . . . . . . . . . . . . . . . . . 31 19 Page ’Model’ version complet 1 . . . . . . . . . . . . . . . . . . . . . . 31 20 Page ’Model’ version complet 2 . . . . . . . . . . . . . . . . . . . . . . 32 21 Page mes modèles version complet . . . . . . . . . . . . . . . . . . . . 33 5 1 Introduction générale La manipulation du contenu visuel est devenue omniprésente et l’un des sujets les plus critiques de notre société numérique. Par exemple, DeepFakes a montré comment l’infographie et les techniques de visualisation peuvent être utilisées pour diffamer des personnes en remplaçant leur visage par le visage d’une personne différente. Les visages présentent un intérêt particulier pour les méthodes de manipulation actuelles pour diverses raisons: • premièrement, la reconstruction et le suivi des visages humains est un domaine bien étudié en vision par ordinateur , qui est le fondement de ces approches d’édition. • Deuxièmement, les visages jouent un rôle central dans la communication humaine, car le visage d’une personne peut souligner un message ou même transmettre un message à part entière . Les méthodes actuelles de manipulation faciale peuvent être séparées en deux catégories: la manipulation de l’expression faciale (facial expression manipulation) et la manipulation de l’identité faciale (facial identity manipulation) . (i) L’une des techniques de manipulation des expressions faciales les plus importantes est la méthode de Thies et al. [56] appelé Face2Face. Il permet le transfert des expressions faciales d’une personne à une autre en temps réel en utilisant uniquement du matériel de base. Un travail de suivi tel que Synthétiser Obama est capable d’animer le visage d’une personne sur la base d’une séquence d’entrée audio. (ii) La manipulation d’identité est la deuxième catégorie de contrefaçons faciales (fa- cial forgeries). Au lieu de changer les expressions, ces méthodes remplacent le visage d’une personne par le visage d’une autre personne. Cette catégorie est appelée échange de visage. Il est devenu populaire avec des applications grand public comme Snapchat. DeepFakes effectue également un échange de visage, mais via un apprentissage en profondeur. Alors que l’échange de visage basé sur des techniques graphiques informa- tiques simples peut s’exécuter en temps réel, DeepFakes doit être formé pour chaque paire de vidéos, ce qui est une tâche longue. 6 2 Contexte général et l’analyse des besoins 2.1 Introduction Ce premier chapitre décrit le contexte général de notre projet et également le pourquoi de notre choix de ce sujet, on va essayer de vous présenter brièvement ce que vous allez trouver bien détaillé dans les chapitres qui suivent. 2.2 Contexte général Cette année nous avons bien remarqué que 2020 est et restera une année spéciale pleine des nouvelles et des événements dont parmi eux ceux qui nous ont changé notre mode de vie complètement comme la Pandémie Covid-19 virus qui est une de ces événements là qui va être gravé dans notre mémoire à vie. Ce virus nous a dévoilé beaucoup de chose qu’on n’avait presque jamais fait attention, comme les nouvelles falsifiées soit des vidéos ou des images qu’on trouve partout dans les médias et surtout dans les réseaux sociaux, on sait déjà que à l’aide du Photoshop on peut changer n’importe quelle photo et c’est bien facile de découvrir si cette photo est modifiée ou pas, mais est ce qu’on peut changer, truquer les vidéos ? si oui est ce qu’il y a un moyen pour la découvrir ? La réponse est bien OUI modifier une vidéo est bien possible, et avec le développement de la technologie ils ont trouvé du moyen pour les détecter. Au moment ou nous avons eu la liste des projets nous avons pas hésité pour le choisir DEEPFAKE DETECTION , pour plusieurs raisons comme par exemple les dégâts des vidéos falsifiées, que ça soit au niveau de la politique ou personnelle dont plusieurs acteurs et actrices ont été victimes de ce type de vidéos, la deuxième raison est l’intérêt de parler et présenter une nouvelle technologie, grâce à ce projet et cette problématique nos compétences en informatique sont bien développées. 2.2.1 Définition du DEEPFAKE Le Deepfake est un terme qui se compose deux mots, Deep et fake : • Fake veut dire FAUX • deep vient de deep Learning qui veut dire apprentissage profond d’un intelligence artificielle, donc le deep fake veut dire un fallacieux rendu profondément crédible grâce à une intelligence artificielle. Le terme désigne non seulement le contenu ainsi généré, mais aussi les technologies utilisées à cet effet. 7 2.2.2 Histoire et l’origine du DEEPFAKE En 2014 un chercheur appelé Ian GOODFELLOW connue par les GAN parce que c’est lui qui a créé les réseaux antagonistes génératives (Generative Adversarial Networks), a inventé une nouvelle technologie qu’avec deux algorithmes s’entraı̂nent mutuelle- ment, l’un œuvrant à fabriquer une image tandis que l’autre cherche, en parallèle, à déterminer si cette image est fausse, entraı̂nant de cette façon le premier à faire mieux. Selon cette technologie, deux algorithmes s’entraı̂nent mutuellement, l’un œuvrant à fabriquer une image tandis que l’autre cherche, en parallèle, à déterminer si cette image est fausse, entraı̂nant de cette façon le premier à faire mieux. Cette technologie a per- mis d’engendrer le portrait d’Edmond de Belamy , tableau conçu par une intelligence artificielle et vendu aux enchères chez Christie’s en octobre 2018. Les images créées par les GAN ont atteint un niveau de crédibilité très satisfaisant, la frontière entre le réel et le virtuel n’étant plus toujours perceptible. Dès avril 2018, le site Buzzfeed entend dénoncer la gravité de cette pratique du faux en réalisant une vidéo à partir du logiciel FakeApp, un deepfake qui fait dire à l’ancien président Barack Obama – avec la participation du comédien Jordan Peele, tout le mal qu’il pense de son successeur à la Maison Blanche. En juin 2019, c’est une démarche plus incisive qui guide les deux artistes britanniques Bill Posters et Daniel Howe, en collaboration avec l’agence de communication Canny AI, lorsqu’ils postent sur Instagram une vidéo deepfake faisant dire à Mark Zuckerberg que quiconque contrôle les données contrôle l’avenir . Avec leur vidéo clairement estampillée deepfake, les artistes invitent à imaginer la prochaine étape de notre évolution numérique où chacun pourrait éventuellement avoir une copie numérique, un humain universel éternel. Cela changera notre façon de partager et de raconter des histoires, de nous souvenir de nos proches et de créer du contenu. En toute logique, ce deepfake du patron n’a pas été supprimé sur le réseau social. 2.3 l’analyse des besoins Le phénomène Deepfake est devenu très populaire de nos jours grâce à la possibilité de créer des vidéos incroyablement réalistes en utilisant les outils DeepFake en ligne *. Dans ce travail, nous nous concentrons sur l’analyse des Deepfakes des visages humains avec l’objectif de créer un nouvel outil en ligne de détection capable de détecter une trace de médecine légale cachée dans les vidéos: une sorte d’empreinte laissée dans le processus de génération vidéo. Puisqu’il s’agit d’un site de réseau social, composé d’internautes, nous avons choisi pour le nom du site: ”DFDetection”. Nous pensons que cela résume bien le sujet du site et qu’il sera facile pour les futurs utilisateurs de trouver notre site Web. 2.3.1 Présentation de la problématique : Une vidéo truquée de quelques secondes peut changer la vie d’une personne à vie, c’est pourquoi on revient pour poser la question est ce qu’il y a une solution pour 8 qu’on puisse vérifier si une vidéo est falsifiée ? Notre problématique est bien donc : la conception et la réalisation d’une application de détection des Deepfakes. 2.3.2 Deepfake Detection La détection des contenus visuels manipulés est une recherche d’un intérêt intense dans les milieux universitaires et industriels, et un sujet de conversation pressant dans la société en général. Un type de contenu visuel manipulé, des vidéos de haute qualité contenant des manipulations faciales (familièrement appelées ”deepfakes”), est devenue particulièrement importante au cours des deux dernières années. Deepfake détections est une application qu’on a pu réaliser pour détecter la manipulation faciale. 9 3 Conception et modélisation du projet 3.1 Introduction Dans ce chapitre, nous allons présenter notre conception et analyse basé sur l’étude faites dans le chapitre précédant. La plupart des langages sont orientés objets. Le passage de la programmation fonc- tionnelle à l’orienté objet n’est pas facile. L’un de souci était d’avoir une idée globale en avance de ce qu’on doit programmer. L’algorithmique qui était utilisé dans la programmation fonctionnelle ne pourrait pas suffire à lui seul. Le besoin d’avoir des méthodes ou langages pour la modélisation des langages orientés objet est nécessaire. Ainsi plusieurs méthodes ou langages ont vu le jour. En occurrence UML qui nous a permis de faire la conception de notre application. De nos jours, UML possède treize diagrammes qui sont classés en deux catégories (dynamique et statique). Pour ce faire, on a commencé par les diagrammes de cas d’utilisation (Use Case) qui permettent de donner une vue globale de l’application. Pas seulement pour un client non avisé qui aura l’idée de sa future application mais aussi pour le développeur qui s’en sert pour le développement des interfaces. 3.2 Présentation UML En informatique UML (de l’anglais Unified Modeling Language), ou Langage de modélisation unifié, est un langage de modélisation graphique à base de pictogrammes. Il est utilisé en développement logiciel, et en conception orientée objet. UML est couramment utilisé dans les projets logiciels. UML est l’accomplissement de la fusion de précédents langages de modélisation ob- jet : Booch, OMT, OOSE.Principalement issu des travaux de Grady Booch, James Rumbaugh et Ivar Jacobson, UML est à présent un standard défini par l’Object Man- agement Group (OMG). La dernière version diffusée par l’OMG est UML 2.5 bêta 2 depuis septembre 2013. 3.3 Diagramme de cas d’utilisation Le diagramme de cas d’utilisation permet de déterminer les possibilités d’interférence entre le système et les acteurs, c’est-à-dire déterminer toutes les fonctionnalités que doit fournir le système. Il permet aussi de délimiter ce dernier. (i) Chaque usage effectué par les acteurs est représenté par un cas d’utilisation. (ii) Chaque cas d’utilisation symbolise une fonctionnalité qui leur est offerte afin d’engendrer le résultat attendu. (iii) Le diagramme de cas d’utilisation décrit l’interaction entre le système et l’acteur en déterminant les besoins de l’utilisateur et tout ce que doit faire le système pour l’acteur. 10 3.3.1 UML pour la version simple. Figure 1: Diagramme de cas d’utilisation pour la version Simple La figure 21 représente le diagramme de cas d’utilisation version simple. Ce cas d’utilisation débute quand l’user se connecte sur le système après il va choisir l’une des options suivantes : • Tester une vidéo avec le modèle par défaut. • Tester une vidéo avec le modèle personnalisé. • Traiter une modèle. 11 3.3.2 UML pour la version complète. Figure 2: Diagramme de cas d’utilisation pour la version Complet La figure 2 représente le diagramme de cas d’utilisation version complet. Ce cas d’utilisation débute quand l’user se connecte sur le système après il va choisir l’une des options suivantes : • Tester une vidéo avec le modèle par défaut. • Tester une vidéo avec le modèle personnalisé. • Traiter une modèle. • Créer un compte. • Visitez la page About. • Accéder à vos modèle. • Accéder à vos vidéos. • Se connecter. 12 4 Outils techniques 4.1 Introduction Dans ce chapitre, nous allons présenter les outils utilisés pour la réalisation de notre projet ainsi que la raison de nos choix. La création et la conception d’un GUI est un processus qui implique l’utilisation de nouvelles technologies et outils qui n’ont pas été inclus dans notre formation. Parmi les outils utilisés, on trouve : • La langages de programmation qui nous permet de comprendre le code du repos- itory github. • Langage de balisage pour garantir une bonne présentation visuelle. • Langage de programmation côté serveur pour la création d’une interface de com- munication avec ce dernier • Les systèmes de gestion de base de données qui répondent aux différentes opérations de stockage et de traitement des données. 4.2 Outils utilisés 4.2.1 Colab Google Colab est un service cloud gratuit et prend désormais en charge le GPU gratuit! Vous pouvez: • améliorez vos compétences de codage en langage de pro- grammation Python. • développer des applications d’apprentissage en pro- fondeur à l’aide de bibliothèques populaires telles que Keras, TensorFlow, PyTorch et OpenCV. • La caractéristique la plus importante qui distingue Colab des autres services cloud gratuits est: Colab fournit un GPU et est totalement gratuit. 13 4.2.2 PyCharm PyCharm est un environnement de développement intégré (IDE) utilisé dans la programmation informatique, spécifiquement pour le langage Python. Développé par la société tchèque JetBrains, il fournit l’analyse de code, un débogueur graphique, un testeur d’unité intégré, l’intégration avec des systèmes de contrôle de version (VCS) et prend en charge le développement Web avec Django ainsi que Data Science avec Anaconda. PyCharm est multiplateforme, avec les versions Windows, macOS et Linux. L’édition commu- nautaire est publiée sous la licence Apache, et il existe également l’édition profession- nelle avec des fonctionnalités supplémentaires - publiées sous une licence propriétaire. 4.2.3 NgRok Ngrok est une application multiplateforme qui permet aux développeurs d’exposer un serveur de développement local à In- ternet avec un minimum d’effort. Le logiciel donne l’impression que votre serveur Web hébergé localement est hébergé sur un sous-domaine de ngrok.com, ce qui signifie qu’aucune adresse IP publique ou nom de domaine sur la machine locale n’est nécessaire. 4.2.4 GIT C’est un logiciel de gestion de version décentralisé, ce qui signi- fie qu’il gère les modifications d’un projet sans en écraser toutes les parties et qui nous a permis de contrôler notre site web. 14 4.2.5 Githack raw.githack.com agit comme un proxy de mise en cache, trans- mettant les demandes au service correspondant, mettant en cache les réponses soit pendant une courte période (dans le cas des URL de développement) soit de manière permanente (dans le cas des URL CDN), et en les relayant à un navigateur avec les en-têtes de type de contenu corrects. 4.2.6 SQLite SQLite est une bibliothèque C qui fournit une base de données sur disque légère qui ne nécessite pas de processus serveur dis- tinct et permet d’accéder à la base de données à l’aide d’une variante non standard du langage de requête SQL. Certaines ap- plications peuvent utiliser SQLite pour le stockage de données interne. Il est également possible de prototyper une application à l’aide de SQLite, puis de porter le code sur une base de données plus grande telle que PostgreSQL ou Oracle. 4.3 Langages et technologies de programmation 4.3.1 Python Python est un langage de programmation interprété, multi- paradigme et multiplateformes. Il favorise la programmation impérative structurée, fonctionnelle et orientée objet. Il est présenté d’un typage dynamique fort, d’une gestion automa- tique de la mémoire par ramasse-miettes et d’un système de gestion d’exceptions. Python est considéré comme étant en première place dans la liste de tous les langages de développement de l’IA en raison de sa simplicité. Les syntaxes appartenant à python sont très simples et peuvent être facilement apprises. Par conséquent, de nombreux algorithmes d’IA peuvent y être facilement implémentés. Python prend un temps de développement court par rapport à d’autres langages comme Java, C ++ ou Ruby. 15 Python prend en charge les styles de programmation orientés objet, fonctionnels et orientés procédure. Il existe de nombreuses bibliothèques en python, ce qui facilite nos tâches. Par exemple: Numpy est une bibliothèque pour python qui nous aide à résoudre de nombreux calculs scientifiques. Nous avons également Pybrain, qui est destiné à l’utilisation de l’apprentissage automatique en Python. 4.3.2 Flask Flask est un framework micro web écrit en Python. Il est classé comme un microframework car il ne nécessite pas d’outils ou de bibliothèques particuliers.Il n’a pas de couche d’abstraction de base de données, de validation de formulaire ou de tout autre composant où les bibliothèques tierces préexistantes four- nissent des fonctions communes. Cependant, Flask prend en charge les extensions qui peuvent ajouter des fonctionnalités d’application comme si elles étaient implémentées dans Flask lui-même. Des extensions existent pour les mappeurs objet-relationnels, la validation des formulaires, la gestion des téléchargements, diverses technologies d’authentification ouvertes et plusieurs outils communs liés au framework. Les ex- tensions sont mises à jour beaucoup plus fréquemment que le programme principal de Flask. 4.3.3 JavaScript JavaScript est un langage de programmation de scripts prin- cipalement employé dans les pages web interactives mais aussi pour les serveurs avec l’utilisation (par exemple) de Node.js. C’est un langage orienté objet à prototype, c’est-à-dire que les bases du langage et ses interfaces principales sont fournies par des objets qui ne sont pas des instances de classes, mais qui sont chacun équipés de constructeurs permettant de créer leurs propriétés, et notamment une propriété de prototypage qui per- met de créer des objets héritiers personnalisés. En outre, les fonctions sont des objets de première classe. Le langage supporte le paradigme objet, impératif et fonctionnel. JavaScript est le langage possédant le plus grand écosystème grâce à son gestionnaire de dépendances npm, avec environ 500 000 paquets en août 2017. 16 4.3.4 Ajax Ajax, abréviation de ”Asynchronous JavaScript and XML, est un ensemble de techniques de développement Web utilisant de nombreuses technologies Web côté client pour créer des applica- tions Web asynchrones. Avec Ajax, les applications Web peu- vent envoyer et récupérer des données d’un serveur de manière asynchrone (en arrière-plan) sans interférer avec l’affichage et le comportement de la page existante. En découplant la couche d’échange de données de la couche de présentation, Ajax permet aux pages Web et, par extension, aux applications Web, de modifier le contenu de manière dynamique sans avoir à recharger la page entière. les implémentations modernes utilisent généralement JSON au lieu de XML. 4.3.5 Bootstrap Bootstrap est un framework CSS gratuit et open-source des- tiné au développement Web frontal réactif et mobile-first. Il contient des modèles de conception basés sur CSS et (faculta- tivement) JavaScript pour la typographie, les formulaires, les boutons, la navigation et d’autres composants d’interface. 4.3.6 DropZone.js Dropzone.js est une bibliothèque JavaScript légère qui transforme un élément HTML en dropzone. Cela sig- nifie qu’un utilisateur peut y glisser-déposer un fichier et que le fichier est téléchargé sur le serveur via AJAX. 17 4.3.7 JSON JSON est l’abréviation de JavaScript Object Notation, et est un moyen de stocker des informations d’une manière organisée et facile d’accès. Il nous donne une collection de données lisi- bles par l’homme auxquelles nous pouvons accéder de manière vraiment logique. 4.3.8 LaTeX LaTeX est un système de composition de haute qualité; il possède des fonctionnalités pour la production de documenta- tion technique et scientifique. LaTeX est le outil standard pour la communication et la publication de documents scientifiques. 18 5 Mise en oeuvre 5.1 Introduction Ce chapitre est le fruit de notre travail, il présente et explique les interfaces de notre site web DFDetection, ainsi que 5.2 Mise en œuvre Dans cette partie nous allons décrire distinctement les interfaces graphique de notre site. 5.2.1 Aperçu interfaces graphiques de la version simple - Test Video - Lorsque l’utilisateur ouvre le site pour la première fois, il trouve un bouton qui le redirige vers la version simple , la page web ci-dessous s’affiche Figure 3: Page d’accueil version simple Lorsque l’utilisateur accède à la page d’accueil, il aura le choix parmi les options suivantes: (en cliquant sur l’image) • Tester sa vidéo • Faire un modèle Tout d’abord nous allons procéder par tester une vidéo. 19 l’utilisateur sera redirigé vers la page de test(voir figure 4) qui mentionne que lorsque le processus sera terminé, l’application permettre de voir ou de télécharger le résultat. L’utilisateur normalement devra choisir l’une des options suivantes : Figure 4: Page de test version simple • Télécharger uniquement une vidéo • Télécharger une vidéo et un modèle En utilisant le glisser-déposer , cette tâche deviendra plus facile pour l’utilisateur. NB : Dans notre exemple ici, nous avons seulement téléchargé une vidéo mais l’utilisateur peut également télécharger un modèle. 20 Lorsque le téléchargement est terminé, l’utilisateur aura l’affichage suivant : Figure 5: Page de test version simple lorsque le téléchargement est terminé En cliquant sur démarrez le test, la minuterie est lancée, indiquant que le serveur traite la vidéo et que le résultat sera bientôt affiché(voir figure 5 et 6). Figure 6: Page de test version simple quand clique ’start testing’ 21 Environ 5 à 15 minutes plus tard, selon la qualité et la durée de la vidéo, l’utilisateur verra la page suivante: Figure 7: Page de résultats version simple ’FakeVideo’ Une fois le processus terminé, l’utilisateur sera redirigé vers la page de résultats où il pourra voir: (i) La vidéo est fausse ou réelle (ii) L’utilisateur peut télécharger la vidéo (iii) Quelques données sur le traitement pour les experts 22 Le résultat vidéo réel peut également être affiché comme suit Figure 8: Page de résultats version simple ’RealVideo’ 23 5.2.2 Aperçu interfaces graphiques de la version simple - Train a model - Retour maintenant à la page d’accueil et en choisissant la page Train a model. la page apparaı̂tra comme suit: Figure 9: Page ’Train a model’ version simple Avant de soumettre dans cette page, l’utilisateur doit d’abord faire: (i) Nommer toutes ses fausses vidéos avec un nom contenant le mot FAKE. (ii) Nommer toutes ses vraies vidéos avec un nom contenant le mot REAL. NB: L’utilisateur peut soumettre autant de vidéos qu’il le peut. Bien sûr, pour un meilleur modèle, il devait ajouter plus de vidéos. 24 Figure 10: page ’Train model’ version simple Téléchargement complet Figure 11: page ’Train model’ version simple ’Start Training’ l’utilisateur peut cliquer sur le bouton Start Training .La minuterie est maintenant en place, indiquant que le serveur a démarré la tâche Train a model et que le résultat sera bientôt affiché. 25 Une fois Train a model terminée, l’utilisateur sera redirigé vers une page où il pourra télécharger un modèle à partir du tableau suivant. Figure 12: Page ’model complete’ Chaque ligne représente le même modèle mais avec une précision déférente. Le meilleur est Best.pkl et celui que l’utilisateur doit télécharger. Les autres peuvent être téléchargés par les experts pour tester et modifier. 26 5.2.3 Aperçu interfaces graphiques de la version complet - Compte - lorsque vous ouvrez le site pour la première fois,vous aurez la page web suivante: Figure 13: Page d’accueil version complet Dans cette page d’accueil, vous pouvez : • Se connecter. • Créer un compte. • Testez votre vidéo. • Voir la page About. • Former un modèle Et une fois connecté, vous pouvez également : • Voir vos anciens modèles. • Voir vos anciens tests vidéo. 27 Figure 14: Page Créer un compte version complet Figure 15: Page de connexion version complet 28 5.2.4 Aperçu interfaces graphiques de la version complet - Test Video - Dans la version complète, il est beaucoup plus facile de tester une vidéo faites sim- plement glisser une vidéo vers un emplacement vidéo et mettez le modèle si vous le souhaitez attendez qu’il soit téléchargé puis cliquez sur tester. Figure 16: Page de test version complet 1 Lorsque vous cliquez sur le bouton Test, vous serez redirigé vers la page de soumis- sion où vous verrez un message indiquant que votre vidéo est dans la file d’attente . Vous pouvez cliquer sur tester une autre vidéo ou vous pouvez quitter le site Web et revenir plus tard . 29 Figure 17: Page de test version complet 2 Lorsque l’utilisateur clique sur le bouton Start Testing, il sera redirigé vers la page my videos où il pourra voir ses anciens videos et les videos qui sont dans la file d’attente. Il peut télécharger les videos comme dans l’exemple de version simple. 30 Figure 18: Page de vidéos version complet 5.2.5 Aperçu interfaces graphiques de la version complete - Train a model - Cela devient plus facile lorsque l’utilisateur est sur la page Train a model. Il a simplement besoin de faire glisser ses fausses vidéos vers le Fake videos spot et les vraies vers le Real videos spot, attendez qu’ils soient téléchargés, puis cliquez sur Start training. Figure 19: Page ’Model’ version complet 1 31 Figure 20: Page ’Model’ version complet 2 Lorsque l’utilisateur clique sur le bouton Start Training, il sera redirigé vers la page my models où il pourra voir ses anciens modèles et les modèles qui sont dans la file d’attente. Il peut télécharger les modèles comme dans l’exemple de version simple. 32 Figure 21: Page mes modèles version complet 33 6 Conclusion générale et perspectives 6.1 Les défis du projet Sans dire, ce projet a été l’un des projets les plus difficiles que nous ayons fait avec notre curseur pédagogique. la quantité de défis auxquels nous avons dû faire face était trop grande, travailler avec colab pour la première fois et comprendre l’algorithme d’apprentissage du machinisme et de réseau de neurones n’a pas été facile du tout. • Trouver le bon code était un énorme défi pour nous et le faire fonctionner était la chose la plus difficile avec laquelle colab était difficile à utiliser et à travailler, surtout quand vous n’avez qu’un seul terminal pour travailler, un terminal où vous deviez contrôler la base de données, le front-end, le back-end et la file d’attente sur celle-ci nous obligent à aller trouver des moyens de gérer cela. • Travailler avec dropzone.js était particulièrement déroutant lorsque vous deviez modifier les paramètres pour le faire travailler comme nous le voulons. • Travailler avec ngrok était également déroutant et délicat car parfois le ngrok ne peut pas trouver un tunel gratuit (c’est-à-dire une adresse IP gratuite) pour nous de déployer le site Web, donc cela nous a donné une erreur étrange que nous avons eu à traiter tout le temps, également le ngrok n’a que 20 connexions par minute, c’est-à-dire que nous n’avons que 20 demandes pour GET et POST en minute, nous avons donc dû héberger tous les fichiers statiques en utilisant github et githack, mais 20 connexions par minute ne nous feront pas tester notre site Web dans les conditions normales. • Le repository que nous avons trouvé contenait tellement d’erreurs et de bugs que nous avons dû corriger et parfois nous avons dû contacter le propriétaire pour nous expliquer certaines erreurs et nous avons dû continuer d’attendre sa réponse également. 34 6.2 Conclusion générale Le projet tutoré est beaucoup plus complexe que les projets que nous avons déjà réalisés (miniprojets de JEE, site Web de vente en ligne , miniprojet IHM en JavaFX...). Il permet de mettre en relation plusieurs enseignements, utilisés sous une dimension pro- fessionnelle. Tout d’abord, ce projet nous a permis d’appliquer les connaissances que nous avons acquises durant notre formation, telles que la modélisation, les différents langages de programmation, la gestion de projet mais aussi la communication. Grâce à celui-ci chaque membre de l’équipe a pu renforcer ses connaissances mais aussi ap- porter aux autres membres son savoir et ses compétences afin d’harmoniser l’efficacité de l’équipe. A travers des méthodes de travail et des outils, ce projet nous a permis de nous immerger dans un univers professionnel. L’objectif de notre projet de fin d’étude était de concevoir et développer une applica- tion graphique pour les DeepFake Detection. Le point de départ de la réalisation de ce projet était une récolte des informations nécessaires pour dresser un état de l’existant, présenter un aperçu sur la problématique ainsi que l’architecture. Par la suite, nous nous sommes intéressés à l’analyse et la spécification des besoins qui nous permis de distinguer les différents acteurs interagissant avec l’application visée. L’objectif de la partie suivante était la conception détaillée, dans laquelle nous avons fixé la structure globale de l’application. La dernière partie de notre projet était la par- tie réalisation qui a été consacrée à la présentation des outils du travail et les interfaces les plus significatives de notre application. L’apport de ce travail a été d’une importance très considérable, en effet, il nous a permis de suivre une méthodologie de travail bien étudiée et d’approfondir nos connaissances dans le monde de développement des appli- cations. Cette expérience nous a permis de maı̂triser le langage UML, l‘environnement de développement python à savoir l’IDE Pycharm, sous lequel, le développement n’a pas été une tâche facile, mais nous n’avons pas hésité à y participer. Pour améliorer notre application, nous pouvons ajouter une autre détection pour la voix aussi pour l’image, des choses comme ça ne sont pas faciles à implémenter pour plusieurs raisons comme l’absence de github repository , la précision du code n’est pas bonne et aussi le manque de documentation. 35
Enter the password to open this PDF file:
-
-
-
-
-
-
-
-
-
-
-
-