VT2020-Deepfake Algorithms-Fiche: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
== Deepfake == |
== Deepfake == |
||
[[File:Deepfake_example.gif|thumb|313px|Un exemple de deepfake. Dans cette scène de Man of Steel, le visage d’Amy Adams (à gauche) est remplacé par celui de Nicolas Cage (à droite).]] |
|||
Les '''deepfakes''', apparus fin 2017 sur Reddit, sont des vidéos d’une personne dont le visage ou le corps a été altéré, à l’aide d’intelligences artificielles et de deep learning, pour les faire passer pour quelqu’un d’autre. On peut aussi trouver des deepfakes qui synthétisent la voix d’un individu à l'aide d'autres algorithmes. |
Les '''deepfakes''', apparus fin 2017 sur Reddit, sont des vidéos d’une personne dont le visage ou le corps a été altéré, à l’aide d’intelligences artificielles et de deep learning, pour les faire passer pour quelqu’un d’autre. On peut aussi trouver des deepfakes qui synthétisent la voix d’un individu à l'aide d'autres algorithmes. |
||
Line 16: | Line 18: | ||
* [https://github.com/deepfakes/faceswap FaceSwap], qui, à l'origine, contenait le code de l'utilisateur ''Deepfakes''. Ce programme est open source, et basé sur les technologies [https://www.tensorflow.org/ TensorFlow] de Google et [https://keras.io/ Keras]. |
* [https://github.com/deepfakes/faceswap FaceSwap], qui, à l'origine, contenait le code de l'utilisateur ''Deepfakes''. Ce programme est open source, et basé sur les technologies [https://www.tensorflow.org/ TensorFlow] de Google et [https://keras.io/ Keras]. |
||
* [https://github.com/iperov/DeepFaceLab DeepFaceLab], un programme open source, avec une interface en ligne de commande, dont le développement a débuté en 2018. |
* [https://github.com/iperov/DeepFaceLab DeepFaceLab], un programme open source, avec une interface en ligne de commande, dont le développement a débuté en 2018. |
||
== Fonctionnement == |
|||
=== Auto-encodeur === |
|||
Les programmes comme FaceSwap et DeepFaceLab utilisent, pour générer des deepfakes, un réseau de neurones nommé [https://fr.wikipedia.org/wiki/Auto-encodeur auto-encodeur]. Le principe d'un auto-encodeur est, à partir de données sources, d'encoder ces données et de les décoder. Pendant la phase de décodage, le programme apprend comment générer ce type de données, afin que les données en sortie ressemblent le plus possible à la source. |
|||
Dans le cas d'un logiciel de deepfake, nos données sources sont les images de la personne dont on souhaite copier le visage, et le programme va donc apprendre à le générer pendant la phase de décodage. FaceSwap et DeepFaceLab améliorent cette phase en ajoutant un Réseau antagoniste génératif dans leur architecture. |
|||
=== Réseau antagoniste génératif === |
|||
[[File:Thispersondoesnotexist.png|200px|thumb|Image générée par un réseau antagoniste génératif StyleGAN2, sur le site https://thispersondoesnotexist.com/.]] |
|||
Un [https://fr.wikipedia.org/wiki/R%C3%A9seaux_antagonistes_g%C3%A9n%C3%A9ratifs réseau antagoniste génératif] (en anglais ''generative adversarial network'' ou ''GAN'') oppose un générateur à un discriminateur. Celui-ci compare les données en sortie du générateur à des vraies données qu'il a à sa disposition. Si les données en sortie du générateur sont trop différentes des vraies données, le discriminateur va informer le générateur afin que celui-ci génère de nouvelles données de plus en plus proches de ce qu'on souhaite, jusqu'à ce que le discriminateur n'arrive plus à faire la différence entre de vraies données et des données générées. |
|||
Dans le cas de FaceSwap et DeepFaceLab, la phase de décodage de l'auto-encodeur est le générateur du réseau antagoniste génératif. Ce générateur va produire en sortie des visages qui ressemblent à la personne en entrée, et le discriminateur va l'informer s'il arrive à distinguer entre les images générées et les vraies images de cette personne. |
|||
== D'autres types d'utilisation == |
|||
== Combattre l'utilisation malicieuse == |
|||
== Sources == |
Revision as of 19:33, 3 January 2021
Deepfake
Les deepfakes, apparus fin 2017 sur Reddit, sont des vidéos d’une personne dont le visage ou le corps a été altéré, à l’aide d’intelligences artificielles et de deep learning, pour les faire passer pour quelqu’un d’autre. On peut aussi trouver des deepfakes qui synthétisent la voix d’un individu à l'aide d'autres algorithmes.
Les deepfakes sont utilisées le plus fréquemment dans un but malicieux ou pour diffuser des fausses informations (fake news).
Histoire
À l’origine, le terme deepfake provient d’un utilisateur de Reddit nommé Deepfakes. Celui-ci a créé, en décembre 2017, un subreddit sur lequel il partageait des vidéos pornographiques qui contenaient des célébrités. À l’aide de bibliothèques open source comme TensorFlow de Google ainsi que Keras, cet utilisateur a mis au point un algorithme pour générer ces fausses vidéos. Le subreddit grandit vite en popularité, mais il est rapidement fermé par Reddit, et la pornographie truquée a depuis été interdite sur ce site ainsi que de nombreux autres.
Toutefois, cela n'a pas empêché le monde de l'internet de s'intéresser à ce nouveau genre de média. Bien au contraire, on peut trouver à ce jour plusieurs programmes qui permettent de créer ses propres deepfakes. On trouve notamment :
- FakeApp, un logiciel propriétaire publié en janvier 2018, qui permet de créer ses propres deepfakes et les partager avec d'autres utilisateurs. Cependant, depuis 2019, on lui préfère les alternatives open-source ci-dessous.
- FaceSwap, qui, à l'origine, contenait le code de l'utilisateur Deepfakes. Ce programme est open source, et basé sur les technologies TensorFlow de Google et Keras.
- DeepFaceLab, un programme open source, avec une interface en ligne de commande, dont le développement a débuté en 2018.
Fonctionnement
Auto-encodeur
Les programmes comme FaceSwap et DeepFaceLab utilisent, pour générer des deepfakes, un réseau de neurones nommé auto-encodeur. Le principe d'un auto-encodeur est, à partir de données sources, d'encoder ces données et de les décoder. Pendant la phase de décodage, le programme apprend comment générer ce type de données, afin que les données en sortie ressemblent le plus possible à la source.
Dans le cas d'un logiciel de deepfake, nos données sources sont les images de la personne dont on souhaite copier le visage, et le programme va donc apprendre à le générer pendant la phase de décodage. FaceSwap et DeepFaceLab améliorent cette phase en ajoutant un Réseau antagoniste génératif dans leur architecture.
Réseau antagoniste génératif
Un réseau antagoniste génératif (en anglais generative adversarial network ou GAN) oppose un générateur à un discriminateur. Celui-ci compare les données en sortie du générateur à des vraies données qu'il a à sa disposition. Si les données en sortie du générateur sont trop différentes des vraies données, le discriminateur va informer le générateur afin que celui-ci génère de nouvelles données de plus en plus proches de ce qu'on souhaite, jusqu'à ce que le discriminateur n'arrive plus à faire la différence entre de vraies données et des données générées.
Dans le cas de FaceSwap et DeepFaceLab, la phase de décodage de l'auto-encodeur est le générateur du réseau antagoniste génératif. Ce générateur va produire en sortie des visages qui ressemblent à la personne en entrée, et le discriminateur va l'informer s'il arrive à distinguer entre les images générées et les vraies images de cette personne.