Bottom-up Object Detection by Grouping Extreme and Center Points 解读
本文(Exterme Net)是基于Corner Net做的,预测四个物体的极值点(上,下,左,右)和中心点,通过遍历各个极值点的组合(top, left, bottom, right),计算中心点是否被检测到,以此确定物体位置的方法。方法比较直观,相对Corner Net的优点是物体的极值点在物体上,更能够代表物体信息,而且Exterme Net不包含embedding部分,直接通过预测的五个点的几何关系判断是否属于同一物体。
一、网络结构
Eexterme Net的网络结构就是照搬的Center Net的网络结构,backbone还是Hourglass-Net,而且训练和测试阶段的图片输入尺寸,输出heat map下采样尺度(s=4),参数设置都是一样的;不同的是网络输出没有了embedding的那个支路,点的offset预测也只是针对四个极值点,不包括中心点的偏移预测,具体的网络输入如下:
5*C heatmap:(4个极值点 + 1个中心点)*C个类别
4*2 offset: 各个类别共享的4个极值点的偏移量(因为下采样s=4,取整运算造成的竞速损失)
二、Center Grouping
判断是否属于同一物体:
如果四个极值点的中心 (l+r)/2, (t,b)/2和网络预测的中心点重合的话,就当成一个物体输出。
可以看出需要遍历各种极值点的组合,复杂度为O(n^4),还是相当耗时的,文章说对于coco数据集,n<40,而且该方法可以用GPU加速,要比优化之后的O(n^2)的算法在GPU上还要快,但还是比较耗时。
网络如何输出极值点与中心点的集合?
极值点:如果heatmap上某一点的响应值大于0.1,而且要比周围的八个点都要高,则为一个Peak,找到heatmap的所有Peak。
中心点:计算四个极值点的中心,如果该点的heatmap值大于0.1,则找到了一个物体,输出结果,
三、错误情况
Ghost box suppression
如果三个相同的物体,横着排成一列,那个用本文的方法,就会出现歧义容易出现FP:
这两个框中心点都在第二个物体上,而计算极值点的几何中心时,都会作为结果输出,就会造成错误,不过文章说这种情况出现的比较少。
类似soft-nms,记大框分数为X,里面包含的小框分数为Yi
Edge aggregation
对于边缘水平或者垂直的物体,找四个极值点的时候可能会比较分散,各个水平(垂直)的位置都会有响应,因为都是物体的极值点,这就造成的大家的响应都不高,容易造成FN,文章提出一种聚合的方法,将相应通过水平和垂直的方向进行聚合,具体方法如下:
四、实验结果
测试时间为322ms(3.1FPS),其中inference耗时168ms,前后处理(NMS)耗时130ms,如果去掉edge aggregation,提速到4.1FPS。
Ablation study
在mutil scale下(5个scale)精度超过了所有 one stage,但是和two stage还是有差距;
在single scale下精度比Corner Net还要低一点,但是其中APsmall更高。