Deepfake et DeepFaceLab : Premiers pas
Mais kikicause ?
Je m’appelle Dominique Payet et je suis Directeur des Systèmes d’Information au sein de l’agence Janvier.
Accessoirement, je suis un geek technivore, passionné d’informatique embarquée (Arduino, Raspberry), d’automatisation et d’une manière générale, de tout objet qui peut être connecté, au grand dam de ma femme (cela mériterait d’ailleurs d’en faire un article)
Il y a quelques mois, je suis tombé sur une vidéo d’un extrait de Retour vers le futur où les acteurs principaux avaient été remplacés.
Le choc, c’était terriblement bien fait ! Je me suis donc intéressé à cette technologie, le DeepFake (en 2020, c’était plutôt de la magie) et à ses prémices OpenSource.
Aujourd’hui, l’évolution de l’intelligence artificielle a donné naissance à des technologies de pointe, dont l’une des plus notables est donc le deepfake. Parmi les nombreux outils disponibles pour créer des deepfakes, DeepFaceLab se distingue comme l’une des solutions les plus puissantes et sophistiquées.
Dans cet article, je vous propose un premier essai de DeepFaceLab, en explorant son fonctionnement, ses fonctionnalités clés et son impact sur la création de vidéos falsifiées d’apparence réaliste.
L’ensemble des scripts est disponible sur le dépôt Github de DeepFaceLab.
Screenshot1 : Le dossier comprend donc une série de scripts à lancer les uns après les autres (en fonction de la technologie choisie).
Principes fondamentaux du DeepFaceLab
DeepFaceLab repose sur des principes clés d’apprentissage automatique, en particulier le deep learning et les réseaux neuronaux convolutifs (CNN). La méthode principale utilisée est celle de l’apprentissage par transfert, où un modèle pré-entraîné est ajusté pour apprendre à échanger les visages dans une vidéo donnée. Cela permet d’obtenir des résultats plus rapides et plus précis, car le modèle peut tirer parti des connaissances déjà acquises.
Entraînement du modèle
Le processus d’entraînement de DeepFaceLab se divise en plusieurs étapes. Tout d’abord, une base de données d’apprentissage est créée, comprenant des ensembles de données de visages réels et de visages cibles (les visages à remplacer).
Pour ce test, j’ai repris la vidéo (connue) d’une conférence d’Elon Musk et je l’ai placée dans le dossier workspace, sous le nom data_dst.mp4 (comme son nom l’indique, c’est la destination du visage)
J’ai également enregistré une vidéo de mon visage, avec plusieurs expressions (regard en haut, en bas, tournant la tête etc …) afin d’obtenir le plus d’images différentes possibles.
Les premiers scripts lancés sont le 2) pour extraire les images de la vidéo (concrètement transformer le .mp4 en liste d’images) et le 3) pour la même chose sur la vidéo de destination.
Il faut ensuite extraire les visages. Pour cela, on utilise les scripts 4) (pour la vidéo source) et 5) pour la vidéo de destination.
Les images ainsi extraites sont disponibles dans le dossier
J’ai utilisé ici l’ancien poste 3D d’un collègue, disposant ainsi d’une Geforce 1070 (6 Go) et de 16 Go de RAM.
Plusieurs techniques sont disponibles via les scripts du dépôt. Pour ce premier test, j’ai utilisé XSeg qui semble être un des plus performants.
L’entrainement n’est pas limité dans le temps : plus le temps passe, plus le modèle devient précis.
Il est indiqué dans la fenêtre de calcul la « précision » que tend à approcher le modèle. Plus ce nombre est petit, plus le deepfake sera précis.
A titre d’indication, j’ai démarré à plus de 4, pour finir à environ 1.1 après 12 heures de calculs (la dernière heure m’a fait passer de 1.2 à 1.1, plus le temps passe plus il est difficile de devenir plus précis, évidemment).
Génération des deepfakes :
Une fois le modèle entraîné, DeepFaceLab peut être utilisé pour générer des deepfakes à partir de vidéos existantes. Le logiciel analyse chaque image de la vidéo source, détecte les visages et les remplace par les visages cibles prédéterminés. L’algorithme utilise des techniques de décomposition et de recombinaison faciales pour intégrer de manière transparente les traits du visage cible dans la vidéo source. Des techniques de post-traitement peuvent ensuite être appliquées pour améliorer la cohérence et la qualité visuelle du deepfake final mais cela dépasse le cadre de ce test (et mes compétences vidéos 😊)
Résultat :
Pour nous à l’agence Janvier, l’OpenSource est un gage d’ouverture et de sécurité dans le monde informatique et nous privilégions quotidiennement les outils OpenSource pour nos projets et pour notre Système d’Information.
Il est donc fort probable que le prochain sujet tourne une nouvelle fois autour d’outils libres & ouverts … 😊