(pose, H, W, ref_w=2160)
| 99 | return canvas |
| 100 | |
| 101 | def draw_pose_aligned(pose, H, W, ref_w=2160): |
| 102 | bodies = pose['bodies'] |
| 103 | faces = pose['faces'] |
| 104 | hands = pose['hands'] |
| 105 | candidate = bodies['candidate'] |
| 106 | subset = bodies['subset'] |
| 107 | sz = min(H, W) |
| 108 | sr = (ref_w / sz) if sz != ref_w else 1 |
| 109 | canvas = np.zeros(shape=(int(H*sr), int(W*sr), 3), dtype=np.uint8) |
| 110 | canvas = draw_bodypose_aligned(canvas, candidate, subset, score=bodies['score']) |
| 111 | canvas = draw_handpose_aligned(canvas, hands, pose['hands_score']) |
| 112 | canvas = draw_facepose_aligned(canvas, faces, pose['faces_score']) |
| 113 | |
| 114 | return cv2.cvtColor(cv2.resize(canvas, (W, H)), cv2.COLOR_BGR2RGB).transpose(2, 0, 1) |
| 115 | |
| 116 | |
| 117 | def get_image_pose(ref_image_path): |
no test coverage detected