Pose Estimation 相关操作-HeatMap生成

1、HeatMap的生成相关代码

(1)

import numpy as np
import cv2
input_size=(96,96)
center=(10,10)
stride=1
start=stride/2-0.5#用来控制center的位置,默认stride为1
xx=np.arange(1,input_size[0])
yy=np.arange(1,input_size[1])
xx,yy=np.meshgrid(xx,yy)
xx=xx*stride+start
yy = yy * stride + start
D=(xx-center[0])**2+(yy-center[1])**2
exponent=D/2/sigma/sigma
heatmap=np.exp(-exponent)
heatmap*=255
type(heatmap)
heatmap=heatmap.astype(np.uint8)
heatmap=cv2.applyColorMap(heatmap, cv2.COLORMAP_HOT)
cv2.imwrite('./4.jpg',heatmap)

(2)CPM类似用法

import numpy as np
import cv2
input_size=(96,96)
center=(10,10)
sigma=3
gaussmap_result=np.zeros(shape=input_size,dtype=np.float32)
for i in range(input_size[1]):
    for j in range(input_size[0]):
        D=(i-center[1])**2+(j-center[0])**2
        exponent=D/2/sigma/sigma
        gaussmap_result[i,j]=np.exp(-exponent)
gaussmap_result*=255
gaussmap_result=gaussmap_result.astype(np.uint8)
heatmap=cv2.applyColorMap(heatmap, cv2.COLORMAP_HOT)
cv2.imwrite('./5.jpg',heatmap)

(3)mxnet在Simple BaseLine上面生成HeatMap与其他两种均不同,其只对3倍的Sigma的区域进行高斯分布(为什么是3sigma,我理解的是高斯分布数值%99.8的概率会落在-3sigma-3sigma区域),加快了计算速度。

import numpy as np
sigma=2
target = np.zeros((96,96),dtype=np.float32)
tmp_size = sigma * 3
mu=(10,10)
ul = [int(mu[0] - tmp_size), int(mu[1] - tmp_size)]
br = [int(mu[0] + tmp_size + 1), int(mu[1] + tmp_size + 1)]
size = 2 * tmp_size + 1
x = np.arange(0, size, 1, np.float32)
y = x[:, np.newaxis]
x0 = y0 = size // 2
g = np.exp(-((x - x0) ** 2 + (y - y0) ** 2) / (2 * (sigma ** 2)))
g.shape
# usable gaussian range
g_x = max(0, -ul[0]), min(br[0], 96) - ul[0]
g_y = max(0, -ul[1]), min(br[1], 96) - ul[1]
# image range
img_x = max(0, ul[0]), min(br[0], 96)
img_y = max(0, ul[1]), min(br[1], 96)
target[img_y[0]:img_y[1], img_x[0]:img_x[1]] = g[g_y[0]:g_y[1], g_x[0]:g_x[1]]
target*=255
type(heatmap)
heatmap=target.astype(np.uint8)
heatmap=cv2.applyColorMap(heatmap, cv2.COLORMAP_HOT)
cv2.imwrite('./3.jpg',heatmap)

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值