HumanML3D é um conjunto de dados de linguagem de movimento humano 3D que se origina de uma combinação do conjunto de dados HumanAct12 e Amass. Abrange uma ampla gama de ações humanas, como atividades diárias (por exemplo, 'caminhar', 'saltar'), esportes (por exemplo, 'nadar', 'jogar golfe'), acrobacias (por exemplo, 'estrela') e arte (por exemplo, , 'dançando').
Cada clipe de movimento no HumanML3D vem com descrições de 3 a 4 frases únicas anotadas no Amazon Mechanical Turk. Os movimentos são reduzidos para 20 fps, com cada clipe durando de 2 a 10 segundos.
No geral, o conjunto de dados HumanML3D consiste em 14.616 movimentos e 44.970 descrições compostas por 5.371 palavras distintas. A duração total das moções é de 28,59 horas. A duração média do movimento é de 7,1 segundos, enquanto a duração média da descrição é de 12 palavras.
Dobramos o tamanho do conjunto de dados HumanML3D espelhando todos os movimentos e substituindo adequadamente certas palavras-chave nas descrições (por exemplo, 'esquerda'->'direita', 'sentido horário'->'sentido anti-horário').
O KIT Motion-Language Dataset (KIT-ML) também é um conjunto de dados relacionado que contém 3.911 movimentos e 6.278 descrições. Processamos o conjunto de dados KIT-ML seguindo os mesmos procedimentos do conjunto de dados HumanML3D e fornecemos o acesso neste repositório. No entanto, se você quiser usar o conjunto de dados KIT-ML, lembre-se de citar o artigo original.
Se este conjunto de dados for útil em seus projetos, agradeceremos sua estrela nesta base de código. ??
?♀️ T2M - O primeiro trabalho em HumanML3D que aprende a gerar movimento 3D a partir de descrições textuais, com VAE temporal .
? TM2T – Aprende o mapeamento mútuo entre textos e movimentos por meio do token de movimento discreto.
? TM2D - Gera movimentos de dança com instruções de texto.
? MoMask - Geração de texto2motion de novo nível usando VQ residual e modelagem mascarada generativa.
Para o conjunto de dados KIT-ML, você pode fazer o download diretamente [aqui]. Devido à política de distribuição do conjunto de dados AMASS, não temos permissão para distribuir os dados diretamente. Fornecemos uma série de scripts que podem reproduzir nosso conjunto de dados HumanML3D do conjunto de dados AMASS.
Você precisa clonar este repositório e instalar o ambiente virtual.
[2022/12/15] Atualização : a instalação de matplotlib = 3.3.4 pode evitar pequenos desvios dos dados gerados dos dados de referência. Ver problema
conda env create -f ambiente.yaml conda ativar torch_render
No caso de falha na instalação, você poderá instalar alternativamente o seguinte:
-Píton==3.7.10 - Entorpecido - Cipião - PyTorch -Tqdm - Pandas - Matplotlib==3.3.4 // Somente para animação - ffmpeg==4.3.1 // Somente para animação - Spacy==2.3.4 // Somente para processo de texto
Baixe o modo SMPL+H de SMPL+H (escolha o modelo Extended SMPL+H usado no projeto AMASS) e o modelo DMPL de DMPL (escolha DMPLs compatíveis com SMPL). Em seguida, coloque todos os modelos em "./body_model/".
Você precisa executar os seguintes scripts para obter o conjunto de dados HumanML3D:
raw_pose_processing.ipynb
motion_representation.ipynb
cal_mean_variance.ipynb
Isso pode ser opcional. Execute-o se precisar de animações.
animação.ipynb
Lembre-se de seguir as etapas de verificação dupla. O objetivo é verificar se você está no caminho certo para obter o conjunto de dados HumanML3D.
Afinal, os dados na pasta "./HumanML3D" são o que você finalmente precisa.
<DATA-DIR>./animations.rar //Animações de todos os clipes de movimento no formato mp4. ./new_joint_vecs.rar //Recurso invariante de rotação extraído e vetores de recursos de rotação de posições de movimento 3D. ./new_joints.rar //Posições de movimento 3D. ./texts.rar //Descrições dos dados de movimento. ./Mean.npy //Média para todos os dados em new_joint_vecs ./Std.npy //Desvio padrão para todos os dados em new_joint_vecs ./all.txt //Lista de nomes de todos os dados ./train.txt //Lista de nomes de dados de treinamento ./test.txt //Lista de nomes de dados de teste ./train_val.txt //Lista de nomes de dados de treinamento e validação ./val.txt //Lista de nomes de dados de validação ./all.txt //Lista de nomes de todos os dados
Os dados HumanML3D seguem a estrutura do esqueleto SMPL com 22 juntas. O KIT-ML possui 21 articulações esqueléticas. Consulte paraUtils para cadeias cinemáticas detalhadas.
O arquivo nomeado em "MXXXXXX.*" (por exemplo, 'M000000.npy') é espelhado do arquivo com o nome correspondente "XXXXXX.*" (por exemplo, '000000.npy'). Arquivos de texto e arquivos de movimento seguem os mesmos protocolos de nomenclatura, o que significa que os textos em "./texts/XXXXXX.txt" (por exemplo, '000000.txt') descrevem exatamente os movimentos humanos em "./new_joints(ou new_joint_vecs)/XXXXXX.npy "(por exemplo, '000000.npy')
Cada arquivo de texto se parece com o seguinte:
um homem chuta algo ou alguém com a perna esquerda.#a/DET homem/NOUN chuta/VERBO alguma coisa/PRON ou/CCONJ alguém/PRON com/ADP sua/DET esquerda/ADJ perna/NOUN#0.0#0.0a pessoa em pé chuta com o pé esquerdo antes de voltar à postura original.#the/DET stand/VERB person/NOUN kick/VERB with/ADP their/DET left/ADJ foot/NOUN before/ADP ir/VERBO voltar/ADV para/ADP seu/DET original/ADJ postura/NOUN#0.0#0.0um homem chuta com algo ou alguém com a perna esquerda.#a/DET homem/NOUN chutar/VERBO com/ADP algo/PRON ou/CCONJ alguém/PRON com/ADP sua/DET esquerda/ADJ perna/NOUN#0.0#0.0ele está chutando voador com a perna esquerda#ele/PRON é/AUX voar/VERBO chute/NOUN com/ADP his/DET esquerda/ADJ perna/NOUN#0.0#0.0
com cada linha uma anotação textual distinta, composta por quatro partes: descrição original (minúscula) , frase processada , hora(s) de início , hora(s) de término , que são separadas por # .
Como alguns movimentos são muito complicados para serem descritos, permitimos que os anotadores descrevam uma subparte de um determinado movimento, se necessário. Nesses casos, a(s) hora(s) de início e a(s) hora(s) de término indicam os segmentos de movimento que são anotados. No entanto, observamos que estes ocupam apenas uma pequena proporção do HumanML3D. os horários de início e de término são definidos como 0 por padrão, o que significa que o texto está legendando toda a sequência de movimento correspondente.
Se você não conseguir instalar o ffmpeg, poderá animar vídeos em ‘.gif’ em vez de ‘.mp4’. No entanto, gerar GIFs geralmente leva mais tempo e ocupa mais memória.
Se você estiver usando o conjunto de dados KIT-ML, considere citar o seguinte artigo:
@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}, }
Se você estiver usando o conjunto de dados HumanML3D, considere citar os seguintes artigos:
@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} }
Entre em contato com Chuan Guo em [email protected] para quaisquer perguntas ou comentários.