HumanML3D es un conjunto de datos de lenguaje de movimiento humano 3D que se origina a partir de una combinación de HumanAct12 y Amass. Abarca una amplia gama de acciones humanas como actividades diarias (p. ej., "caminar", "saltar"), deportes (p. ej., "nadar", "jugar al golf"), acrobacias (p. ej., "rueda de carreta") y arte (p. ej. , 'baile').
Cada clip de movimiento en HumanML3D viene con descripciones de 3 a 4 oraciones individuales anotadas en Amazon Mechanical Turk. Los movimientos se reducen a 20 fps y cada clip dura de 2 a 10 segundos.
En general, el conjunto de datos de HumanML3D consta de 14.616 movimientos y 44.970 descripciones compuestas por 5.371 palabras distintas. La duración total de las mociones asciende a 28,59 horas. La duración promedio del movimiento es de 7,1 segundos, mientras que la duración promedio de la descripción es de 12 palabras.
Duplicamos el tamaño del conjunto de datos HumanML3D reflejando todos los movimientos y reemplazando adecuadamente ciertas palabras clave en las descripciones (por ejemplo, 'izquierda'->'derecha', 'en el sentido de las agujas del reloj'->'en el sentido contrario a las agujas del reloj').
KIT Motion-Language Dataset (KIT-ML) también es un conjunto de datos relacionado que contiene 3911 movimientos y 6278 descripciones. Procesamos el conjunto de datos KIT-ML siguiendo los mismos procedimientos que el conjunto de datos HumanML3D y proporcionamos acceso en este repositorio. Sin embargo, si desea utilizar el conjunto de datos KIT-ML, recuerde citar el artículo original.
Si este conjunto de datos es útil en sus proyectos, apreciaremos su estrella en este código base. ??
?♀️ T2M: el primer trabajo en HumanML3D que aprende a generar movimiento 3D a partir de descripciones textuales, con VAE temporal .
? TM2T: aprende el mapeo mutuo entre textos y movimientos a través del token de movimiento discreto.
? TM2D: genera movimientos de baile con instrucciones de texto.
? MoMask: generación de text2motion de nuevo nivel utilizando VQ residual y modelado generativo enmascarado.
Para el conjunto de datos KIT-ML, puede descargarlo directamente [aquí]. Debido a la política de distribución del conjunto de datos AMASS, no podemos distribuir los datos directamente. Proporcionamos una serie de scripts que podrían reproducir nuestro conjunto de datos HumanML3D a partir del conjunto de datos AMASS.
Necesita clonar este repositorio e instalar el entorno virtual.
[15/12/2022] Actualización : La instalación de matplotlib=3.3.4 podría evitar una pequeña desviación de los datos generados de los datos de referencia. Ver problema
conda env crear -f entorno.yaml conda activar torch_render
En caso de error en la instalación, también puede instalar lo siguiente:
-Python==3.7.10 -Numeroso - picante -PyTorch -Tqdm - pandas - Matplotlib==3.3.4 // Sólo para animación - ffmpeg==4.3.1 // Sólo para animación - Spacy==2.3.4 // Sólo para proceso de texto
Descargue el modo SMPL+H desde SMPL+H (elija el modelo SMPL+H extendido utilizado en el proyecto AMASS) y el modelo DMPL desde DMPL (elija DMPL compatibles con SMPL). Luego coloque todos los modelos en "./body_model/".
Debe ejecutar los siguientes scripts para obtener el conjunto de datos HumanML3D:
raw_pose_processing.ipynb
representación_de_movimiento.ipynb
cal_mean_variance.ipynb
Esto podría ser opcional. Ejecútelo si necesita animaciones.
animación.ipynb
Recuerde seguir los pasos de doble verificación. Su objetivo es comprobar si está en el camino correcto para obtener el conjunto de datos HumanML3D.
Después de todo, los datos de la carpeta "./HumanML3D" son lo que finalmente necesita.
<DATA-DIR>./animations.rar //Animaciones de todos los clips de movimiento en formato mp4. ./new_joint_vecs.rar // Característica invariante de rotación extraída y vectores de características de rotación de posiciones de movimiento 3D. ./new_joints.rar //Posiciones de movimiento 3d. ./texts.rar //Descripciones de datos de movimiento. ./Mean.npy //Media de todos los datos en new_joint_vecs ./Std.npy //Desviación estándar para todos los datos en new_joint_vecs ./all.txt //Lista de nombres de todos los datos ./train.txt //Lista de nombres de datos de entrenamiento ./test.txt //Lista de nombres de datos de prueba ./train_val.txt //Lista de nombres de datos de entrenamiento y validación ./val.txt //Lista de nombres de datos de validación ./all.txt //Lista de nombres de todos los datos
Los datos de HumanML3D siguen la estructura esquelética SMPL con 22 articulaciones. KIT-ML tiene 21 articulaciones esqueléticas. Consulte paraUtils para obtener cadenas cinemáticas detalladas.
El archivo denominado "MXXXXXX.*" (por ejemplo, 'M000000.npy') se refleja desde el archivo con el nombre correspondiente "XXXXXX.*" (por ejemplo, '000000.npy'). Los archivos de texto y los archivos de movimiento siguen los mismos protocolos de nomenclatura, lo que significa que los textos en "./texts/XXXXXX.txt" (por ejemplo, '000000.txt') describen exactamente los movimientos humanos en "./new_joints(o new_joint_vecs)/XXXXXX.npy " (por ejemplo, '000000.npy')
Cada archivo de texto tiene el siguiente aspecto:
un hombre patea algo o alguien con su pierna izquierda.#a/DET hombre/NOUN patear/VERBO algo/PRON o/CCONJ alguien/PRON con/ADP su/DET izquierda/ADJ pierna/NOUN#0.0#0.0la persona de pie patea con el pie izquierdo antes de volver a su postura original.#el/DET ponerse de pie/VERBO persona/NOUN patada/VERBO con/ADP su/DET izquierdo/ADJ pie/NOUN antes/ADP ir/VERBO atrás/ADV a/ADP su/DET original/ADJ postura/NOUN#0.0#0.0un hombre patea con algo o alguien con su pierna izquierda.#a/DET hombre/NOUN patear/VERBO con/ADP algo/PRON o/CCONJ alguien/PRON con/ADP su/DET izquierda/ADJ pierna/NOUN#0.0#0.0él está dando una patada voladora con su pierna izquierda#él/PRON es/AUX volar/VERBO patada/NOUN con/ADP su/DET izquierda/ADJ pierna/NOUN#0.0#0.0
con cada línea una anotación textual distinta, compuesta de cuatro partes: descripción original (minúscula) , oración procesada , hora(s) de inicio , hora(s) de finalización , que están separadas por # .
Dado que algunas mociones son demasiado complicadas para ser descritas, permitimos que los anotadores describan una subparte de una moción determinada si es necesario. En estos casos, las horas de inicio y finalización indican los segmentos de movimiento que están anotados. Sin embargo, observamos que estos sólo ocupan una pequeña proporción de HumanML3D. Las horas de inicio y finalización están configuradas en 0 de forma predeterminada, lo que significa que el texto subtitula toda la secuencia del movimiento correspondiente.
Si no puede instalar ffmpeg, puede animar videos en '.gif' en lugar de '.mp4'. Sin embargo, generar GIF suele llevar más tiempo y ocupación de memoria.
Si está utilizando el conjunto de datos KIT-ML, considere citar el siguiente artículo:
@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 está utilizando el conjunto de datos HumanML3D, considere citar los siguientes artículos:
@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} }
Comuníquese con Chuan Guo en [email protected] si tiene alguna pregunta o comentario.