ExtremeNet (CVPR, 2019)

论文: Bottom-up Object Detection by Grouping Extreme and Center Points
作者: Xingyi Zhou…

摘要

随着深度学习的出现,目标检测从一个自下而上的问题逐渐发展为一个自上而下的识别问题。最先进的算法列举了一个几乎详尽的 object locations 列表,并将每个位置分类为: 对象或非对象。在本文中,作者证明了 自底向上方法仍然具有竞争力。作者使用一个标准的关键点估计(keypoint estimation)网络检测对象的四个极值点(最上、最左、最下、最右)和一个中心点。如果五个关键点是呈现几何对齐的,作者就将它们分组到一个 bounding box 中。目标检测是一个纯基于外观的关键点估计问题,没有区域分类和隐式特征学习。该方法与现有的基于区域的检测方法性能相当,在COCO test-dev上的边界框AP为43.7%。此外,作者估计的极值点直接跨越一个粗糙的八角形掩模,COCO掩模AP为18.9%,比vanilla包围盒的掩模AP好得多。极值点引导分割进一步提高到34.6%的掩模AP。

Introduction

自顶向下方法多年来一直主导着目标检测。流行的检测器通过显式裁剪区域[12]或区域特征(两阶段目标检测),或者隐式地为区域代理设置固定大小的锚点(一步目标检测),将目标检测转换为矩形区域分类。然而,自顶向下检测并不是没有限制的。矩形边框不是自然对象表示。大多数对象的形状不是矩形框,将它们放入矩形框中包含许多分散注意力的背景像素(图1)。此外,自顶向下的目标检测器枚举了大量可能的框位置,而没有真正理解对象本身的 compositional visual grammars[9,13]。这在计算上很昂贵。最后,框本身不是一个好的描述物体的方式。它们能够传达的对象信息很少,比如无法传达对象的形状和姿态。

ExtremeNet%2Ffig1.jpg

在本文中,作者提出了一种自底向上的目标检测框架ExtremeNet,它可以检测一个对象的四个极值点(最上、最左、最下、最右)。作者使用最先进的关键点估计框架[3,5,30,31,49],通过预测每个对象类别的四个 multi-peak heatmaps 来找到极端点。此外,作者使用每个类别的热图预测对象中心,作为x和y维度上两个边界框边缘的平均值。作者用纯粹基于几何的方法将极值点分组到对象中。每个极值点来自于一个 heat map,当且仅当它们的几何中心在中心热图中以高于预定义阈值的值进行预测时, 作者才将这四个极值点分为一组。作者列举了极端点预测的所有 $O(n^4)$ 组合,并选择了有效的组合。对于 COCO 来说 n≤40,因此极值点预测n的个数通常比较小,在 GPU 上实现的暴力算法就足够了。图2显示了本文方法的概述。

ExtremeNet%2Ffig2.jpg

作者并不是第一个使用 deep keypoint prediction 来检测对象的。CornerNet[22]预测一个边界框的两个对角。它们使用 associative embedding feature 将角点分组到 bounding box 中。作者的方法在 两个关键方面有之所不同: 关键点定义和分组策略。角点是边界框的另一种形式,它受到自顶向下检测的许多问题的困扰。一个角落往往位于物体的外面,没有很强的外观特征。然而,极值点位于物体上,视觉上可区分,具有一致的局部外观特征。例如,人类最顶端的点通常是头部,而汽车或飞机的底部点将是轮子。这使得极端点检测更容易。与CornerNet的第二个不同点是几何分组(geometric grouping)。作者的检测框架完全基于外观(即图片特征),没有任何隐含的特征学习。在作者的实验中,基于外观的分组效果明显更好。

作者的想法是受到Papadopoulos等人的启发[33]提出的,他们提出通过单击四个极端点来为边界框添加 annotations。这个 annotations 的收集速度大约是包围框的四倍,并且提供了比包围框更丰富的信息。极值点也与对象掩码有密切的联系。与边界框相比,直接连接膨胀的端点提供了更细粒度的对象掩码。在作者的实验中,作者证明了将一个简单的八边形拟合到极值点上可以得到一个很好的目标掩模估计。作者的方法可以进一步与深度极值切割(DEXTR)[29]相结合,将极值点 annotations 转化为指定对象的分割掩码。直接将作者的极值点预测作为指导提供给DEXTR[29],可以得到接近最先进的实例分割结果。
作者提出的方法在COCO test-dev上实现了43.7%的 bbox AP,性能优于所有已知的单级对象检测器[22、25、40、52],与成熟的两级检测器相当。一个在 Pascal VOC[8,14] 上预训练的DEXTR[29]模型结合本文的方法可以产生34.6%的 Mask AP,并且不使用任何 COCO mask annotations.

Related Work

Two-stage object detectors: R-CNN, SPP, Fast R-CNN, Faster R-CNN
One-stage object detectors: SSD, YOLO, RetinaNet, RefineDet

作者的方法属于一级探测器的范畴。但是,作者不是在 $O(h^2w^2)$ 空间中设置 anchor (这个空间指的是对于每一个 location, 其可能的 anchor 情况总共有 wh 种, 虽然作者只会选择其中的 k 种作物 RoI),而是在 $O(hw)$ 空间中检测一个边界框的五个单独部分(四个端点和一个中心)。作者没有在每个像素位置设置默认的比例或方面比作为锚点,而是只预测该位置成为关键点的概率。作者的中心图也可以看作是一个不受比例和长宽比影响的区域建议网络,没有边界盒回归。

DPM
Grouping in bottom-up human pose estimation
Implicit keypoint detection

Preliminaries

Extreme and center points: 设 $(x^{(tl)}, y^{(tl)}, x^(br), y^(br))$ 表示一个边界框的四条边。要给一个边界框添加 annotations,用户通常单击左上角 $(x^{(tl)}、y^{(tl)})$ 和右下角 $(x^{(br)}、y^{(br))}$。由于这两个点通常都位于对象之外,所以这些单击常常是不准确的,需要调整几次。整个过程平均耗时34.5秒。Papadopoulos等人的[33]建议通过单击框的四个端点 $(x^{(t)},y^{(t)})、(x^{(l)},y^{(l)})、(x^{(b)},y^{(b)})、(x^{(r)},y^{(r)})$ 来标注边界框,其中 box 表示为: $(x^{(l)},y^{(t)}、x^{(r)}、y^{(b)})$。一个点 $(x^{(a)},y^{(a)})$ 是极值点的条件是使得物体上没有其他点 $(x, y)$ 在四个基本方向之一(不是所有)上超过该点(顶部,底部,左侧,右侧)。极值单击的标注时间平均为7.2秒。生成的标注与更耗时的框标注相同。在这里,作者直接使用极值单击标注, 从而绕过边界框。同时作者还定义每个对象的中心点为 $(\frac{x^{(l)}+x^{(r)}}{2}, \frac{y^{(t)}+y^{(b)}}{2})$

Keypoint detection: 关键点估计,如人体关节估计[3,5,15,30,49]或椅角点估计[36,53],通常使用全卷积编解码器网络来预测每种关键点的多通道热图(例如,一个头部热图,另一个手腕热图)。该网络以完全监督的方式训练,要么L2损失到呈现的高斯图[3,5,30,49],要么每像素逻辑回归损失[22,34,35]。最先进的关键点估计网络,如104层的沙漏网[22,31],是以完全卷积的方式训练的。他们回归的热图Yˆ∈(0,1)H×W(为每一个输出通道宽度W和高度H。训练由多峰高斯热图Y∈(0,1)H×W引导,其中每个关键点定义高斯核的均值。标准偏差要么是固定的,要么与对象大小[22]成比例。在L2损失情况下,高斯热图作为回归目标;在logistic回归情况[22]中,高斯热图作为权值图,在正位置附近减少惩罚。

CornerNet

Deep Extreme Cut (DEXTR)

ExtremeNet for Object detection

ExtremeNet使用 HourGlass 网[31]来检测每个类的五个关键点(四个极值点和一个中心)。作者使用了 CornerNet [22]的训练设置、 loss 和 offset predictions。offset predictions 与类别无关,但与 extreme point 有关。中心映射没有 offset predictions。因此,作者的网络输出为 $5×C$ 的 heatmap和 $4×2$ 的偏移图,其中 $C$ 为类别数(COCO 中 $C = 80$)。Figure 3 shows an overview. 一旦提取出极值点,作者就把它们分组成纯几何形式的检测形式。

ExtremeNet%2Ffig3.jpg

Center Grouping

极值点位于物体的不同侧面。这使得分组变得复杂。例如, Associative Embedding[30]可能没有足够的全局视图来对这些关键点进行分组。在这里,作者采用了一种不同的方法来利用极值点的分布特性。

作者的分组算法的输入是每类五个热图:一个中心热图 $\hat Y^(c) \in (0,1)^{H×W}$ 和四个 Extreme 热图 $Y^{(t)},Y^{(l)},Y^{(b)},Y^{(r)} \in (0,1)^{H×W}$ 分别为顶部,左侧,底部,右侧的。给定一个热图,作者通过检测所有峰值来提取相应的关键点。峰值是值大于 $\tau p$ 的任何像素位置,并且其在周围像素的 $3×3$ 窗口中是局部最大的。 作者将此过程命名为 ExtrectPeak.

给定从热图 $\hat Y^{(t)}, \hat Y^{(1)}, \hat Y^{(b)}, \hat Y^{(r)}$ 中提取的四个极值点 $t,b,r,l$ 作者计算它们的几何中心 $c =\frac{(l_x + r_x)}{2}, \frac{(t_y + b_y)}{2}$。 如果在预测的 center heatmap $\hat Y^{(c)}$ 中该中心具有较高响应,则作者就将这些极值点作为一个有效检测: $\hat Y^{(c)}_{cx,cy} \geq \tau c$。 然后,作者以暴力搜索的方式对所有关键点 $t,b,r,l$ 的进行四元组的枚举。作者独立地提取每个类别的检测。算法1总结了这个过程。 作者在所有实验中设定 $\tau p= 0.1$ 和 $\tau c = 0.1$。

ExtremeNet%2Falg1.jpg

这种暴力分组算法具有 $O(n^4)$ 的运行时间,其中 $n$ 是每个基本方向的提取极值点的数量。 补充材料提出了一种在纸上更快的 $O^(n2)$ 算法。 然而,对于 MS COCO 数据集而言,很难在GPU上加速并且在实践中更慢,其中 $n\leq 40$。

Ghost box suppression

中心分组会对 相同大小的三个等间距共线 物体给出高置信度假阳性检测(仔细想一想就能知道, 如果三个相同大小的物体共线, 那么左右两边的物体的左右极值点很有可能会被分组到中间物体上, 这是非常错误的!)。 中心物体在这里有两个选择,一是提交正确的小方框,而是预测一个包含其邻居极值点的更大的方框(FP)。 作者将这些 FP 检测称为 Ghost box。 正如作者将在实验中展示的那样,这些鬼盒很少见,但仍然是 a consistent error mode of our grouping.

作者提供了一个简单的后处理步骤来删除 ghost box。根据定义, ghost box 会包含许多其他较小的检测框。为了阻止 ghost box ,作者使用了一种 soft-nms 的变种, 即如果某一个大边界框中包含的所有框的得分之和超过其自身得分的3倍,则将这个大边界框(可能是 ghost box)得分除以2。这种非极大值抑制类似于标准的基于重叠的非极大值抑制,但是会惩罚潜在的 ghost box,而不是多个重叠的 box。

Edge aggregation

极值点并不总是唯一定义的。 如果物体的垂直或水平边缘形成极值点(例如,汽车的顶部),沿着该边缘的任何点都可以被认为是极值点。 因此,作者的网络会沿对象的任意对齐边缘产生多处弱响应,而不是单个强峰响应。 这种弱响应存在两个问题:第一,较弱的响应可能低于作者的峰值选择阈值 $\tau p$,作者将完全错过极值点。 其次,即使作者检测到关键点,其得分也会低于具有强烈峰值响应的轻微旋转对象。

作者使用 边缘聚合 来解决这个问题。对于提取为局部最大值的每个极值点,作者在垂直方向(对于左和右极值点)或水平方向(对于顶部和底部关键字点)汇总其得分。作者对所有 单调递减 的分数进行聚合,并在聚合方向上以 局部最小值 停止聚合。具体地说, 作者令 $m$ 是一个 extreme point, $N_i^{(m)} = \hat Y_{m_x+i, m_y}$ 该点的垂直线段或水平线段. 令 $i_0 < 0$ 和 $0 < i_1$ 为两个最近的局部最小点, 于是作者更新 extreme point 的值为 $\tilde Y_m = \hat Y_m + \lambda_{aggr} sum^{i_1}_{i=i_0} N^{(m)}_i$, 其中, $\lambda_{aggr}$ 是 aggregation weight, 在作者的实验中, 取其值为 $0.1$. 效果如图 4 所示.

ExtremeNet%2Ffig4.jpg

Extreme Instance Segmentation

与简单的边界框相比,极值点携带有关对象的更多信息,其标注值至少为两倍(8比4)。 作者提出了一种简单的方法,通过创建一个边缘以极值点为中心的八边形来使用极值点逼近 object mask。 具体而言,对于极端点,作者将其在相应边缘上的两个方向上延伸到整个边缘长度的1/4的区段。 该段在遇到角落时会被截断。 然后,作者连接四个段的端点以形成八边形。 有关示例,请参见图1。

为了进一步细化边界框分割,作者使用了 Deep Extreme Cut (DEXTR)[29],这是一个训练有素的深度网络,可以将手动提供的极值点转换为实例分割掩码。在这项工作中,作者只是用作者的极值点预测替换了手工输入的DEXTR[29],来执行一个两阶段的实例分割。具体来说,对于每个预测的边界框,作者裁剪边界框区域,用预测的极值点呈现高斯映射,然后将连接的图像提供给预训练的DEXTR模型。DEXTR[29]与类无关,因此作者直接使用极值集的检测类和分数。没有使用进一步的后处理。

Experiments

Extreme point annotations

在COCO[26]中没有直接的极值点注释。不过,对象分割掩码有完整的注释。因此,作者在多边形掩模注释中找到了极值点作为极值。如果一条边平行于一条轴,或者在边缘中心的极值点3以内。虽然作者的训练数据来自于更昂贵的分割注释,但是极值点数据本身收集起来比标准的边界框[33]便宜4倍。

Training details

略…

Testing details

为了保持枚举效率,ExtrectPeak中最多提取了40个top point。

略…

Ablation studies

Center Grouping vs. Associative Embedding: 有表 1 看出, 当使用 CornerNet 中的 Associative Embedding 时, AP 下降了 2.1%. 虽然 Associative Embedding在人体姿态估计和 CornerNet中工作得很好,但作者的极值点位于物体的一侧。从整个物体的极值点的优势点来学习它的身份和外观可能是太困难了。虽然它可能适用于小对象,在小对象中,整个对象很容易适合于关键点的有效接受域,但是对于中、大对象就不适用了,如表1所示。此外,极值点往往位于重叠对象之间的交点,这进一步混淆了身份特征。作者的几何分组方法很好地处理了这些问题,因为它只需要对外观进行推理。

ExtremeNet%2Ftab1.jpg

Edge aggregation: Edge aggregation (第4.3节)使AP有了0.7%的改进。它对于较大的物体更有效, 因为这些物体往往具有更长的边缘, 使得 extreme point 不够明显. 去除边缘聚合将解码时间提高到76ms,整体速度提高到4.1 FPS。

Ghost box suppression: 0.3% AP improvement. 这说明 Ghost Box 并不是一种广泛存在的情况.

Error Analysis 为了更好地理解错误从何而来,以及作者的每个组件训练得有多好,作者提供了错误分析,将每个输出组件替换为其基本事实。表1显示了结果。地面真相中心的热图本身并没有增加多少AP。这说明作者的中心热图训练得很好,说明隐式对象中心是可学习的。用地面真实值替换极端点热图可以提高16.3%的AP。同时对极值点热图和中心热图进行了替换,得到了79.8%的结果,远远高于对其中一个极值点热图和中心热图的替换。这是由于作者的中心分组在关键点位置非常严格,高性能要求提高极端点热图和中心热图。添加地面真相偏移量将进一步增加AP到86.0%。其余错误来自ghost框(第4.2节)。

State-of-the-art comparisons

表2将ExtremeNet与COCO test-dev上的其他最先进方法进行了比较。作者的多尺度测试模型的AP达到了43.7,超过了所有的 one-stage 目标探测器,与流行的 two-stage 探测器相当。值得注意的是,与 CornerNet相比,它的性能提高了1.6%,这表明了检测端点和中心点比检测具有关联特征的角的优势。在单标度设置下,作者的性能比 CornerNet[22]低0.3%。然而,作者的方法对于小的和中值对象的AP比 CornerNet更高,小目标检测众所周知的更具挑战性。对于较大的对象,作者的中心响应图可能不够精确,无法很好地执行,因为几个像素的偏移可能会造成检测和假阴性之间的差异。 此外,请注意,作者使用了一半的gpu来训练作者的模型。

ExtremeNet%2Ftab2.jpg

Instance Segmentation

最后,作者将使用/不使用DEXTR[29]的实例分割结果与表3中的其他基线进行比较。
作为一个虚拟基线,作者直接将矩形边框内的所有像素指定为分割掩码。作者的最佳模型(43.3%的边界框AP)的结果是12.1%的掩模AP。基于作者预测的极值点的简单八边形掩模(第4.4节)得到18.9%的掩模AP,比边界框基线好得多。这说明这个简单的八角形掩模可以在不增加成本的情况下,给出一个相对合理的对象掩模。注意,直接使用四个极值点的四边形会产生一个过小的掩码,其IoU较低。

ExtremeNet%2Ftab3.jpg

ExtremeNet%2Ftab4.jpg