centernet(cornernet)中通过高斯核函数画热点图时 高斯半径的确定及 改进成椭圆高斯图

为什么采用二维的高斯核

参考https://zhuanlan.zhihu.com/p/96856635(其中原因解释合理,但公式推导有待商榷)

在设置GT box的heat map的时候,我们不能仅仅只在top-left/bottom-right的位置设置标签(置为1),因为你看下图,其中红色的bbox为GT框,但是绿色的框其实也能很好的包围目标。所以如果在检测中得到想绿色的这样的框的话,我们也给它保留下来。甚至说的更普遍一些,只要预测的corners在top-left/bottom-right点的某一个半径r内,并且其与GTbox的IOU大于一个阈值(一般设为0.7),我们将将这些点的标签不直接置为0,那置为多少呢?可以通过一个温和的方式来慢慢过渡,所以采用二维的高斯核未尝不可。(对于centernet一样)

那问题现在就变成了如何确定半径r,使得IOU与GT box大于0.7的预测框不被直接阉割掉。
在这里插入图片描述

椭圆高斯半径公式推导

注 :
1 下面贴出的是改进的确定高斯半径的公式。先是推导出圆形高斯图的半径,再利用最小的圆形高斯图的半径推导出椭圆高斯图的半长轴和半短轴;
2 对于上面参考链接中推导的公式(也是官方代码中的公式)为什么有待商榷,下面参考链接前面部分进行了解释。

参考https://github.com/princeton-vl/CornerNet/issues/110
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用这里确定的r2来画高斯图,结果是个圆形,对于长宽相似的可以,但对于长宽差距较大的(如下图),就不合适。因为,对于边界框是下面形状的目标,显然在满足IOU=0.7的条件下,中心点沿长边可取的范围比沿短边可取的范围要大的多。
在这里插入图片描述
所以,高斯图应该是个椭圆(oval),一个轴(指椭圆长轴或短轴)控制关键点在一个方向上(边界框长边方向或短边方向)的移动;
由上面已推断出,选高斯半径r2,则椭圆的两个轴都按r2算
在这里插入图片描述
在这里插入图片描述
上图中,对于a、b两轴都有,σa =a/3 , σb = b/3是因为(μ−3σ,μ+3σ)范围的面积占高斯曲线下总面积占99.7%,一般3σ外的数值已接近于0,可忽略,所以一般取半径为3σ,所以知道半径,即可退出σ。
参考https://www.cnblogs.com/shine-lee/p/9671253.html

确定椭圆高斯图具体步骤
(1)get r , r = min(r1、r2、r3)
(2)get a and b
(3)change the gasssian function , 代码如下
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值