HumanML3D 是一個 3D 人體運動語言資料集,源自 HumanAct12 和 Amass 資料集的組合。它涵蓋了廣泛的人類行為,例如日常活動(例如“行走”、“跳躍”)、體育運動(例如“游泳”、“打高爾夫球”)、雜技(例如“側手翻”)和藝術表演(例如、「跳舞」)。
HumanML3D 中的每個動作剪輯都附帶 3-4 個單句描述,並在 Amazon Mechanical Turk 上註釋。動作被降採樣為 20 fps,每個剪輯持續 2 到 10 秒。
整體而言,HumanML3D 資料集包含14,616 個動作和44,970 個描述,由5,371 個不同單字組成。動議總時數長達28.59小時。平均動作長度為7.1秒,平均描述長度為12 個單字。
我們透過鏡像所有運動並正確替換描述中的某些關鍵字(例如,「左」->「右」、「順時針」->「逆時針」),將 HumanML3D 資料集的大小加倍。
KIT 運動語言資料集 (KIT-ML) 也是一個相關資料集,包含 3,911 個動作和 6,278 個描述。我們按照與 HumanML3D 資料集相同的流程處理 KIT-ML 資料集,並提供在此儲存庫中的存取。但是,如果您想使用 KIT-ML 資料集,請記住引用原始論文。
如果此資料集對您的專案有用,我們將感謝您在此程式庫上的星星。 ??
?♀️ T2M - HumanML3D 的第一個工作,它學習使用時間 VAE從文字描述產生 3D 運動。
? TM2T - 透過離散動作標記學習文字和動作之間的相互映射。
? TM2D - 透過文字指令產生舞蹈動作。
? MoMask - 使用殘差 VQ 和產生屏蔽建模的新層級 text2motion 產生。
對於KIT-ML資料集,您可以直接下載[這裡]。由於AMASS資料集的分發政策,我們不允許直接分發資料。我們提供了一系列腳本,可以從 AMASS 資料集重現 HumanML3D 資料集。
您需要複製此儲存庫並安裝虛擬環境。
[2022/12/15] 更新:安裝 matplotlib=3.3.4 可防止產生的資料與參考資料出現微小偏差。查看問題
conda env create -f 環境.yaml conda 啟動 torch_render
如果安裝失敗,您可以選擇安裝以下內容:
-Python==3.7.10 - 麻木 - Scipy - PyTorch - 全面品質管理 - 貓熊 - Matplotlib==3.3.4 // 僅用於動畫 - ffmpeg==4.3.1 // 僅用於動畫 - Spacy==2.3.4 // 僅適用於文字處理
從 SMPL+H 下載 SMPL+H 模式(選擇 AMASS 專案中使用的擴展 SMPL+H 模型),從 DMPL 下載 DMPL 模型(選擇與 SMPL 相容的 DMPL)。然後將所有模型放在“./body_model/”下。
您需要執行以下腳本才能取得HumanML3D資料集:
raw_pose_processing.ipynb
運動表示.ipynb
cal_mean_variance.ipynb
這可以是可選的。如果您需要動畫,請運行它。
動畫.ipynb
請記得完成雙重檢查步驟。這些旨在檢查您是否在獲取 HumanML3D 資料集的正確軌道上。
畢竟,資料夾「./HumanML3D」下的資料就是您最終需要的。
<DATA-DIR>./animations.rar //所有動作剪輯的動畫,mp4 格式。 ./new_joint_vecs.rar //從3d運動位置提取旋轉不變特徵和旋轉特徵向量。 ./new_joints.rar //3d 運動位置。 ./texts.rar //運動資料的描述。 ./Mean.npy //new_joint_vecs中所有資料的平均值 ./Std.npy //new_joint_vecs中所有資料的標準差 ./all.txt //所有資料名稱列表 ./train.txt //訓練資料名稱列表 ./test.txt //測試資料名稱列表 ./train_val.txt //訓練和驗證資料名稱列表 ./val.txt //驗證資料名稱列表 ./all.txt //所有資料名稱列表
HumanML3D 資料遵循具有 22 個關節的 SMPL 骨架結構。 KIT-ML 有 21 個骨骼關節。有關詳細的運動鏈,請參閱 paraUtils。
「MXXXXXX.*」(例如「M000000.npy」)中命名的檔案是從對應名稱「XXXXXX.*」(例如「000000.npy」)的檔案鏡像而來的。文字檔案和運動檔案遵循相同的命名協議,這意味著“./texts/XXXXXX.txt”中的文字(例如,'000000.txt')準確地描述了“./new_joints(或new_joint_vecs)/XXXXXX. npy」中的人體動作「(例如,'000000.npy')
每個文字檔案如下所示:
一個人用左腿踢某物或某人。的人踢#the/DET 站立/動詞 person/NOUN 踢/動詞 with/ADP 他們/DET 左/ADJ 腳/NOUN 之前/ADP 走/動詞 back/ADV 到/ADP 他們/DET 原始/ADJ 立場/NOUN# 0.0#0.0a 男子用左腿踢某物或某人。 /NOUN#0.0#0.0他用左腿飛踢#he/PRON 是/AUX 飛/動詞踢/名詞with/ADP 他/DET 左/ADJ 腿/NOUN#0.0#0.0
每行都有一個不同的文字註釋,由四個部分組成:原始描述(小寫) 、處理後的句子、開始時間、結束時間,用#分隔。
由於某些動作太複雜而無法描述,因此如果需要,我們允許註釋者描述給定動作的子部分。在這些情況下,開始時間和結束時間表示所註釋的運動片段。儘管如此,我們觀察到這些只佔 HumanML3D 的一小部分。預設情況下,開始時間和結束時間設定為 0,這表示文字正在為相應運動的整個序列添加字幕。
如果您無法安裝 ffmpeg,您可以使用“.gif”而不是“.mp4”製作影片動畫。然而,產生 GIF 通常需要較長的時間和記憶體佔用。
如果您使用 KIT-ML 資料集,請考慮引用以下論文:
@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}, }
如果您使用 HumanML3D 資料集,請考慮引用以下論文:
@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} }
如有任何問題或意見,請透過[email protected]聯繫郭川。