https://github.com/IDEA-Research/Motion-X#dataset-download
Description
Motion-X dataset은 기존의 8가지 motion dataset과 massive online video로부터 large-scale 3D expressive whole-body human motion dataset을 생성하여 제공하고 있다. (expressive: ->표정과 손동작까지 포함하는 데이터를 만들었다는 말 같다.)
Motion-X dataset에서는 모두 같은 format(SMPL-X)을 사용하여 data를 표현하고 있다.
위의 8가지 데이터셋 + Online videos을 모두 사용하여 dataset을 구축하였다보니 확실해 Motion-X의 dataset 양이 방대한 것을 확인할 수 있다.
참고로 원본 Mocap dataset(AMASS, GRAB, EgoBody)와 원본 RGB 비디오는 제공하지 않는다.
또한 Mocap subset에 대해서는 text labels와 facial expression만 제공하며 Non-Mocap Subset에 대해서는 motion과 text labels만 제공한다. 따라서 Motion-X data만 다운받으면 모션은 포함되어있지 않기 때문에
https://github.com/IDEA-Research/Motion-X/tree/main/mocap-dataset-process
이 링크에 나와있는 과정을 거쳐 motion + facial expression이 합쳐진 smpl 파일을 생성해야한다. 직접 해본 결과, 좀 번거롭긴 하지만 할만하다!
Data Loading
data는 다음과 같은 방식으로 load하여 사용할 수 있다. Motion-X dataset의 파일들이 SMPL-X dataset과 format이 달라 blender의 SMPL-X addon과 호환이 되지 않아 당황했었는데...아래와 같은 코드로 load해야 사용할 수 있는거였다.
import numpy as np
import torch
# read motion and save as smplx representation
motion = np.load('motion_data/smplx_322/000001.npy')
motion = torch.tensor(motion).float()
motion_parms = {
'root_orient': motion[:, :3], # controls the global root orientation
'pose_body': motion[:, 3:3+63], # controls the body
'pose_hand': motion[:, 66:66+90], # controls the finger articulation
'pose_jaw': motion[:, 66+90:66+93], # controls the yaw pose
'face_expr': motion[:, 159:159+50], # controls the face expression
'face_shape': motion[:, 209:209+100], # controls the face shape
'trans': motion[:, 309:309+3], # controls the global body position
'betas': motion[:, 312:], # controls the body shape. Body shape is static
}
# read text labels
semantic_text = np.loadtxt('semantic_labels/000001.npy') # semantic labels
그런데 내가 하고자 하는건 Motion-X dataset의 파일들을 blender에 load하는건데...
위 코드의 semantic_text의 format과 blender smpl-X addon이 기대하는 format이 좀 다른 것 같다. 이를 처리하기 위한 과정도 필요할듯하다..
'연구 > 컴퓨터 그래픽스' 카테고리의 다른 글
CharacterAnimationTools 사용후기 (1) | 2024.01.30 |
---|---|
SMPL-X skeleton 뜯어보기 & SMPL-X to SMPL+H (0) | 2024.01.29 |
6D Rotational representation 설명 및 구현 (0) | 2023.08.03 |
blender에서 한 model의 facial motion을 다른 model에 적용하기 (0) | 2023.06.26 |
angular velocity 구하는 방법 (0) | 2023.02.24 |