| 134 | |
| 135 | |
| 136 | def adjust_pose(src_lms_list, src_size, ref_lms, ref_size): |
| 137 | # To align the center of source landmarks based on reference landmark |
| 138 | new_src_lms_list = [] |
| 139 | ref_lms = ref_lms[:, :2] |
| 140 | src_lms = src_lms_list[0][:, :2] |
| 141 | ref_lms[:, 0] = ref_lms[:, 0] / ref_size[1] |
| 142 | ref_lms[:, 1] = ref_lms[:, 1] / ref_size[0] |
| 143 | src_lms[:, 0] = src_lms[:, 0] / src_size[1] |
| 144 | src_lms[:, 1] = src_lms[:, 1] / src_size[0] |
| 145 | ref_cx, ref_cy = np.mean(ref_lms[:, 0]), np.mean(ref_lms[:, 1]) |
| 146 | src_cx, src_cy = np.mean(src_lms[:, 0]), np.mean(src_lms[:, 1]) |
| 147 | for item in src_lms_list: |
| 148 | item = item[:, :2] |
| 149 | item[:, 0] = item[:, 0] - int((src_cx - ref_cx)) * src_size[1] |
| 150 | item[:, 1] = item[:, 1] - int((src_cy - ref_cy)) * src_size[0] |
| 151 | new_src_lms_list.append(item) |
| 152 | return np.array(new_src_lms_list) |
| 153 | |
| 154 | |
| 155 | def main(): |