pyskl/datasets/pipelines/heatmap_related.py

class GeneratePoseTarget:

首先看def __call__(self, results):

def __call__(self, results):
        heatmap = self.gen_an_aug(results)
        key = 'heatmap_imgs' if 'imgs' in results else 'imgs'

        if self.double:
            indices = np.arange(heatmap.shape[1], dtype=np.int64)
            left, right = (self.left_kp, self.right_kp) if self.with_kp else (self.left_limb, self.right_limb)
            for l, r in zip(left, right):  # noqa: E741
                indices[l] = r
                indices[r] = l
            heatmap_flip = heatmap[..., ::-1][:, indices]
            heatmap = np.concatenate([heatmap, heatmap_flip])
        results[key] = heatmap
        return results

第一句

heatmap = self.gen_an_aug(results)

这里是关键

进入gen_an_aug函数经过分析

调用 self.generate_heatmap 方法表示生成当前帧的热图,并存储在 ret 中,意味着每一帧都会生成一个对应的热图。

经过分析发现gen_an_aug函数的返回值的shape是(480, 17, 64, 64)

480:表示有 480 帧

17:表示每帧中有 17 个关键点

64:表示热图的高度

64:表示热图的宽度

第二句

key = 'heatmap_imgs' if 'imgs' in results else 'imgs'
  • 如果 results 字典中存在 imgs 键,则使用 heatmap_imgs 作为新键;否则,使用 imgs 作为键。
  • 经过分析发现results 字典中不存在imgs 键,于是key = 'imgs'

言外之意

key = 'imgs'

第三句

由于self.double默认是False

double (bool): Output both original heatmaps and flipped heatmaps.
            Default: False.

于是只需要看

        results[key] = heatmap
        return results

将生成的热图存储到 results 字典中,使用之前确定的键名。

https://github.com/kennymckormick/pyskl/blob/main/pyskl/datasets/pipelines/heatmap_related.py

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值