HumanML3D est un ensemble de données 3D sur le langage du mouvement humain qui provient d'une combinaison de l'ensemble de données HumanAct12 et Amass. Il couvre un large éventail d'actions humaines telles que les activités quotidiennes (par exemple « marcher », « sauter »), les sports (par exemple « nager », « jouer au golf »), les acrobaties (par exemple « faire la roue ») et les arts (par exemple , 'danser').
Chaque clip animé dans HumanML3D est accompagné de 3 à 4 descriptions en une seule phrase annotées sur Amazon Mechanical Turk. Les mouvements sont sous-échantillonnés à 20 ips, chaque clip durant de 2 à 10 secondes.
Dans l'ensemble, l'ensemble de données HumanML3D comprend 14 616 mouvements et 44 970 descriptions composées de 5 371 mots distincts. La durée totale des motions s'élève à 28,59 heures. La durée moyenne d’un mouvement est de 7,1 secondes, tandis que la durée moyenne d’une description est de 12 mots.
Nous doublons la taille de l'ensemble de données HumanML3D en reflétant tous les mouvements et en remplaçant correctement certains mots-clés dans les descriptions (par exemple, « gauche » -> « droite », « dans le sens des aiguilles d'une montre » -> « dans le sens inverse des aiguilles d'une montre »).
KIT Motion-Language Dataset (KIT-ML) est également un ensemble de données connexe qui contient 3 911 mouvements et 6 278 descriptions. Nous avons traité l'ensemble de données KIT-ML en suivant les mêmes procédures que l'ensemble de données HumanML3D et fournissons l'accès dans ce référentiel. Cependant, si vous souhaitez utiliser l'ensemble de données KIT-ML, n'oubliez pas de citer l'article original.
Si cet ensemble de données est utile dans vos projets, nous apprécierons votre étoile sur cette base de code. ??
?♀️ T2M - Le premier travail sur HumanML3D qui apprend à générer du mouvement 3D à partir de descriptions textuelles, avec VAE temporelle .
? TM2T - Apprend le mappage mutuel entre les textes et les mouvements via le jeton de mouvement discret.
? TM2D - Génère des mouvements de danse avec des instructions textuelles.
? MoMask - Génération text2motion de nouveau niveau utilisant le VQ résiduel et la modélisation masquée générative.
Pour l'ensemble de données KIT-ML, vous pouvez directement télécharger [Ici]. En raison de la politique de distribution de l'ensemble de données AMASS, nous ne sommes pas autorisés à distribuer les données directement. Nous fournissons une série de scripts qui pourraient reproduire notre ensemble de données HumanML3D à partir de l'ensemble de données AMASS.
Vous devez cloner ce référentiel et installer l'environnement virtuel.
[2022/12/15] Mise à jour : l'installation de matplotlib=3.3.4 pourrait empêcher un petit écart des données générées par rapport aux données de référence. Voir le problème
conda env créer -f environnement.yaml conda activer torch_render
En cas d'échec de l'installation, vous pouvez également installer les éléments suivants :
-Python==3.7.10 -Numpy - Scipy -PyTorch -Tqdm - Des pandas - Matplotlib==3.3.4 // Uniquement pour l'animation - ffmpeg==4.3.1 // Uniquement pour l'animation - Spacy==2.3.4 // Uniquement pour le traitement de texte
Téléchargez le mode SMPL+H depuis SMPL+H (choisissez le modèle SMPL+H étendu utilisé dans le projet AMASS) et le modèle DMPL depuis DMPL (choisissez les DMPL compatibles avec SMPL). Placez ensuite tous les modèles sous "./body_model/".
Vous devez exécuter les scripts suivants afin d'obtenir l'ensemble de données HumanML3D :
raw_pose_processing.ipynb
motion_representation.ipynb
cal_mean_variance.ipynb
Cela pourrait être facultatif. Exécutez-le si vous avez besoin d'animations.
animation.ipynb
N'oubliez pas de suivre les étapes de double vérification. Ceux-ci visent à vérifier si vous êtes sur la bonne voie pour obtenir l’ensemble de données HumanML3D.
Après tout, les données du dossier "./HumanML3D" sont ce dont vous avez finalement besoin.
<DATA-DIR>./animations.rar //Animations de tous les clips animés au format mp4. ./new_joint_vecs.rar //Extraction des caractéristiques invariantes de rotation et des caractéristiques de rotation des vecteurs à partir des positions de mouvement 3D. ./new_joints.rar //Positions de mouvement 3D. ./texts.rar //Descriptions des données de mouvement. ./Mean.npy //Moyenne de toutes les données dans new_joint_vecs ./Std.npy //Écart type pour toutes les données dans new_joint_vecs ./all.txt //Liste des noms de toutes les données ./train.txt //Liste des noms des données d'entraînement ./test.txt //Liste des noms des données de test ./train_val.txt //Liste des noms des données d'entraînement et de validation ./val.txt //Liste des noms des données de validation ./all.txt //Liste des noms de toutes les données
Les données HumanML3D suivent la structure du squelette SMPL avec 22 articulations. KIT-ML possède 21 articulations squelettiques. Reportez-vous à paraUtils pour les chaînes cinématiques détaillées.
Le fichier nommé "MXXXXXX.*" (par exemple, "M000000.npy") est mis en miroir à partir du fichier portant le nom correspondant "XXXXXX.*" (par exemple, "000000.npy"). Les fichiers texte et les fichiers de mouvements suivent les mêmes protocoles de dénomination, ce qui signifie que les textes dans "./texts/XXXXXX.txt" (par exemple, "000000.txt") décrivent exactement les mouvements humains dans "./new_joints(ou new_joint_vecs)/XXXXXX.npy " (par exemple, '000000.npy')
Chaque fichier texte ressemble à ceci :
un homme donne un coup de pied à quelque chose ou à quelqu'un avec sa jambe gauche.#a/DET homme/NOM coup de pied/VERB quelque chose/PRON ou/CCONJ quelqu'un/PRON avec/ADP son/DET gauche/ADJ jambe/NOM#0.0#0.0la personne debout donne un coup de pied avec leur pied gauche avant de revenir à leur position d'origine.#le/DET stand/VERB personne/NOM coup de pied/VERB avec/ADP leur/DET gauche/ADJ pied/NOM avant/ADP aller/VERB retour/ADV to/ADP leur/DET original/ADJ position/NOM#0.0#0.0un homme donne un coup de pied avec quelque chose ou quelqu'un avec sa jambe gauche.#a/DET homme/NOM coup de pied/VERB avec/ADP quelque chose/PRON ou/CCONJ quelqu'un/PRON avec/ADP son/DET gauche/ADJ jambe/NOUN#0.0#0.0il vole un coup de pied avec sa jambe gauche#il/PRON is/AUX fly/VERB kick/NOUN with/ADP his/DET left/ADJ leg/NOUN#0.0#0.0
avec chaque ligne une annotation textuelle distincte, composée de quatre parties : description originale (minuscules) , phrase traitée , heure(s) de début , heure(s) de fin , séparées par # .
Puisque certains mouvements sont trop compliqués pour être décrits, nous permettons aux annotateurs de décrire une sous-partie d'un mouvement donné si nécessaire. Dans ces cas, les heures de début et les heures de fin désignent les segments de mouvement annotés. Néanmoins, nous observons que ceux-ci n’occupent qu’une petite proportion de HumanML3D. les heures de début et les heures de fin sont définies sur 0 par défaut, ce qui signifie que le texte sous-titre toute la séquence du mouvement correspondant.
Si vous ne parvenez pas à installer ffmpeg, vous pouvez animer des vidéos en « .gif » au lieu de « .mp4 ». Cependant, la génération de GIF prend généralement plus de temps et occupe plus de mémoire.
Si vous utilisez l'ensemble de données KIT-ML, pensez à citer l'article suivant :
@article{Plappert2016, author = {Matthias Plappert and Christian Mandery and Tamim Asfour}, title = {The {KIT} Motion-Language Dataset}, journal = {Big Data} publisher = {Mary Ann Liebert Inc}, year = 2016, month = {dec}, volume = {4}, number = {4}, pages = {236--252}, url = {http://dx.doi.org/10.1089/big.2016.0028}, doi = {10.1089/big.2016.0028}, }
Si vous utilisez l'ensemble de données HumanML3D, pensez à citer les articles suivants :
@InProceedings{Guo_2022_CVPR, author = {Guo, Chuan and Zou, Shihao and Zuo, Xinxin and Wang, Sen and Ji, Wei and Li, Xingyu and Cheng, Li}, title = {Generating Diverse and Natural 3D Human Motions From Text}, booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)}, month = {June}, year = {2022}, pages = {5152-5161} }
Contactez Chuan Guo à [email protected] pour toute question ou commentaire.