Bottom-up Object Detection by Grouping Extreme and Center Points

目标检测新思路——检测目标极值点而不是包围框

摘要

通过关键点估计网络检测物体的四个极点(最高点,最低点,最左点,最右点)和一个中心点,然后通过几何关系的对其对提取到的关键点进行分组,一组极点就对应一个检测结果。由此目标检测问题就变为纯粹依据外观进行关键点估计的问题,而非隐式特征学习和区域分类任务。同时可以由极点引导出更加细致的八边形分割估计结果。

介绍

传统目标检测算法的局限性:

矩形检测框不是自然的目标表示,大多数目标并不是水平的规则的矩形,通常会因为形状问题而导致检测框中存在许多冗余。

枚举了大量不理解目标具体视觉信息的框;

由于检测框本身就不能很好地代表物体本身,所以只能提取有限的物体信息,如形状、姿势等。

ExtremeNet首先使用关键点估计结构,对每个类别预测4张极值点热力图和1张中心点热力图,然后纯粹使用基于集合的方法将极点和中心点进行分组,将四个极点和一个中心点分为一组,当且仅当它们的几何中心在中心点热力图上有着高于阈值的预测得分。这一过程通过暴力枚举来完成。

与CornerNet的不同:

关键点的定义:角点通常落在目标以外,没有强烈的局部特征,而极点通常都在物体边界上,在视觉上更易辨认。

关键点的分组:ExtremeNet纯粹依赖几何关系对极值点进行分组,没有隐含的特征学习过程,效果更好。

Motivation:Extreme clicking for efficient object annotation,用四个极点来标注目标,比传统矩形框标注快四倍,同时提供更详细的信息。

同时,极点标注还与对象分割很接近,因而得到比矩形框更加致密的分割结果。将极小的八边形拟合到极点,将得到良好的物体分割结果。ExtremeNet还能进一步与DeepExtremeCut相结合,将极点标注转化为分割结果。直接输入极点预测结果作为指导信息,将得到很好的分割结果。

相关工作

两阶段检测器:region proposal 和 region classification不是必须的,物体的四个极点表示同样是有效的,包含与检测框同样多的信息。

单阶段检测器:YOLO,SSD等在的空间中设置anchor(default boxes)。ExtremeNet在空间中检测5个独立部件,具体而言,在每个heatmap中预测某一点是极值点的概率,对于用来预测中心点的heatmap而言,可以将其理解为一个用来预测尺度宽高未知的RPN。

将来自同一对象的中心点和四个极点组合的方法来源于DPM,四个极点可以被看作是所有类别对象的通用表示,一个中心点和四个极点有着固定的几何表示。

在人体姿态估计中,如何确定关键点是否来自同一个人是很重要的,主要有以下方法:学习每个关键点的关联特征,使用嵌入式损失进行训练;学习一个类似于连接关键点之间边缘的字段;学习人体骨骼树上父关节的位移,作为每个关键点的而为特征;学习一个特征作为相对于对象中心的偏移。与上述所有方法相比,对关键点进行分组完全依赖于纯粹的外观,利用极点的几何结构及其中心,易于学习。

算法初步

令代表对象的四个极点,令代表物体的中心点。

关键点检测:以104层的沙漏网络(encoder-decoder,全卷积)作为骨架,监督信号为多峰高斯热力图,每一个特征点定义了高斯核的均值,回归结果为。网络预测一个多通道heatmap,每个通道都对应一个类别的关键点。对每张heatmap进行加权逐点逻辑回归,加权的目的是为了减少ground truth周围的虚警惩罚。

CornerNet基于沙漏网络进行关键点检测,去预测两组相对点的heatmap,最后通过联合嵌入对点集进行分组。进而实现目标检测。ExtremeNet沿用CornerNet的网络结构和损失函数,但对点集进行分组并不是用的联合嵌入。为了平衡正负样本,使用改进版的focal loss:


Focal Loss

为了提高极点检测的精度,CornerNet还预测一个与类别无关的offset特征图,用来弥补在下采样过程中引起的分辨率损失,在这个过程中使用平滑L1 Loss:


Smooth L1 Loss

代表下采样系数,代表极点坐标。

Deep Extreme Cut :给定一幅图像和若干极点,即可得到一个类别未知分割mask,ExtremeNet的结果作为Deep Extreme Cut的输入,就可以轻松得到分割结果。

算法细节

ExtremeNet使用沙漏网络来预测五个极点,采用与CornerNet相同的训练步骤、损失函数和offset预测分支。offset预测分支是与类别无关的,但是与极点是有关的,中心点不预测offset。因此网络输出为的heatmaps和的offset maps。网络结构如图所示:


ExtremeNet

中心点分组算法:

输入为某一类的中心点和极点热力图:,以及中心和Peak选择阈值。

输出为带有置信分数的边框。

ExtrectPeak:提取heatmap中的所有极值,该极值定义为在3*3滑动窗口中的极大值(大于Peak选择阈值)。

暴力枚举:对于每一种极值点组合(进行适当剪枝以减小便利规模),计算其几何中心点,如果center map对应位置上的响应超过预设阈值,则将这一组5个点作为一个组合,该组合的置信分数为对应5个对应点的分数平均值。示意图如下:

中心点分组算法示意图

Ghost box suppression

中心点分组算法对于并排排列的相同大小的物体,可能会带来具有高置信分数的假阳例,如图,在中心点分组时,会有两个选择,一个是小一点的真实的目标,另一个是大一圈的假阳例。

Ghost box

采用Soft NMS来抑制Ghost box:如果某个边框,其内部所有的边框的score之和超过了其本身score的3倍,则将其本身的score修正为原来的1/2。

边缘融合

极值点的定义不是唯一的,如果物体的垂直或者水平边缘形成极点(如汽车顶部),那么沿着该边缘的点可能都会被当做极值点。网络会对沿对象任何对齐的边缘产生弱响应,而不是单个的强响应,这会引起两个问题:一方面,较弱的响应可能低于预设的极值点阈值,导致漏掉所有的点;另一方面,即使侥幸超过了阈值,但其score可能还是不能与轻微旋转过的目标相比(其在两个方向上都有较大的响应)。解决办法是边缘融合,对每一个极值点,向它的两个方向聚集,对于左右极值点,在垂直方向上聚集其分数,对于上下极值点,在水平方向上聚集其分数,具体做法是沿着X/Y轴方向,将第一个单调下降区间内的点的分数按一定权重累加到原极值点上。令为极点,代表该点处垂直或者水平的线段,令是两个局部最小点,满足,是融合权重。如图:

边缘融合

Extreme Instance Segmentation

八边形掩膜估计

基于ExtremeNet检测到的4个极值点,通过在每两个极值点之间插入中间点,来补成八边形掩模。具体做法是:首先根据4个极值点找到外接矩形;然后对每个极值点,在其所属的矩形边上,沿着两个方向各延长矩形边的1/8;最后将8个点连接起来,如果遇到了矩形边界则截断,得到最后的八边形分割掩模估计结果。

DeepExtremeCut——精细分割

给定一副图像和若干个极值点,即可得到一个类别未知的分割。

实验部分


实验结果

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