Spaces:
Runtime error
Runtime error
FOCAL_LENGTH = 5000.0 | |
IMG_RES = 224 | |
# Mean and standard deviation for normalizing input image | |
IMG_NORM_MEAN = [0.485, 0.456, 0.406] | |
IMG_NORM_STD = [0.229, 0.224, 0.225] | |
""" | |
We create a superset of joints containing the OpenPose joints together with the ones that each dataset provides. | |
We keep a superset of 24 joints such that we include all joints from every dataset. | |
If a dataset doesn't provide annotations for a specific joint, we simply ignore it. | |
The joints used here are the following: | |
""" | |
JOINT_NAMES = ( | |
"Hips", | |
"Left Upper Leg", | |
"Right Upper Leg", | |
"Spine", | |
"Left Leg", | |
"Right Leg", | |
"Spine1", | |
"Left Foot", | |
"Right Foot", | |
"Thorax", | |
"Left Toe", | |
"Right Toe", | |
"Neck", | |
"Left Shoulder", | |
"Right Shoulder", | |
"Head", | |
"Left ForeArm", | |
"Right ForeArm", | |
"Left Arm", | |
"Right Arm", | |
"Left Hand", | |
"Right Hand", | |
# 25 OpenPose joints (in the order provided by OpenPose) | |
# "OP Nose", | |
# "OP Neck", | |
# "OP RShoulder", | |
# "OP RElbow", | |
# "OP RWrist", | |
# "OP LShoulder", | |
# "OP LElbow", | |
# "OP LWrist", | |
# "OP MidHip", | |
# "OP RHip", | |
# "OP RKnee", | |
# "OP RAnkle", | |
# "OP LHip", | |
# "OP LKnee", | |
# "OP LAnkle", | |
# "OP REye", | |
# "OP LEye", | |
# "OP REar", | |
# "OP LEar", | |
# "OP LBigToe", | |
# "OP LSmallToe", | |
# "OP LHeel", | |
# "OP RBigToe", | |
# "OP RSmallToe", | |
# "OP RHeel", | |
## 24 Ground Truth joints (superset of joints from different datasets) | |
# "Right Ankle", | |
# "Right Knee", | |
# "Right Hip", | |
# "Left Hip", | |
# "Left Knee", | |
# "Left Ankle", | |
# "Right Wrist", | |
# "Right Elbow", | |
# "Right Shoulder", | |
# "Left Shoulder", | |
# "Left Elbow", | |
# "Left Wrist", | |
# "Neck (LSP)", | |
# "Top of Head (LSP)", | |
# "Pelvis (MPII)", | |
# "Thorax (MPII)", | |
# "Spine (H36M)", | |
# "Jaw (H36M)", | |
# "Head (H36M)", | |
# "Nose", | |
# "Left Eye", | |
# "Right Eye", | |
# "Left Ear", | |
# "Right Ear", | |
# "OP MidHip", | |
# "Spine1", | |
# "Spine2", | |
# "Spine3", | |
# "OP Neck", | |
# "Head", | |
) | |
# Dict containing the joints in numerical order | |
JOINT_IDS = {JOINT_NAMES[i]: i for i in range(len(JOINT_NAMES))} | |
# Map joints to SMPL joints | |
JOINT_MAP = { | |
"Hips": 0, | |
"Left Upper Leg": 1, | |
"Right Upper Leg": 2, | |
"Spine": 3, | |
"Left Leg": 4, | |
"Right Leg": 5, | |
"Spine1": 6, | |
"Left Foot": 7, | |
"Right Foot": 8, | |
"Thorax": 9, | |
"Left Toe": 10, | |
"Right Toe": 11, | |
"Neck": 12, | |
"Left Shoulder": 13, | |
"Right Shoulder": 14, | |
"Head": 15, | |
"Left ForeArm": 16, | |
"Right ForeArm": 17, | |
"Left Arm": 18, | |
"Right Arm": 19, | |
"Left Hand": 20, | |
"Right Hand": 21, | |
# "OP Nose": 24, | |
# "OP Neck": 12, | |
# "OP RShoulder": 17, | |
# "OP RElbow": 19, | |
# "OP RWrist": 21, | |
# "OP LShoulder": 16, | |
# "OP LElbow": 18, | |
# "OP LWrist": 20, | |
# "OP MidHip": 0, | |
# "OP RHip": 2, | |
# "OP RKnee": 5, | |
# "OP RAnkle": 8, | |
# "OP LHip": 1, | |
# "OP LKnee": 4, | |
# "OP LAnkle": 7, | |
# "OP REye": 25, | |
# "OP LEye": 26, | |
# "OP REar": 27, | |
# "OP LEar": 28, | |
# "OP LBigToe": 29, | |
# "OP LSmallToe": 30, | |
# "OP LHeel": 31, | |
# "OP RBigToe": 32, | |
# "OP RSmallToe": 33, | |
# "OP RHeel": 34, | |
# "Right Ankle": 8, | |
# "Right Knee": 5, | |
# "Right Hip": 45, | |
# "Left Hip": 46, | |
# "Left Knee": 4, | |
# "Left Ankle": 7, | |
# "Right Wrist": 21, | |
# "Right Elbow": 19, | |
# "Right Shoulder": 17, | |
# "Left Shoulder": 16, | |
# "Left Elbow": 18, | |
# "Left Wrist": 20, | |
# "Neck (LSP)": 47, | |
# "Top of Head (LSP)": 15, # 48, | |
# "Pelvis (MPII)": 49, | |
# "Thorax (MPII)": 50, | |
# "Spine (H36M)": 51, | |
# "Jaw (H36M)": 52, | |
# "Head (H36M)": 15, # 53, | |
# "Nose": 24, | |
# "Left Eye": 26, | |
# "Right Eye": 25, | |
# "Left Ear": 28, | |
# "Right Ear": 27, | |
# "Spine1": 3, | |
# "Spine2": 6, | |
# "Spine3": 9, | |
# "Head": 15, | |
} | |
# Joint selectors | |
# Indices to get the 14 LSP joints from the 17 H36M joints | |
H36M_TO_J17 = [6, 5, 4, 1, 2, 3, 16, 15, 14, 11, 12, 13, 8, 10, 0, 7, 9] | |
H36M_TO_J14 = H36M_TO_J17[:14] | |
# Indices to get the 14 LSP joints from the ground truth joints | |
J24_TO_J17 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 18, 14, 16, 17] | |
J24_TO_J14 = J24_TO_J17[:14] | |
# Permutation of SMPL pose parameters when flipping the shape | |
SMPL_JOINTS_FLIP_PERM = [ | |
0, | |
2, | |
1, | |
3, | |
5, | |
4, | |
6, | |
8, | |
7, | |
9, | |
11, | |
10, | |
12, | |
14, | |
13, | |
15, | |
17, | |
16, | |
19, | |
18, | |
21, | |
20, | |
23, | |
22, | |
] | |
SMPL_POSE_FLIP_PERM = [] | |
for i in SMPL_JOINTS_FLIP_PERM: | |
SMPL_POSE_FLIP_PERM.append(3 * i) | |
SMPL_POSE_FLIP_PERM.append(3 * i + 1) | |
SMPL_POSE_FLIP_PERM.append(3 * i + 2) | |
# Permutation indices for the 24 ground truth joints | |
J24_FLIP_PERM = [ | |
5, | |
4, | |
3, | |
2, | |
1, | |
0, | |
11, | |
10, | |
9, | |
8, | |
7, | |
6, | |
12, | |
13, | |
14, | |
15, | |
16, | |
17, | |
18, | |
19, | |
21, | |
20, | |
23, | |
22, | |
] | |
# Permutation indices for the full set of 49 joints | |
J49_FLIP_PERM = [ | |
0, | |
1, | |
5, | |
6, | |
7, | |
2, | |
3, | |
4, | |
8, | |
12, | |
13, | |
14, | |
9, | |
10, | |
11, | |
16, | |
15, | |
18, | |
17, | |
22, | |
23, | |
24, | |
19, | |
20, | |
21, | |
] + [25 + i for i in J24_FLIP_PERM] | |