论文地址:https://arxiv.org/abs/1901.08043
论文代码:https://github.com/xingyizhou/ExtremeNet
概述ExtremeNet是今年(2019)1月23号挂在arxiv上的目标检测论文,是至今为止检测效果***的单阶段目标检测算法。思想借鉴CornerNet,使用标准的关键点估计网络检测目标关键点进而构造目标的预测框。ExtremeNet预测四个extreme point(顶、左、底、右)以及目标的中心点,如果这五个点满足几何对齐关系,就将其组合成一个目标框。ExtremeNet在COCO test-dev上的AP达到43.2%。此外,根据extreme point还可以得到更加精细的八边形分割估计结果,在COCO Mask上的AP达到34.6%。
ExtremeNet介绍ExtremeNet是一个自底向上的目标检测框架,检测目标的四个极值点(顶端、左端、底端、右端),使用state-of-the-art的关键点估计框架产生每个类别的五个Heatmaps(四个极值点和一个中心点)。使用纯几何方法组合同一目标的极值点:四个极值点的几何中心与预测的中心点heatmap匹配且高于阈值(暴力枚举,时间复杂度O(n^4),不过n一般非常小)。
图2 展示了算法的大致流程。首先产生四个预测极值点的heatmap(图2顶部)和一个预测中心点的heatmap(图2左下),提取极值点heatmap的峰值(图2中左),暴力枚举所有组合,计算几何中心(图2中右),如果几何中心与中心heatmap高度匹配,则接受该组合,否则拒绝(图2右下)。
该算法与CornerNet的区别在于关键点定义和组合。(1)CornerNet采用左上和右下角点,角点往往不在目标上,没有较强的外观特征;而ExtremeNet采用极值点,极值点在目标上,容易区分且具有一致的局部外观特征。(2)CornerNet点对组合是根据embedding vector的距离,而ExtremeNet则是根据几何中心点。ExtremeNet完全基于外观,没有任何的隐特征学习。
网络结构网络结构如下图所示:
ExtremeNet使用Hourglass网络作为backbone,产生4个C通道、大小为H*W的heatmaps,一个C通道、大小为H*W的heatmap,以及4个2通道、大小为H*W的偏移map。Heatmaps通过加权逐像素逻辑回归进行训练,其中权重用于减少在ground-truth位置附近的假阳性惩罚(详见CornerNet)。四个极值点的估计使用了CornerNet的结构和损失函数,不过没有使用embedding部分。
focal loss的变体来处理heatmap损失:
其中,pcij是类别c在位置(i, j)的score,ycij是非标准化高斯增强的ground-truth,N是图像中目标数,α和β是超参数(实验中α设为2,β 设为4)。
Offsets则是位置偏移。下采样的使用使得输出尺寸小于原始图像尺寸,假设下采样因子为n,则图像中(x, y)映射到Heatmaps的([x/n], [y/n])。取整计算会导致精度丢失,使用offsets来更准确地进行Heatmaps到输入图像的映射。
训练过程中使用smooth L1损失,即:
训练设置、损失函数以及offset预测与CornerNet相同。
Center grouping算法如下:
ExtractPeak就是给定一个heatmap,检测其中所有的峰值来提取相应的关键点。峰值就是3*3窗口中的局部最大值。预设阈值进行筛选。暴力枚举所有组合,计算几何中心,如果其在中心点的heatmap上有高响应则接受结果,得分为五个heatmap的平均值。阈值设置τp=0.1,τc=0.1。
Center grouping算法可能会出现这样的情况:处理三个共线且尺度相同的目标时,是产生三个正确的小框还是一个错误的大框呢?这种假阳性的检测结果称为“ghost box”。文中使用一种soft NMS来抑制ghost box:如果某个边框中包含的所有框的分数之和超过其本身得分的3倍,则将其得分除以2。