Super Kawaii Cute Cat Kaoani Motion-X dataset 관련 내용 정리

연구/컴퓨터 그래픽스

Motion-X dataset 관련 내용 정리

치킨고양이짱아 2023. 12. 27. 18:51
728x90
728x90

https://github.com/IDEA-Research/Motion-X#dataset-download

 

GitHub - IDEA-Research/Motion-X: [NeurIPS 2023] Official implementation of the paper "Motion-X: A Large-scale 3D Expressive Whol

[NeurIPS 2023] Official implementation of the paper "Motion-X: A Large-scale 3D Expressive Whole-body Human Motion Dataset" - GitHub - IDEA-Research/Motion-X: [NeurIPS 2023] Official impl...

github.com

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이 좀 다른 것 같다. 이를 처리하기 위한 과정도 필요할듯하다..

728x90
728x90