Skip to content

Commit 4a6ecab

Browse files
authored
Update pose_converter.py (#93)
1 parent b9de93c commit 4a6ecab

File tree

1 file changed

+138
-2
lines changed

1 file changed

+138
-2
lines changed

src/python/pose_format/utils/pose_converter.py

Lines changed: 138 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,144 @@
3838
{("pose_keypoints_2d", "RHeel"), ("POSE_LANDMARKS", "RIGHT_HEEL")},
3939
]
4040

41-
POSES_MAP = BODY_MAP + LEFT_HAND_MAP + RIGHT_HAND_MAP
41+
FACE_MAP = [
42+
# face border mappings and interpolations:
43+
(("face_keypoints_2d", "FB_0"), ("FACE_LANDMARKS", "127")),
44+
(("face_keypoints_2d", "FB_1"), ("FACE_LANDMARKS", "234")),
45+
(("face_keypoints_2d", "FB_2"), ("FACE_LANDMARKS", "93")),
46+
(("face_keypoints_2d", "FB_3"), ("FACE_LANDMARKS", "132")),
47+
(("face_keypoints_2d", "FB_4"), ("FACE_LANDMARKS", "58")),
48+
(("face_keypoints_2d", "FB_5"), ("FACE_LANDMARKS", "172")),
49+
(("face_keypoints_2d", "FB_6"), ("FACE_LANDMARKS", "136")),
50+
(("face_keypoints_2d", "FB_7"), ("FACE_LANDMARKS", "149")),
51+
(("face_keypoints_2d", "FB_8"), ("FACE_LANDMARKS", "152")),
52+
(("face_keypoints_2d", "FB_9"), ("FACE_LANDMARKS", "378")),
53+
(("face_keypoints_2d", "FB_10"), ("FACE_LANDMARKS", "365")),
54+
(("face_keypoints_2d", "FB_11"), ("FACE_LANDMARKS", "397")),
55+
(("face_keypoints_2d", "FB_12"), ("FACE_LANDMARKS", "288")),
56+
(("face_keypoints_2d", "FB_13"), ("FACE_LANDMARKS", "361")),
57+
(("face_keypoints_2d", "FB_14"), ("FACE_LANDMARKS", "323")),
58+
(("face_keypoints_2d", "FB_15"), ("FACE_LANDMARKS", "454")),
59+
(("face_keypoints_2d", "FB_16"), ("FACE_LANDMARKS", "356")),
60+
{("face_keypoints_2d", ("FB_6", "FB_7")), ("FACE_LANDMARKS", "150")},
61+
{("face_keypoints_2d", ("FB_7", "FB_8")), ("FACE_LANDMARKS", "176")},
62+
{("face_keypoints_2d", ("FB_7", "FB_8")), ("FACE_LANDMARKS", "148")},
63+
{("face_keypoints_2d", ("FB_8", "FB_9")), ("FACE_LANDMARKS", "377")},
64+
{("face_keypoints_2d", ("FB_8", "FB_8")), ("FACE_LANDMARKS", "400")},
65+
{("face_keypoints_2d", ("FB_9", "FB_10")), ("FACE_LANDMARKS", "379")},
66+
67+
# Right eye mappings and interpolations:
68+
(("face_keypoints_2d", "FE_42"), ("FACE_LANDMARKS", "362")),
69+
(("face_keypoints_2d", "FE_43"), ("FACE_LANDMARKS", "385")),
70+
(("face_keypoints_2d", "FE_44"), ("FACE_LANDMARKS", "387")),
71+
(("face_keypoints_2d", "FE_45"), ("FACE_LANDMARKS", "263")),
72+
(("face_keypoints_2d", "FE_46"), ("FACE_LANDMARKS", "373")),
73+
(("face_keypoints_2d", "FE_47"), ("FACE_LANDMARKS", "380")),
74+
{("face_keypoints_2d", ("FE_42", "FE_43")), ("FACE_LANDMARKS", "398")},
75+
{("face_keypoints_2d", ("FE_42", "FE_43")), ("FACE_LANDMARKS", "384")},
76+
{("face_keypoints_2d", ("FE_43", "FE_44")), ("FACE_LANDMARKS", "386")},
77+
{("face_keypoints_2d", ("FE_44", "FE_45")), ("FACE_LANDMARKS", "388")},
78+
{("face_keypoints_2d", ("FE_44", "FE_45")), ("FACE_LANDMARKS", "466")},
79+
{("face_keypoints_2d", ("FE_45", "FE_46")), ("FACE_LANDMARKS", "249")},
80+
{("face_keypoints_2d", ("FE_45", "FE_46")), ("FACE_LANDMARKS", "390")},
81+
{("face_keypoints_2d", ("FE_46", "FE_47")), ("FACE_LANDMARKS", "374")},
82+
{("face_keypoints_2d", ("FE_47", "FE_42")), ("FACE_LANDMARKS", "381")},
83+
{("face_keypoints_2d", ("FE_47", "FE_42")), ("FACE_LANDMARKS", "382")},
84+
85+
# Left eye mappings and interpolations:
86+
(("face_keypoints_2d", "FE_36"), ("FACE_LANDMARKS", "33")),
87+
(("face_keypoints_2d", "FE_37"), ("FACE_LANDMARKS", "160")),
88+
(("face_keypoints_2d", "FE_38"), ("FACE_LANDMARKS", "158")),
89+
(("face_keypoints_2d", "FE_39"), ("FACE_LANDMARKS", "133")),
90+
(("face_keypoints_2d", "FE_40"), ("FACE_LANDMARKS", "153")),
91+
(("face_keypoints_2d", "FE_41"), ("FACE_LANDMARKS", "144")),
92+
{("face_keypoints_2d", ("FE_36", "FE_37")), ("FACE_LANDMARKS", "246")},
93+
{("face_keypoints_2d", ("FE_36", "FE_37")), ("FACE_LANDMARKS", "161")},
94+
{("face_keypoints_2d", ("FE_37", "FE_38")), ("FACE_LANDMARKS", "159")},
95+
{("face_keypoints_2d", ("FE_38", "FE_39")), ("FACE_LANDMARKS", "157")},
96+
{("face_keypoints_2d", ("FE_38", "FE_39")), ("FACE_LANDMARKS", "173")},
97+
{("face_keypoints_2d", ("FE_39", "FE_40")), ("FACE_LANDMARKS", "155")},
98+
{("face_keypoints_2d", ("FE_39", "FE_40")), ("FACE_LANDMARKS", "154")},
99+
{("face_keypoints_2d", ("FE_40", "FE_41")), ("FACE_LANDMARKS", "145")},
100+
{("face_keypoints_2d", ("FE_41", "FE_36")), ("FACE_LANDMARKS", "163")},
101+
{("face_keypoints_2d", ("FE_41", "FE_36")), ("FACE_LANDMARKS", "7")},
102+
103+
# Nose mappings and interpolations:
104+
(("face_keypoints_2d", "FN_27"), ("FACE_LANDMARKS", "168")),
105+
(("face_keypoints_2d", "FN_28"), ("FACE_LANDMARKS", "197")),
106+
(("face_keypoints_2d", "FN_29"), ("FACE_LANDMARKS", "5")),
107+
(("face_keypoints_2d", "FN_30"), ("FACE_LANDMARKS", "4")),
108+
{("face_keypoints_2d", ("FN_27", "FN_28")), ("FACE_LANDMARKS", "6")},
109+
{("face_keypoints_2d", ("FN_28", "FN_29")), ("FACE_LANDMARKS", "195")},
110+
111+
(("face_keypoints_2d", "FN_31"), ("FACE_LANDMARKS", "219")),
112+
(("face_keypoints_2d", "FN_32"), ("FACE_LANDMARKS", "237")),
113+
(("face_keypoints_2d", "FN_33"), ("FACE_LANDMARKS", "1")),
114+
(("face_keypoints_2d", "FN_34"), ("FACE_LANDMARKS", "457")),
115+
(("face_keypoints_2d", "FN_35"), ("FACE_LANDMARKS", "439")),
116+
{("face_keypoints_2d", ("FN_31", "FN_32")), ("FACE_LANDMARKS", "218")},
117+
{("face_keypoints_2d", ("FN_32", "FN_33")), ("FACE_LANDMARKS", "44")},
118+
{("face_keypoints_2d", ("FN_33", "FN_34")), ("FACE_LANDMARKS", "274")},
119+
{("face_keypoints_2d", ("FN_34", "FN_35")), ("FACE_LANDMARKS", "438")},
120+
121+
# Mouth mappings and interpolations:
122+
(("face_keypoints_2d", "FLO_48"), ("FACE_LANDMARKS", "61")),
123+
(("face_keypoints_2d", "FLO_49"), ("FACE_LANDMARKS", "40")),
124+
(("face_keypoints_2d", "FLO_50"), ("FACE_LANDMARKS", "37")),
125+
(("face_keypoints_2d", "FLO_51"), ("FACE_LANDMARKS", "0")),
126+
(("face_keypoints_2d", "FLO_52"), ("FACE_LANDMARKS", "267")),
127+
(("face_keypoints_2d", "FLO_53"), ("FACE_LANDMARKS", "270")),
128+
(("face_keypoints_2d", "FLO_54"), ("FACE_LANDMARKS", "291")),
129+
(("face_keypoints_2d", "FLO_55"), ("FACE_LANDMARKS", "321")),
130+
(("face_keypoints_2d", "FLO_56"), ("FACE_LANDMARKS", "314")),
131+
(("face_keypoints_2d", "FLO_57"), ("FACE_LANDMARKS", "17")),
132+
(("face_keypoints_2d", "FLO_58"), ("FACE_LANDMARKS", "84")),
133+
(("face_keypoints_2d", "FLO_59"), ("FACE_LANDMARKS", "91")),
134+
{("face_keypoints_2d", ("FLO_48", "FLO_49")), ("FACE_LANDMARKS", "185")},
135+
{("face_keypoints_2d", ("FLO_49", "FLO_50")), ("FACE_LANDMARKS", "39")},
136+
{("face_keypoints_2d", ("FLO_52", "FLO_53")), ("FACE_LANDMARKS", "269")},
137+
{("face_keypoints_2d", ("FLO_53", "FLO_54")), ("FACE_LANDMARKS", "409")},
138+
{("face_keypoints_2d", ("FLO_54", "FLO_55")), ("FACE_LANDMARKS", "375")},
139+
{("face_keypoints_2d", ("FLO_55", "FLO_56")), ("FACE_LANDMARKS", "405")},
140+
{("face_keypoints_2d", ("FLO_58", "FLO_59")), ("FACE_LANDMARKS", "181")},
141+
{("face_keypoints_2d", ("FLO_59", "FLO_48")), ("FACE_LANDMARKS", "146")},
142+
143+
# Inner mouth mappings and interpolations:
144+
(("face_keypoints_2d", "FLI_60"), ("FACE_LANDMARKS", "78")),
145+
(("face_keypoints_2d", "FLI_61"), ("FACE_LANDMARKS", "81")),
146+
(("face_keypoints_2d", "FLI_62"), ("FACE_LANDMARKS", "13")),
147+
(("face_keypoints_2d", "FLI_63"), ("FACE_LANDMARKS", "311")),
148+
(("face_keypoints_2d", "FLI_64"), ("FACE_LANDMARKS", "308")),
149+
(("face_keypoints_2d", "FLI_65"), ("FACE_LANDMARKS", "402")),
150+
(("face_keypoints_2d", "FLI_66"), ("FACE_LANDMARKS", "14")),
151+
(("face_keypoints_2d", "FLI_67"), ("FACE_LANDMARKS", "178")),
152+
{("face_keypoints_2d", ("FLI_60", "FLI_61")), ("FACE_LANDMARKS", "191")},
153+
{("face_keypoints_2d", ("FLI_60", "FLI_61")), ("FACE_LANDMARKS", "80")},
154+
{("face_keypoints_2d", ("FLI_61", "FLI_62")), ("FACE_LANDMARKS", "82")},
155+
{("face_keypoints_2d", ("FLI_62", "FLI_63")), ("FACE_LANDMARKS", "312")},
156+
{("face_keypoints_2d", ("FLI_63", "FLI_64")), ("FACE_LANDMARKS", "310")},
157+
{("face_keypoints_2d", ("FLI_63", "FLI_64")), ("FACE_LANDMARKS", "415")},
158+
{("face_keypoints_2d", ("FLI_64", "FLI_65")), ("FACE_LANDMARKS", "318")},
159+
{("face_keypoints_2d", ("FLI_64", "FLI_65")), ("FACE_LANDMARKS", "324")},
160+
{("face_keypoints_2d", ("FLI_65", "FLI_66")), ("FACE_LANDMARKS", "317")},
161+
{("face_keypoints_2d", ("FLI_66", "FLI_67")), ("FACE_LANDMARKS", "87")},
162+
{("face_keypoints_2d", ("FLI_67", "FLI_60")), ("FACE_LANDMARKS", "88")},
163+
{("face_keypoints_2d", ("FLI_67", "FLI_60")), ("FACE_LANDMARKS", "95")},
164+
165+
# FEB
166+
(("face_keypoints_2d", "FEB_17"), ("FACE_LANDMARKS", "70")),
167+
(("face_keypoints_2d", "FEB_18"), ("FACE_LANDMARKS", "63")),
168+
(("face_keypoints_2d", "FEB_19"), ("FACE_LANDMARKS", "105")),
169+
(("face_keypoints_2d", "FEB_20"), ("FACE_LANDMARKS", "66")),
170+
(("face_keypoints_2d", "FEB_21"), ("FACE_LANDMARKS", "107")),
171+
(("face_keypoints_2d", "FEB_22"), ("FACE_LANDMARKS", "336")),
172+
(("face_keypoints_2d", "FEB_23"), ("FACE_LANDMARKS", "296")),
173+
(("face_keypoints_2d", "FEB_24"), ("FACE_LANDMARKS", "334")),
174+
(("face_keypoints_2d", "FEB_25"), ("FACE_LANDMARKS", "293")),
175+
(("face_keypoints_2d", "FEB_26"), ("FACE_LANDMARKS", "300")),
176+
]
177+
178+
POSES_MAP = BODY_MAP + LEFT_HAND_MAP + RIGHT_HAND_MAP + FACE_MAP
42179

43180

44181
def convert_pose(pose: Pose, pose_components: List[PoseHeaderComponent]) -> Pose:
@@ -93,7 +230,6 @@ def convert_pose(pose: Pose, pose_components: List[PoseHeaderComponent]) -> Pose
93230

94231
return Pose(pose_header, pose_body)
95232

96-
97233
def save_image(pose: Pose, name: str):
98234
"""
99235
Saves visualized pose as an image with a given name

0 commit comments

Comments
 (0)