Ce référentiel contient des programmes de démonstration pour l'anime de tête parlante à partir d'un seul projet Image 2: plus expressif. Semblable à la version précédente, il a deux programmes:
manual_poser vous permet de manipuler l'expression faciale et la rotation de la tête d'un caractère d'anime, donné dans une seule image, via une interface utilisateur graphique. Le poseur est disponible sous deux formulaires: une application GUI standard et un cahier Jupyter.ifacialmocap_puppeteer vous permet de transférer votre mouvement facial, capturé par une application iOS commerciale appelée IfacialMocap, à une image d'un caractère anime. Si vous n'avez pas le matériel requis (discuté ci-dessous) ou si vous ne souhaitez pas télécharger le code et configurer un environnement pour l'exécuter, cliquez pour essayer d'exécuter le poseur manuel sur Google Colab.
Les deux programmes nécessitent un GPU NVIDIA récent et puissant à fonctionner. Je pouvais personnellement les faire fonctionner à bonne vitesse avec le Nvidia Titan RTX. Cependant, je pense que les récents GPU de jeu haut de gamme tels que le RTX 2080, le RTX 3080 ou mieux feraient tout aussi bien.
L' ifacialmocap_puppeteer nécessite un périphérique iOS capable de calculer les paramètres de forme de mélange à partir d'un flux vidéo. Cela signifie que l'appareil doit être en mesure d'exécuter iOS 11.0 ou plus et doit avoir une caméra frontale Truepth. (Voir cette page pour plus d'informations.) En d'autres termes, si vous avez l'iPhone X ou quelque chose de mieux, vous devriez être réglé. Personnellement, j'ai utilisé un Mini iPhone 12.
Les deux programmes ont été écrits dans Python 3. Pour exécuter les GUIS, les packages logiciels suivants sont nécessaires:
En particulier, j'ai créé l'environnement pour exécuter les programmes avec Anaconda, en utilisant les commandes suivantes:
> conda create -n talking-head-anime-2-demo python=3.8
> conda activate talking-head-anime-2-demo
> conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
> conda install scipy
> pip install wxPython
> conda install matplotlib
Remarque: Vous pouvez constater que les versions particulières de Python (3.8) et Cuda Toolkit (10.2) peuvent ne pas fonctionner pour votre configuration d'ordinateur particulière. Lorsque cela se produit, remplacez ces versions par celles qui fonctionnent par votre matériel. La commande deviendrait:
> conda create -n talking-head-anime-2-demo python=[YOUR-PYTHON-VERSION]
> conda activate talking-head-anime-2-demo
> conda install pytorch torchvision cudatoolkit=[YOUR-CUDA-TOOLKIT-VERSION] -c pytorch
> conda install scipy
> pip install wxPython
> conda install matplotlib
En général, la dernière version de Python et la dernière version de Cuda Toolkit diffusée sur le site Web de Pytorch fonctionneraient.
Pour exécuter la version Jupyter Notebook du manual_poser , vous avez également besoin:
Cela signifie que, en plus des commandes ci-dessus, vous devez également s'exécuter:
> conda install -c conda-forge notebook
> conda install -c conda-forge ipywidgets
> jupyter nbextension enable --py widgetsnbextension
Enfin, l' ifacialmocap_puppeteer nécessite IfacialMocap, qui est disponible dans l'App Store pour 980 yens. Vous devez également installer l'application de bureau appariée sur votre PC ou Mac. (Utilisateurs de Linux, je suis désolé!) Votre iOS et votre ordinateur doivent également utiliser le même réseau. (Par exemple, vous pouvez les connecter au même routeur sans fil.)
Vous pouvez également utiliser Anaconda pour télécharger et installer tous les packages Python dans une seule commande. Ouvrez votre shell, modifiez le répertoire en où vous clonez le référentiel et exécutez:
conda env create -f environment.yml
Cela créera un environnement appelé talking-head-anime-2-demo contenant tous les packages Python requis.
Avant d'exécuter les programmes, vous devez télécharger les fichiers du modèle à partir de ce lien Dropbox et les décompresser dans le dossier data du répertoire du référentiel. En fin de compte, le dossier data devrait ressembler:
+ data
+ illust
- waifu_00.png
- waifu_01.png
- waifu_02.png
- waifu_03.png
- waifu_04.png
- waifu_05.png
- waifu_06.png
- waifu_06_buggy.png
- combiner.pt
- eyebrow_decomposer.pt
- eyebrow_morphing_combiner.pt
- face_morpher.pt
- two_algo_face_rotator.pt
Les fichiers du modèle sont distribués avec la licence internationale Creative Commons Attribution 4.0, ce qui signifie que vous pouvez les utiliser à des fins commerciales. Cependant, si vous les distribuez, vous devez, entre autres, dire que je suis le créateur.
manual_poserOuvrez une coquille. Changez votre répertoire de travail en répertoire racine du référentiel. Ensuite, courez:
> python tha2/app/manual_poser.py
Notez qu'avant d'exécuter la commande ci-dessus, vous devrez peut-être activer l'environnement Python qui contient les packages requis. Si vous avez créé un environnement utilisant Anaconda comme indiqué ci-dessus, vous devez courir
> conda activate talking-head-anime-2-demo
Si vous n'avez pas déjà activé l'environnement.
manual_poserOuvrez une coquille. Activer l'environnement. Changez votre répertoire de travail en répertoire racine du référentiel. Ensuite, courez:
> jupyter notebook
Une fenêtre de navigateur doit s'ouvrir. Dans ce document, ouvrez tha2.ipynb . Une fois que vous l'avez fait, vous devriez voir qu'il n'a qu'une seule cellule. Exécutez-le. Ensuite, faites défiler jusqu'à la fin du document, et vous y verrez l'interface graphique.
ifacialmocap_puppeteerTout d'abord, exécutez IfacialMocap sur votre appareil iOS. Il devrait vous montrer l'adresse IP de l'appareil. Notez-le. Gardez l'application ouverte.

Ensuite, exécutez l'application Companion Desktop.

Cliquez sur "Ouvrir le paramètre avancé >>". La demande doit se développer.

Cliquez sur le bouton qui dit "Maya" sur le côté droit.

Ensuite, cliquez sur "Blender".

Ensuite, remplacez l'adresse IP sur le côté gauche par l'adresse IP de votre appareil iOS.

Cliquez sur "Connexion à Blender".

Ouvrez une coquille. Activer l'environnement. Changez votre répertoire de travail en répertoire racine du référentiel. Ensuite, courez:
> python tha2/app/ifacialmocap_puppeteer.py
Si les programmes sont correctement connectés, vous devez voir que les nombreuses barres de progrès en bas de la fenêtre ifacialmocap_puppeteer devraient se déplacer lorsque vous déplacez votre visage devant la caméra frontale de l'appareil iOS.

Si tout va bien, chargez une image de caractère et il devrait suivre votre mouvement facial.
Pour que le modèle fonctionne bien, l'image d'entrée doit obéir aux contraintes suivantes:
Notez, cependant, que quelle que soit la taille de l'image d'entrée, les programmes le redimensionnent toujours à 256x256 et publieront toujours une image 256x256. Il s'agit d'une limitation intrinsèque du système.

Si votre travail académique profite du code dans ce référentiel, veuillez citer la page Web du projet comme suit:
Pramook Khungurn. Talking Head Anime à partir d'une seule image 2: plus expressive. http://pkhungurn.github.io/talking-head-anime-2/, 2021. Consulté: yyy-mm-dd.
Vous pouvez également utiliser l'entrée Bibtex suivante:
@misc{Khungurn:2021,
author = {Pramook Khungurn},
title = {Talking Head Anime from a Single Image 2: More Expressive},
howpublished = {url{http://pkhungurn.github.io/talking-head-anime-2/}},
year = 2021,
note = {Accessed: YYYY-MM-DD},
}
Bien que l'auteur soit un employé de Google Japan, ce logiciel n'est pas le produit de Google et n'est pas pris en charge par Google.
Le droit d'auteur de ce logiciel m'appartient car je l'ai demandé en utilisant le processus IARC. Cependant, Google pourrait réclamer les droits sur la propriété intellectuelle de cette invention.
Le code est publié sous la licence MIT. Le modèle est publié sous la licence internationale Creative Commons Attribution 4.0.