人体姿态估计——from heatmap to coordinate

1、这是选取从热图变成坐标的方法 

def get_max_preds(batch_heatmaps):
    '''
    get predictions from score maps
    heatsmaps numpy.ndarray([batch_size,num_joints,height,width])
    '''
    batch_size=batch_heatmaps.shape[0]
    num_joints=batch_heatmaps.shape[1]
    width=batch_heatmaps.shape[3]
    #The shape of heatmaps_reshaped is[batch_size,num_joints,height*width]
    heatmaps_reshaped=batch_heatmaps.reshape((batch_size,num_joints,-1))
    #chance the max idx of heatmaps_reshaped
    idx=np.argmax(heatmaps_reshaped,2)
#选出heatmaps——reshaped的score最大的位置
    maxvals=np.amax(heatmaps_reshaped,2)

    maxvals=maxvals.reshape((batch_size,num_joints,1))


    idx=idx.reshape((batch_size,num_joints,1))

    preds=np.tile(idx,(1,1,2)).astype(np.float32)
#将拉长的64*64=4096的矩阵的位置转化在64*64的shape下的位置:例如=1980除以64=30(纵坐标轴),余数60是横坐标轴
    preds[:,:,0]=(preds[:,:,0])%width
    preds[:,:,1]=(preds[:,:,1])/width

    pred_mask=np.tile(np.greater(maxvals,0.0),(1,1,2))
    pred_mask=pred_mask.astype(np.float32)

    preds*=pred_mask


    return preds ,maxvals

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值