Ce référentiel contient des programmes de démonstration pour la tête parlante (?) Anime à partir d'une seule image 3: Maintenant, le corps trop projet. Comme son nom l'indique, le projet vous permet d'animer des caractères d'anime, et vous n'avez besoin que d'une seule image de ce personnage pour le faire. Il y a deux programmes de démonstration:
manual_poser vous permet de manipuler l'expression faciale d'un caractère, la rotation de la tête, la rotation corporelle et l'expansion thoracique en raison de la respiration à travers une interface utilisateur graphique.ifacialmocap_puppeteer vous permet de transférer votre mouvement facial vers 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.
Veuillez mettre à jour le pilote de l'appareil de votre GPU et installer la boîte à outils CUDA compatible avec votre GPU et plus récent que la version que vous installerez dans la prochaine sous-section.
manual_poser et ifacialmocap_puppeteer sont disponibles sous forme d'applications de bureau. Pour les exécuter, vous devez configurer un environnement pour l'exécution de programmes écrits dans la langue Python. L'environnement doit avoir les packages logiciels suivants:
Une façon de le faire est d'installer Anaconda et d'exécuter les commandes suivantes dans votre shell:
> conda create -n talking-head-anime-3-demo python=3.8
> conda activate talking-head-anime-3-demo
> conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
> conda install scipy
> pip install wxpython
> conda install matplotlib
En juin 2006, vous ne pouvez pas utiliser wxpython avec Python 3.10 sur Windows. En conséquence, n'utilisez pas Python 3.10 tant que ce bug n'est corrigé. Cela signifie que vous ne devez pas définir python=3.10 dans la première commande conda dans la liste ci-dessus.
L'environnement créé par les commandes ci-dessus vous offre Python version 3.8 et une installation de Pytorch qui a été compilée avec CUDA Toolkit version 11.3. Cette configuration particulière peut ne pas fonctionner à l'avenir car vous constaterez peut-être que ce package Pytorch particulier ne fonctionne pas avec votre nouvel ordinateur. La solution est de:

Le manual_poser est également disponible en tant que nootbook Jupyter. Pour l'exécuter sur vos machines locales, vous devez également installer:
Dans certains cas, vous devrez également activer le widgetsnbextension . Alors, courez
> jupyter nbextension enable --py widgetsnbextension
Après avoir installé les deux packages ci-dessus. En utilisant Anaconda, j'ai réussi à faire ce qui précède avec les commandes suivantes:
> conda install -c conda-forge notebook
> conda install -c conda-forge ipywidgets
> jupyter nbextension enable --py widgetsnbextension
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-3-demo contenant tous les packages Python requis.
Si vous souhaitez utiliser ifacialmocap_puppeteer , vous aurez également besoin d'un logiciel iOS appelé IfacialMocap (un achat 980 yen dans l'App Store). Vous n'avez pas besoin de télécharger l'application appariée cette fois. Votre iOS et votre ordinateur doivent utiliser le même réseau. Par exemple, vous pouvez les connecter au même routeur sans fil.
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/models dans le répertoire racine du référentiel. En fin de compte, le dossier de données devrait ressembler:
+ data
+ images
- crypko_00.png
- crypko_01.png
:
- crypko_07.png
- lambda_00.png
- lambda_01.png
+ models
+ separable_float
- editor.pt
- eyebrow_decomposer.pt
- eyebrow_morphing_combiner.pt
- face_morpher.pt
- two_algo_face_body_rotator.pt
+ separable_half
- editor.pt
:
- two_algo_face_body_rotator.pt
+ standard_float
- editor.pt
:
- two_algo_face_body_rotator.pt
+ standard_half
- editor.pt
:
- two_algo_face_body_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 tha3/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-3-demo
Si vous n'avez pas déjà activé l'environnement.
Comme indiqué dans la rédaction du projet, j'ai créé 4 variantes du système de réseau neuronal. Ils sont appelés standard_float , separable_float , standard_half et separable_half . Tous ont les mêmes fonctionnalités, mais ils diffèrent dans leurs tailles, leur utilisation de la RAM, leur vitesse et leur précision. Vous pouvez spécifier la variante que le programme manual_poser utilise via l'option de ligne de commande --model .
> python tha3/app/manual_poser --model <variant_name>
où <variant_name> doit être l'un des 4 noms ci-dessus. Si aucune variante n'est spécifiée, la variante standard_float (qui est la plus grande, la plus lente et la plus précise) sera utilisée.
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 domaine, Open manual_poser.ipynb . Une fois que vous l'avez fait, vous devriez voir qu'il a deux cellules. Exécutez les deux cellules dans l'ordre. Ensuite, faites défiler jusqu'à la fin du document, et vous y verrez l'interface graphique.
Vous pouvez choisir la variante système à utiliser en modifiant la variable MODEL_NAME dans la première cellule. Si vous le faites, vous devrez relancer les deux cellules pour que la variante soit chargée et que l'interface graphique soit correctement mise à jour pour l'utiliser.
ifacialmocap_poserTout 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.

Ouvrez une coquille. Activez l'environnement Python. Changez votre répertoire de travail en répertoire racine du référentiel. Ensuite, courez:
> python tha3/app/ifacialmocap_puppeteer.py
Vous verrez une zone de texte avec l'étiquette "Capture Device IP". Écrivez l'adresse IP de l'appareil iOS que vous avez noté là-bas.

Cliquez sur "Démarrer la capture!" bouton à droite.

Si les programmes sont correctement connectés, vous devriez voir les chiffres dans la partie inférieure de la fenêtre lorsque vous déplacez votre tête.

Maintenant, vous pouvez charger une image d'un personnage, et il devrait suivre votre mouvement facial.
Pour que le système fonctionne bien, l'image d'entrée doit obéir aux contraintes suivantes:

Voir la rédaction du projet pour plus de détails sur l'image d'entrée.
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 d'une seule image 3: Maintenant le corps aussi. http://pkhungurn.github.io/talking-head-anime-3/, 2022. Consulté: yyyy-mm-dd.
Vous pouvez également utiliser l'entrée Bibtex suivante:
@misc{Khungurn:2022,
author = {Pramook Khungurn},
title = {Talking Head(?) Anime from a Single Image 3: Now the Body Too},
howpublished = {url{http://pkhungurn.github.io/talking-head-anime-3/}},
year = 2022,
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. Veuillez consulter le fichier readme.md dans le répertoire data/images pour les licences pour les images.