文章目录
简介
论文是发表在CVPR2019上的一篇基于Anchor-Free的目标检测论文。ExtremeNet——顾名思义,其检测流程是先得到极值点,再通过极值点生成边界框,进而完成目标检测过程。
论文原文 源码
0. Abstract
随着深度学习的发展,目标检测从一个自下而上的问题发展成一个自上而下的问题(自下而上的目标检测方法先生成关键点,再由关键点得到边界框,其中典型的方法有CornerNet和CenterNet等;自上而下方法先生成大量建议框,然后通过后处理得到边界框,其中典型的方法有R-CNN和YOLO等)。本论文将目标检测转化为检测四个极值点和一个中心点,如果这些点几何对齐,则认为可以生成边界框。实验结果为该方法在COCO数据集上的AP为43.7%,一阶段算法上表现SOTA。
本文贡献:(一)提出一种新的Anchor-Free目标检测方法;(二)提出一种新的关键点分组方法;(三)ExtremeNet结合DEXTR得到一种两阶段的实例分割方法。
1. Introduction
自上而下的目标检测方法包含目前的大多数两阶段算法和一阶段算法,这类方法将目标检测转化为矩形区域分类。这类方法首先列举出大量可能的区域,这不仅会带来计算量的增加,同时矩形框也不能贴切地表达目标,例如目标的形状和姿态等。
论文提出的ExtremeNet是一种自下而上的方法,通过检测四个极值点和一个中心点完成目标检测。该方法对于每个类别预测4个极值点的热图和1个中心点的热图。然后,通过几何方法判断4个极值点是否属于同一个物体,时间复杂度为
。然后结合中心点的热图判断是否生成边界框。
首先,ExtremeNet在输入图像上预测一系列关键点热图,包括4个极值点的热图和1个中心点的热图。当且仅当4个极值点呈几何对齐,并且其组成的边界框的中心在预测的中心点热图中有较大的响应时才保留。
本文方法与CornerNet的不同之处在于:(1)CornerNet中的角点通常位于目标外,ExtremeNet中的极值点位于目标上,其能够反映物体的表观特征;(2)CornerNet基于几何关系分组,ExtremeNet基于目标外观分组,实验证明后者更加有效。
本论文是受到这篇论文的启发,该论文使用4个极值点表示边界框。同时,极值点与目标掩膜关系密切,其能够产生比边界框更加精细的掩膜。
2. Related Work
原论文在本部分首先介绍了经典的两阶段算法和一阶段算法,最后指出ExtremeNet属于一阶段算法,并且是一种Anchor-Free的方法。
论文的关键点分组思想与DPM(Deformable Part Model,可变形组件模型,是一种基于组件的目标检测算法。它的大体思路是:在特征图上对目标的多个组件分别检测得到不同的响应,然后将提取的特征组合形成融合特征,最后对融合特征分类从而得到最后的目标位置)相关。
在人体姿态估计中,为了判断哪些关键点来自于同一目标,通常采用嵌入向量方法。而论文提出了中心分组的方法对关键点分组,利用极值点及其中心的几何结构使其更容易学习。
论文的关键点检测方法采取了类似StarMap(StarMap是在2018年ECCV上提出的一种通过单通道、多峰值的热图来检测关键点的方法)的方法,且具有更加明确的几何性质。
3. Preliminaries
极值点和中心点 传统的目标检测算法采用矩形框的左上角顶点和右下角顶点表示目标边界框。而本文采用的是4个极值点
,中心点由极值点计算得到:
。实验证明这种方法生成边界框的速度快于传统的目标检测算法。
关键点检测 关键点检测通常使用一个全卷积的编解码网络来预测一个多通道热图,使用L2损失函数或者逻辑斯蒂损失函数来训练网络。当前SOTA的关键点检测网络,如104层的HourglassNet使用全卷积网络对每个输出通道回归一个热图
,而标注热图
呈高斯分布。
CornerNet CornerNet的相关信息可参考这里。
Deep Extreme Cut DEXTR是一种基于极值点的图像分割算法,它以四个极值点和由极值点所包围的图像区域作为输入。而ExtremeNet的输出正好可以作为DEXTR的输入,用以产生更加精细的检测结果(即生成掩膜)。
4. ExtremeNet for Object Detection
ExtremeNet的Backbone是HourglassNet,网络的输出为
个热图以及
个偏移图,
是类别数。详细内容请看下图:
上图中 是热图的大小,第一行共预测5个热图,包括4个极值点的热图和一个中心点的热图;第二行预测4个极值点的偏移,2分别对应于 和 方向的偏移,但此处没有对中心点的偏移。
4.1 Center Grouping
由于极值点位于目标的不同侧,嵌入向量不能利用充足的全局信息对极值点分组。论文利用极值点的扩展性,提出一种新的分组方法——中心分组。
中心分组算法的输入是4个极值点热图
和1个中心点热图
,通过热图的峰值预测对应的关键点。峰值预测
定义为:找到一个像素,该像素值比
大,并且该像素的值在其
领域内最大。
通过上述方法找到4个极值点后,则其几何中心为
。如果预测的中心点在
处有较大响应,则认为该极值点有效:
(
为定义的一个阈值)。算法过程为:
算法的输入是4个极值点热图、1个中心点热图、阈值 和 ,算法的输出是带有置信度的边界框。算法流程是:首先根据 将热图转化为一系列的关键点坐标,分别存储在 中(对应4个极值点)。然后采用暴力枚举的方式判断每4个关键点能够构成边界框,如果能则计算其几何中心点。最后判断中心点在预测的中心点热图的响应是否大于阈值,如果是则保留该边界框;同时通过计算5个关键点的平均值为该边界框的置信度。
4.2 Ghost Box Suppression
中心分组在以下情况会产生一个错误的边界框而且其置信度很高:如果三个物体的尺寸一样,且在空间上呈线性排列。那么此时中间物体的预测边界框会有两个。如下图:
如图5,红色边界框的为Ghost Box,而绿色边界框为我们需要的。
论文提出了一种后处理方法用以去除Ghost Box。基于soft NMS的思想,如果某个边界框所包围框的置信度之和超过其本身的3倍,则将其置信度除以2。
4.3 Edge Aggregation
极值点在以下情况不是唯一的:如果以物体的水平或垂直边缘形成极值点时,则沿边(如汽车的水平顶部与边界框重合的部分)的任意一点均可认为是极值点。这将导致网络对物体对齐的边缘产生弱响应,而非单个强响应,这会带来两方面的问题:(1)较弱的响应可能会低于阈值
,从而产生极值点漏检的情况;(2)即使检测到了极值点,其置信度仍低于具有强响应的略微旋转的物体。
论文提出了边缘聚合处理上述问题。对于每个局部最大的极值点,在垂直方向或水平方向上聚合。将置信度单调递减区间上的极值点聚合到原极值点处。现在定义
为一个极值点,
为该极值点所在的水平或垂直边。令
和
为两个最接近的局部最小值,满足
和
。边缘聚合采用以下方式更新极值点的置信度:
其中 为自定义的权值。
下图是边缘聚合的效果:
如上图所示,在经过边缘聚合后,红色区域的极值点置信度被加强。
4.4 Extreme Instance Segmentation
基于极值点包含的目标信息比边界框丰富,论文提出了一种生成八边形掩膜的方法。确切地说:对于每个极值点,将其沿相应边的两个方向延伸到整个边缘长度的1/4,遇到角时则停止。然后将4部分连接起来从而形成八边形(一般情况下为4条水平或垂直的边、4条倾斜的边,有时会少于8条边)。
为了生成更加精细的分割边界,论文使用了DEXTR。将ExtremeNet的输出作为DEXTR的输入,得到一个两阶段实例分割方法。
5. Experiments
论文中训练和测试等阶段的设定等遵循CornerNet。此外,原论文在中心分组方法、边缘融合、Ghost Box等方面做了消融实验。
6. Conclusion
本文提出了一种基于自下而上极值点检测的目标检测算法,在一阶段目标检测算法上SOTA,并且在图像实例分割任务上得到了优异的结果。
由于没有阅读源码,本文只总结了CornerNet的大体结构和信息,详细内容请阅读论文原文。
参考
- Law H, Deng J. Cornernet: Detecting objects as paired keypoints[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 734-750.
- Zhou X, Zhuo J, Krahenbuhl P. Bottom-up object detection by grouping extreme and center points[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 850-859.
- https://blog.csdn.net/weixin_39875161/article/details/93374834.