高斯曲面拟合制作热力图真值

已知真值点(x,y)根据所要制作热力图真值的范围如(x\pm2,y\pm2)范围以及结合高斯公式制作真值。

高斯公式(参考高斯曲面拟合以及Matlab实现 - 知乎)

高斯曲面拟合制作热力图真值_第1张图片

1、已知真值点x,y

2、已知范围(x\pm2,y\pm2)可产生(x-2,y-2),(x-1,y-2),(x+1,y-2),(x+2,y-2),(x-2,y-1),(x-1,y-1),(x+1,y-2),(x+2,y-1)……等这些点

ps、如何确定范围R,参考bilibili up主讲解的centernet。

Guuuuuu老师儿icon-default.png?t=M276https://space.bilibili.com/416475945真值与预测值重叠分为如下三种情况:红框为真值,绿框为预测值高斯曲面拟合制作热力图真值_第2张图片

高斯曲面拟合制作热力图真值_第3张图片 

高斯曲面拟合制作热力图真值_第4张图片 

def gaussian_radius(det_size, min_overlap=0.7):#det_size为对象bbox的长宽
  height, width = det_size

  a1  = 1
  b1  = (height + width)
  c1  = width * height * (1 - min_overlap) / (1 + min_overlap)
  sq1 = np.sqrt(b1 ** 2 - 4 * a1 * c1)
  r1  = (b1 + sq1) / 2

  a2  = 4
  b2  = 2 * (height + width)
  c2  = (1 - min_overlap) * width * height
  sq2 = np.sqrt(b2 ** 2 - 4 * a2 * c2)
  r2  = (b2 + sq2) / 2

  a3  = 4 * min_overlap
  b3  = -2 * min_overlap * (height + width)
  c3  = (min_overlap - 1) * width * height
  sq3 = np.sqrt(b3 ** 2 - 4 * a3 * c3)
  r3  = (b3 + sq3) / 2
  return min(r1, r2, r3)

由此可得到范围r。

在centernet代码中,sigma=r,范围R=3*r

3、想要计算以xy真值为中心范围为R的所有点的f(x),即在这些范围点中的概率,真值(x,y)的f(x)为1

4、根据高斯公式,将已知的1,2点带入公式f(x)=a*exp(-((x_{0}-x)^{2}+(y_{0}-y)^{2})/\delta ^{2})

即可得到热力图的真值(其中(x,y)为真值,(x0,y0)为范围内的值)

你可能感兴趣的:(深度学习,深度学习)