Spaces:
Runtime error
Runtime error
File size: 2,450 Bytes
c3d0293 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# -*- coding: utf-8 -*-
# Max-Planck-Gesellschaft zur Förderung der Wissenschaften e.V. (MPG) is
# holder of all proprietary rights on this computer program.
# You can only use this computer program if you have closed
# a license agreement with MPG or you get the right to use the computer
# program from someone who is authorized to grant you that right.
# Any use of the computer program without a valid license is prohibited and
# liable to prosecution.
#
# Copyright©2020 Max-Planck-Gesellschaft zur Förderung
# der Wissenschaften e.V. (MPG). acting on behalf of its Max Planck Institute
# for Intelligent Systems. All rights reserved.
#
# Contact: Vassilis Choutas, vassilis.choutas@tuebingen.mpg.de
from omegaconf import OmegaConf
from loguru import logger
from dataclasses import dataclass
from .utils_cfg import Variable, Pose
@dataclass
class PCA:
num_comps: int = 12
flat_hand_mean: bool = False
@dataclass
class PoseWithPCA(Pose):
pca: PCA = PCA()
@dataclass
class Shape(Variable):
num: int = 10
@dataclass
class Expression(Variable):
num: int = 10
@dataclass
class SMPL:
betas: Shape = Shape()
global_rot: Pose = Pose()
body_pose: Pose = Pose()
translation: Variable = Variable()
@dataclass
class SMPLH(SMPL):
left_hand_pose: PoseWithPCA = PoseWithPCA()
right_hand_pose: PoseWithPCA = PoseWithPCA()
@dataclass
class SMPLX(SMPLH):
expression: Expression = Expression()
jaw_pose: Pose = Pose()
leye_pose: Pose = Pose()
reye_pose: Pose = Pose()
@dataclass
class MANO:
betas: Shape = Shape()
wrist_pose: Pose = Pose()
hand_pose: PoseWithPCA = PoseWithPCA()
translation: Variable = Variable()
@dataclass
class FLAME:
betas: Shape = Shape()
expression: Expression = Expression()
global_rot: Pose = Pose()
neck_pose: Pose = Pose()
jaw_pose: Pose = Pose()
leye_pose: Pose = Pose()
reye_pose: Pose = Pose()
@dataclass
class BodyModelConfig:
model_type: str = 'smplx'
use_compressed: bool = True
folder: str = 'models'
gender: str = 'neutral'
extra_joint_path: str = ''
ext: str = 'npz'
num_expression_coeffs: int = 10
use_face_contour: bool = True
joint_regressor_path: str = ''
smpl: SMPL = SMPL()
star: SMPL = SMPL()
smplh: SMPLH = SMPLH()
smplx: SMPLX = SMPLX()
mano: MANO = MANO()
flame: FLAME = FLAME()
conf = OmegaConf.structured(BodyModelConfig)
|