(keypoints, scores)
| 38 | |
| 39 | |
| 40 | def h36m_coco_format(keypoints, scores): |
| 41 | assert len(keypoints.shape) == 4 and len(scores.shape) == 3 |
| 42 | |
| 43 | h36m_kpts = [] |
| 44 | h36m_scores = [] |
| 45 | valid_frames = [] |
| 46 | |
| 47 | for i in range(keypoints.shape[0]): |
| 48 | kpts = keypoints[i] |
| 49 | score = scores[i] |
| 50 | |
| 51 | new_score = np.zeros_like(score, dtype=np.float32) |
| 52 | |
| 53 | if np.sum(kpts) != 0.: |
| 54 | kpts, valid_frame = coco_h36m(kpts) |
| 55 | h36m_kpts.append(kpts) |
| 56 | valid_frames.append(valid_frame) |
| 57 | |
| 58 | new_score[:, h36m_coco_order] = score[:, coco_order] |
| 59 | new_score[:, 0] = np.mean(score[:, [11, 12]], axis=1, dtype=np.float32) |
| 60 | new_score[:, 8] = np.mean(score[:, [5, 6]], axis=1, dtype=np.float32) |
| 61 | new_score[:, 7] = np.mean(new_score[:, [0, 8]], axis=1, dtype=np.float32) |
| 62 | new_score[:, 10] = np.mean(score[:, [1, 2, 3, 4]], axis=1, dtype=np.float32) |
| 63 | |
| 64 | h36m_scores.append(new_score) |
| 65 | |
| 66 | h36m_kpts = np.asarray(h36m_kpts, dtype=np.float32) |
| 67 | h36m_scores = np.asarray(h36m_scores, dtype=np.float32) |
| 68 | |
| 69 | return h36m_kpts, h36m_scores, valid_frames |
| 70 | |
| 71 | |
| 72 | def revise_kpts(h36m_kpts, h36m_scores, valid_frames): |
no test coverage detected