目标检测|CornerNet 数据预处理ground truth heatmaps

简介

  • CornerNet 是最经典的Anchor-free方法,本博客主要介绍数据预处理中最核心步骤: ground truth heatmaps。

方法

在这里插入图片描述

  • 如上图所示, 有三种颜色的图形, 红色框代表ground truth, 绿色框的角点在橙色圆圈里面, gound truth heatmap就是通过高斯分布函数生成, 以ground thuth 的两个角点为中心,半径为 r r r, 利用高斯分布分数生成heatmap,其中,角点为positive, 其余地方为negative。具体公式如下:
    g u a s s i o n s ( x , y ) = e − x 2 + y 2 2 σ 2 guassions(x, y) = e^{-\frac{x^2+y^2}{2 \sigma^2}} guassions(x,y)=e2σ2x2+y2
    σ = 1 3 r \sigma = \frac{1}{3} r σ=31r
  • 半径r的确定比较复杂, 其中要确保两个小圆区域内所有角点的组合生成的框(绿色)和ground truth的iou要大于一个值(默认0.3) ,半径具体生成可以论文作者的issues.主要是利用解方程和极限情况求解。
  • 生成半径代码
def gaussian_radius(det_size, min_overlap=0.7):
  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)

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值