ExtremeNet-Bottom-up Object Detection by Grouping Extreme and Center Points

Bottom-up Object Detection by Grouping Extreme and Center Points

论文以标准的关键点估计网络来检测4个极值点(上,下,左 ,右端点)和1个中心点,然后通过几何关系对提取到的关键点进行分组,一组极值点(5个)就对应一个检测结果。也就是说,把关键点任务转化为,目标检测任务。

ExtremeNet检测框架

ExtremeNet使用Hourglass网络作为backbone,产生4个C通道、大小为H x W的heatmaps,一个C通道、大小为H x W的heatmap,以及4个2通道(x,y方向)、大小为H x W的偏移map。

检测细节

  1. ExtractPeak对于给定一个heatmap,检测其中所有的峰值来提取相应的关键点。在对3*3窗口中的局部最大值,使用预设阈值进行筛选。暴力枚举所有组合,计算几何中心,如果其在中心点的heatmap上有高响应则接受结果,得分为五个heatmap的平均值。阈值设置τp=0.1,τc=0.1。

第一步,ExtrectPeak。 即提取heatmap中所有的极值点,极值点定义为在3x3滑动窗口中的极大值。

第二步,暴力枚举。对于每一种极值点组合(进行适当的剪枝以减小遍历规模),计算它们的中心点,如果center map对应位置上的响应超过预设阈值,则将这一组5个点作为一个备选,该备选组合的score为5个对应点的score平均值。

  1. Ghost box抑制

处理三个共线且尺度相同的目标时,是产生三个正确的小框还是一个错误的大框呢?这种假阳性的检测结果称为“ghost box”。文中使用一种soft NMS来抑制ghost box:如果某个边框中包含的所有框的分数之和超过其本身得分的3倍,则将其得分除以2。

  1. 边缘融合

极值点并非总是唯一的,比如一个汽车的极值点可能是水平或竖直的线段,文中极值点的响应是对边缘多个点的弱响应而不是一个点的强响应。这有可能产生几个问题:弱响应可能会被忽略;目标如果发生轻微旋转即便检测到关键点,得分也有很大差异。作者采用边缘聚集的方法来解决:对于每个极值点(局部最大值点),分别沿水平和垂直两个方向进行聚集,也就是在每个方向上找极值点最近的左右两个局部最小值,在区间内做加权和作为极值点的得分。

其中,m为极值点位置,i0、i1分别为距离m最近的两个局部最小值。
下图中使用边缘聚集策略后,边缘中心的像素点的置信度明显提升

多任务联合训练

ExtremeNet沿用了CornerNet的网络结构和损失函数

  1. focal loss的变体来处理heatmap损失


其中,pcij是类别c在位置(i, j)的score,ycij是非标准化高斯增强的ground-truth,N是图像中目标数,α和β是超参数(实验中α设为2,β 设为4)

  1. 偏置修正
    Offsets则是位置偏移。下采样的使用使得输出尺寸小于原始图像尺寸,假设下采样因子为n,则图像中(x, y)映射到Heatmaps的([x/n], [y/n])。取整计算会导致精度丢失,使用offsets来更准确地进行Heatmaps到输入图像的映射。

中使用smooth L1损失:

参考:

论文学习笔记ExtremeNet
论文阅读 | ExtremeNet:Bottom-up Object Detection by Grouping Extreme and Center Points

你可能感兴趣的:(ExtremeNet-Bottom-up Object Detection by Grouping Extreme and Center Points)