HumanML3D ist ein 3D-Datensatz mit menschlicher Bewegungssprache, der aus einer Kombination des HumanAct12- und Amass-Datensatzes stammt. Es umfasst ein breites Spektrum menschlicher Handlungen wie alltägliche Aktivitäten (z. B. „Gehen“, „Springen“), Sportarten (z. B. „Schwimmen“, „Golf spielen“), Akrobatik (z. B. „Rad schlagen“) und Kunstfertigkeit (z. B , „Tanzen“).
Jeder Bewegungsclip in HumanML3D enthält 3–4 Einzelsatzbeschreibungen, die auf Amazon Mechanical Turk kommentiert sind. Bewegungen werden auf 20 fps heruntergerechnet, wobei jeder Clip 2 bis 10 Sekunden dauert.
Insgesamt besteht der HumanML3D-Datensatz aus 14.616 Bewegungen und 44.970 Beschreibungen, die aus 5.371 verschiedenen Wörtern bestehen. Die Gesamtlänge der Anträge beträgt 28,59 Stunden. Die durchschnittliche Bewegungslänge beträgt 7,1 Sekunden, während die durchschnittliche Beschreibungslänge 12 Wörter beträgt.
Wir verdoppeln die Größe des HumanML3D-Datensatzes, indem wir alle Bewegungen spiegeln und bestimmte Schlüsselwörter in den Beschreibungen richtig ersetzen (z. B. „links“ -> „rechts“, „im Uhrzeigersinn“ -> „gegen den Uhrzeigersinn“).
Der KIT Motion-Language Dataset (KIT-ML) ist ebenfalls ein verwandter Datensatz, der 3.911 Anträge und 6.278 Beschreibungen enthält. Wir haben den KIT-ML-Datensatz nach den gleichen Verfahren wie den HumanML3D-Datensatz verarbeitet und den Zugriff in diesem Repository bereitgestellt. Wenn Sie jedoch den KIT-ML-Datensatz verwenden möchten, denken Sie bitte daran, das Originalpapier zu zitieren.
Wenn dieser Datensatz in Ihren Projekten nützlich ist, freuen wir uns über Ihren Stern auf dieser Codebasis. ??
?♀️ T2M – Die erste Arbeit zu HumanML3D, die lernt, 3D-Bewegung aus Textbeschreibungen mit zeitlicher VAE zu erzeugen.
? TM2T – Erlernt die gegenseitige Zuordnung zwischen Texten und Bewegungen durch den diskreten Bewegungstoken.
? TM2D – Erzeugt Tanzbewegungen mit Textanweisungen.
? MoMask – Text2Motion-Generierung auf neuem Niveau unter Verwendung von Rest-VQ und generativer maskierter Modellierung.
Den KIT-ML-Datensatz können Sie direkt [hier] herunterladen. Aufgrund der Verteilungsrichtlinien des AMASS-Datensatzes ist es uns nicht gestattet, die Daten direkt zu verteilen. Wir stellen eine Reihe von Skripten bereit, die unseren HumanML3D-Datensatz aus dem AMASS-Datensatz reproduzieren können.
Sie müssen dieses Repository klonen und die virtuelle Umgebung installieren.
[15.12.2022] Update : Die Installation von matplotlib=3.3.4 könnte kleine Abweichungen der generierten Daten von Referenzdaten verhindern. Siehe Problem
conda env create -f ambient.yaml Conda aktiviert Torch_render
Im Falle eines Installationsfehlers können Sie alternativ Folgendes installieren:
- Python==3.7.10 - Numpy - Scipy - PyTorch - Tqdm - Pandas - Matplotlib==3.3.4 // Nur für Animation - ffmpeg==4.3.1 // Nur für Animation - Spacy==2.3.4 // Nur für Textverarbeitung
Laden Sie den SMPL+H-Modus von SMPL+H herunter (wählen Sie das im AMASS-Projekt verwendete erweiterte SMPL+H-Modell) und das DMPL-Modell von DMPL (wählen Sie mit SMPL kompatible DMPLs). Platzieren Sie dann alle Modelle unter „./body_model/“.
Sie müssen die folgenden Skripte ausführen, um den HumanML3D-Datensatz zu erhalten:
raw_pose_processing.ipynb
motion_representation.ipynb
cal_mean_variance.ipynb
Dies könnte optional sein. Führen Sie es aus, wenn Sie Animationen benötigen.
Animation.ipynb
Bitte denken Sie daran, die Schritte zur doppelten Überprüfung durchzugehen. Diese zielen darauf ab, zu überprüfen, ob Sie auf dem richtigen Weg sind, den HumanML3D-Datensatz zu erhalten.
Schließlich sind die Daten im Ordner „./HumanML3D“ das, was Sie letztendlich brauchen.
<DATA-DIR>./animations.rar //Animationen aller Motion-Clips im mp4-Format. ./new_joint_vecs.rar //Rotationsinvariante Merkmale und Rotationsmerkmalsvektoren aus 3D-Bewegungspositionen extrahiert. ./new_joints.rar //3D-Bewegungspositionen. ./texts.rar //Beschreibungen von Bewegungsdaten. ./Mean.npy //Mittelwert für alle Daten in new_joint_vecs ./Std.npy //Standardabweichung für alle Daten in new_joint_vecs ./all.txt //Namensliste aller Daten ./train.txt //Liste der Namen der Trainingsdaten ./test.txt //Liste der Namen der Testdaten ./train_val.txt //Liste der Namen von Trainings- und Validierungsdaten ./val.txt //Liste der Namen der Validierungsdaten ./all.txt //Namensliste aller Daten
HumanML3D-Daten folgen der SMPL-Skelettstruktur mit 22 Gelenken. KIT-ML verfügt über 21 Skelettgelenke. Detaillierte kinematische Ketten finden Sie unter paraUtils.
Die in „MXXXXXX.*“ benannte Datei (z. B. „M000000.npy“) wird von der Datei mit dem entsprechenden Namen „XXXXXX.*“ (z. B. „000000.npy“) gespiegelt. Textdateien und Bewegungsdateien folgen den gleichen Benennungsprotokollen, was bedeutet, dass Texte in „./texts/XXXXXX.txt“ (z. B. „000000.txt“) die menschlichen Bewegungen in „./new_joints(oder new_joint_vecs)/XXXXXX.npy“ genau beschreiben " (z. B. '000000.npy')
Jede Textdatei sieht wie folgt aus:
ein Mann tritt etwas oder jemanden mit seinem linken Bein.#a/DET Mann/NOUN tritt/VERB etwas/PRON oder/CCONJ jemand/PRON mit/ADP sein/DET links/ADJ Bein/NOUN#0.0#0.0die stehende Person tritt mit ihrem linken Fuß, bevor sie zu ihrer ursprünglichen Haltung zurückkehren.#the/DET stehen/VERB person/NOUN kick/VERB mit/ADP ihren/DET linken/ADJ Fuß/NOUN before/ADP go/VERB back/ADV to/ADP their/DET original/ADJ stance/NOUN#0.0#0.0a man tritt mit etwas oder jemandem mit dem linken Bein.#a/DET man/NOUN kick/VERB with/ADP etwas/PRON oder/CCONJ jemand/PRON mit/ADP sein/DET linkes/ADJ Bein/NOUN#0.0#0.0er fliegt mit seinem linken Bein#er/PRON is/AUX fly/VERB kick/NOUN with/ADP his/DET left/ADJ leg/NOUN#0.0#0.0
wobei jede Zeile eine eindeutige Textanmerkung ist, die aus vier Teilen besteht: Originalbeschreibung (Kleinbuchstaben) , verarbeiteter Satz , Startzeit(en) , Endzeit(en) , die durch # getrennt sind.
Da manche Bewegungen zu kompliziert sind, um beschrieben zu werden, gestatten wir den Annotatoren, bei Bedarf einen Unterteil einer bestimmten Bewegung zu beschreiben. In diesen Fällen bezeichnen Startzeit(en) und Endzeit(en) die Bewegungssegmente, die mit Anmerkungen versehen werden. Dennoch stellen wir fest, dass diese nur einen kleinen Teil von HumanML3D einnehmen. Startzeit(en) und Endzeit(en) sind standardmäßig auf 0 eingestellt, was bedeutet, dass der Text die gesamte Sequenz der entsprechenden Bewegung beschriftet.
Wenn Sie ffmpeg nicht installieren können, können Sie Videos in „.gif“ statt in „.mp4“ animieren. Allerdings nimmt die Generierung von GIFs in der Regel mehr Zeit in Anspruch und beansprucht mehr Speicher.
Wenn Sie den KIT-ML-Datensatz verwenden, denken Sie bitte darüber nach, das folgende Dokument zu zitieren:
@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}, }
Wenn Sie den HumanML3D-Datensatz verwenden, denken Sie bitte darüber nach, die folgenden Dokumente zu zitieren:
@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} }
Kontaktieren Sie Chuan Guo unter [email protected] für Fragen oder Kommentare.