from abc import ABC from dataclasses import dataclass LANDMARKS = [ "pelvis", "left_hip", "right_hip", "spine1", "left_knee", "right_knee", "spine2", "left_ankle", "right_ankle", "spine3", "left_foot", "right_foot", "neck", "left_collar", "right_collar", "head", "left_shoulder", "right_shoulder", "left_elbow", "right_elbow", "left_wrist", "right_wrist", ] SKELETON_NAMES = [ ["pelvis", "right_hip", "right_knee", "right_ankle", "right_foot"], ["pelvis", "left_hip", "left_knee", "left_ankle", "left_foot"], ["pelvis", "spine1", "spine2", "spine3", "neck", "head"], ["spine3", "right_collar", "right_shoulder", "right_elbow", "right_wrist"], ["spine3", "left_collar", "left_shoulder", "left_elbow", "left_wrist"], ] SKELETON = [[LANDMARKS.index(name) for name in names] for names in SKELETON_NAMES] ROOT_INDEX = LANDMARKS.index("pelvis") @dataclass class SkeletonBaseClass(ABC): LANDMARKS: list SKELETON_NAMES: list SKELETON: list ROOT_INDEX: int MIRRORED_LANDMARKS: dict MIRRORED_INDICES: list TO_HUMANML_NAMES: list LIMBSEQ: list LIMB_POSITIONS: list PARENTS: list PARENTS_COLOR_LIST: list FPS: int