|
38 | 38 | {("pose_keypoints_2d", "RHeel"), ("POSE_LANDMARKS", "RIGHT_HEEL")}, |
39 | 39 | ] |
40 | 40 |
|
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 |
42 | 179 |
|
43 | 180 |
|
44 | 181 | def convert_pose(pose: Pose, pose_components: List[PoseHeaderComponent]) -> Pose: |
@@ -93,7 +230,6 @@ def convert_pose(pose: Pose, pose_components: List[PoseHeaderComponent]) -> Pose |
93 | 230 |
|
94 | 231 | return Pose(pose_header, pose_body) |
95 | 232 |
|
96 | | - |
97 | 233 | def save_image(pose: Pose, name: str): |
98 | 234 | """ |
99 | 235 | Saves visualized pose as an image with a given name |
|
0 commit comments