MCPcopy Create free account
hub / github.com/OpenGVLab/HumanBench / __call__

Method __call__

PATH/core/augmentation_pos.py:581–662  ·  view source on GitHub ↗

Generate the target heatmap.

(self, results)

Source from the content-addressed store, hash-verified

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']

Callers

nothing calls this directly

Calls 4

_msra_generate_targetMethod · 0.95
_udp_generate_targetMethod · 0.95
emptyMethod · 0.45

Tested by

no test coverage detected