結果

環境
Ubuntu 20.04 on WSL2 (Windows 11) CUDA 11.6.2 Python 3.8
方法
VideoTo3dPoseAndBvh
YouTube動画からモーションファイル(拡張子:bvh)を作成しました。こちらを使わせて頂きました。github.com
まずはリポジトリをクローンして学習済みパラメーターをサイトに書かれている通りダウンロードします。
「./joints_detectors/Alphapose/fn.py」を少し変更する必要があります。
変更前
line 9: from torch._six import string_classes, int_classes line 60: elif isinstance(batch[0], int_classes): line 64: elif isinstance(batch[0], string_classes):
変更後
(remove line 9) elif isinstance(batch[0], int): elif isinstance(batch[0], str):
「./outputs」フォルダ内に「outputvideo」フォルダを作成します。
以上で「VideoTo3dPoseAndBvh」が使えるようになります。
Animated Drawings
さらにそれを「Animated Drawings」で使用するのにも一苦労ありました。「VideoTo3dPoseAndBvh」で作成したBVHファイルを「mj.bvh」とrenameしました。motionを定義するyamlファイルを「motion_mj.yaml」として以下のような内容にしました。filepath: examples/bvh/mj.bvh
groundplane_joint: LeftFoot
forward_perp_joint_vectors:
- - LeftArm
- RightArm
- - LeftUpLeg
- RightUpLeg
scale: 0.025
up: +y
次にretargetを定義するyamlファイルを「retarget_mj.yaml」として以下のような内容にしました。
char_starting_location: [0.0, 0.0, -0.5]
bvh_projection_bodypart_groups:
- bvh_joint_names:
- RightArm
- RightForeArm
- RightHand
- LeftArm
- LeftForeArm
- LeftHand
method: pca
name: Upper Limbs
- bvh_joint_names:
- RightUpLeg
- RightLeg
- RightFoot
- LeftUpLeg
- LeftLeg
- LeftFoot
method: pca
name: Lower Limbs
- bvh_joint_names:
- Hips
- Spine
- Spine3
- Neck
method: frontal
name: Trunk
char_bodypart_groups:
- bvh_depth_drivers:
- Hips
char_joints:
- right_shoulder
- left_shoulder
- right_hip
- left_hip
- hip
- torso
- neck
- bvh_depth_drivers:
- LeftHand
char_joints:
- left_elbow
- left_hand
- bvh_depth_drivers:
- RightHand
char_joints:
- right_elbow
- right_hand
- bvh_depth_drivers:
- LeftFoot
char_joints:
- left_knee
- left_foot
- bvh_depth_drivers:
- RightFoot
char_joints:
- right_knee
- right_foot
char_bvh_root_offset:
bvh_projection_bodypart_group_for_offset: Lower Limbs
bvh_joints:
- - RightFoot
- RightLeg
- RightUpLeg
- - LeftFoot
- LeftLeg
- LeftUpLeg
char_joints:
- - left_foot
- left_knee
- left_hip
- - right_foot
- right_knee
- right_hip
char_joint_bvh_joints_mapping:
left_elbow: !!python/tuple
- LeftArm
- LeftForeArm
left_foot: !!python/tuple
- LeftLeg
- LeftFoot
left_hand: !!python/tuple
- LeftForeArm
- LeftHand
left_knee: !!python/tuple
- LeftUpLeg
- LeftLeg
torso: !!python/tuple
- Hips
- Spine3
neck: !!python/tuple
- Hips
- Neck
right_elbow: !!python/tuple
- RightArm
- RightForeArm
right_foot: !!python/tuple
- RightLeg
- RightFoot
right_hand: !!python/tuple
- RightForeArm
- RightHand
right_knee: !!python/tuple
- RightUpLeg
- RightLeg
char_runtime_checks:
- - above
- neck
- right_shoulder
- left_shoulder
それらのyamlファイルを大元のyamlファイルに記述する必要があります。
scene:
ANIMATED_CHARACTERS:
- character_cfg: examples/characters/char60/char_cfg.yaml
motion_cfg: examples/config/motion/motion_mj.yaml
retarget_cfg: examples/config/retarget/retarget_mj.yaml