Generate the target heatmap.
(self, results)
| 579 | return target, target_weight |
| 580 | |
| 581 | def __call__(self, results): |
| 582 | """Generate the target heatmap.""" |
| 583 | joints_3d = results['joints_3d'] |
| 584 | joints_3d_visible = results['joints_3d_visible'] |
| 585 | |
| 586 | assert self.encoding in ['MSRA', 'Megvii', 'UDP'] |
| 587 | |
| 588 | if self.encoding == 'MSRA': |
| 589 | if isinstance(self.sigma, list): |
| 590 | num_sigmas = len(self.sigma) |
| 591 | cfg = results['ann_info'] |
| 592 | num_joints = cfg['num_joints'] |
| 593 | heatmap_size = cfg['heatmap_size'] |
| 594 | |
| 595 | target = np.empty( |
| 596 | (0, num_joints, heatmap_size[1], heatmap_size[0]), |
| 597 | dtype=np.float32) |
| 598 | target_weight = np.empty((0, num_joints, 1), dtype=np.float32) |
| 599 | for i in range(num_sigmas): |
| 600 | target_i, target_weight_i = self._msra_generate_target( |
| 601 | cfg, joints_3d, joints_3d_visible, self.sigma[i]) |
| 602 | target = np.concatenate([target, target_i[None]], axis=0) |
| 603 | target_weight = np.concatenate( |
| 604 | [target_weight, target_weight_i[None]], axis=0) |
| 605 | else: |
| 606 | target, target_weight = self._msra_generate_target( |
| 607 | results['ann_info'], joints_3d, joints_3d_visible, |
| 608 | self.sigma) |
| 609 | elif self.encoding == 'Megvii': |
| 610 | if isinstance(self.kernel, list): |
| 611 | num_kernels = len(self.kernel) |
| 612 | cfg = results['ann_info'] |
| 613 | num_joints = cfg['num_joints'] |
| 614 | W, H = cfg['heatmap_size'] |
| 615 | |
| 616 | target = np.empty((0, num_joints, H, W), dtype=np.float32) |
| 617 | target_weight = np.empty((0, num_joints, 1), dtype=np.float32) |
| 618 | for i in range(num_kernels): |
| 619 | target_i, target_weight_i = self._megvii_generate_target( |
| 620 | cfg, joints_3d, joints_3d_visible, self.kernel[i]) |
| 621 | target = np.concatenate([target, target_i[None]], axis=0) |
| 622 | target_weight = np.concatenate( |
| 623 | [target_weight, target_weight_i[None]], axis=0) |
| 624 | else: |
| 625 | target, target_weight = self._megvii_generate_target( |
| 626 | results['ann_info'], joints_3d, joints_3d_visible, |
| 627 | self.kernel) |
| 628 | elif self.encoding == 'UDP': |
| 629 | if self.target_type == 'CombinedTarget': |
| 630 | factors = self.valid_radius_factor |
| 631 | channel_factor = 3 |
| 632 | elif self.target_type == 'GaussianHeatMap': |
| 633 | factors = self.sigma |
| 634 | channel_factor = 1 |
| 635 | if isinstance(factors, list): |
| 636 | num_factors = len(factors) |
| 637 | cfg = results['ann_info'] |
| 638 | num_joints = cfg['num_joints'] |
nothing calls this directly
no test coverage detected