论文笔记:Bottom-up Object Detection by Grouping Extreme and Center Points (CVPR 2019)

【作者】

•Xingyi Zhou, UT Austin, [email protected]

•Jiacheng Zhuo, UT Austin, [email protected]

•Philipp Krähenbühl, UT Austin, [email protected]

【问题】

自上而下的方法多年来一直主导着物体检测。流行的物体检测器将物体检测转换为矩形区域分类,通过(1)显式裁剪区域或区域特征(两阶段对象检测)或(2)为区域代理隐式设置固定大小锚点(一阶段对象检测)。然而,自上而下的检测也有它的限制。矩形的边界框不是一个自然的物体表示。大多数的物体不是轴对齐的框,将它们拟合在框内会包含许多分散注意力的背景像素,如图1所示。另外,自上而下的对象检测器会枚举大量可能的边界框位置,而没有真正理解对象本身的组成视觉语法。这在计算上代价很高。最后,盒子本身是物体的不良代理。它们传达的对象信息很少,例如对象的形状和姿势。

论文笔记:Bottom-up Object Detection by Grouping Extreme and Center Points (CVPR 2019)

 

图1:我们建议通过找到其极端点来检测对象。它们直接形成边界框,并且也给出物体的更紧密的八角形近似框。

【贡献】

•提出了一个自下而上的物体检测框架ExtremeNet,它可以检测物体的四个极点(最顶部,最左侧,最底部,最右侧)。

•我们提出的方法在COCO【1】测试集上实现了43.7%的边界框AP,性能优于所有报告的一阶段物体检测器,并且与复杂的二阶段检测器齐头并进。

【相关工作】

两阶段物体检测器

R-CNN家族认为物体检测是两个连续的问题:首先提出一组(许多)与类别无关的边界框候选集,对其进行裁剪,然后使用图像分类模块对裁剪后的区域或区域特征进行分类。R-CNN使用选择性搜索来生成区域建议,并将其提供给ImageNet分类网络。SPP 和Fast RCNN 首先喂给卷积网络一张图片,并裁剪中间特征图以减少计算量。Faster RCNN进一步用区域提案网络取代了区域提案。 “分类检测”的想法很直观,迄今为止仍保持最佳性能。

我们的方法不需要区域提议或区域分类。我们认为区域不是对象检测中的必要组成部分。用四个极端表示一个对象也是有效的,并且提供的信息与边界框一样多。

•一阶段物体检测器

一阶段物体检测器没有区域裁剪模块。它们可以被视为类别特定的区域或锚点提案网络,并直接为每个正锚点分配一个类别标签。SSD在不同的网络层中使用不同的比例锚点(scale anchors)。 YOLOv2学习锚形状先验。 RetinaNet提出了焦点损失来平衡正锚和负锚之间的训练贡献。 RefineDet学会尽早拒绝负类的锚点。精心设计的单级物体检测器与两级物体检测器可以更高的效率实现非常接近的性能。

我们的方法属于一阶段检测器类别。但是,我们没有在Oh2w2空间中设置锚点,而是在O(hw)空间中检测边界框的五个独立部分(四个极点和一个中心)。我们仅预测该位置成为关键点的概率,而不是在每个像素位置设置默认比例或宽高比作为锚点。我们的中心图也可以看作是比例(scale)和纵横比(aspect ratio)不可知的没有边界框回归的区域建议网络。

•变形部分模型

作为一个自下而上的物体检测方法,我们将中心点和极端点分组的想法与变形部分模型有关。我们的中心点检测器的功能与DPM中的根滤波器类似,并且我们的四个极端点可以视为所有类别的通用零件分解。无需学习部分配置,我们预测的中心点和四个极端具有固定的几何结构。我们使用最先进的关键点检测网络代替低级图像过滤器进行部分检测。

自下而上的人体姿势估计中的分组

确定哪些关键点来自同一个人是自下而上的多人姿势估计的重要组成部分。有多种解决方案:Newell等建议学习每个关键点的关联特征,使用嵌入损失对其进行训练。Cao等学习了一个类似于连接的关键点之间的边缘的相似域。 Papandreous等学习到人类骨骼树上父关节的位移,作为每个关键点的二维特征。 Nie等还学习了一个特征,作为相对于物体中心的偏移量。

与上述所有方法相比,我们的中心分组是通过利用极点及其中心的几何结构的纯基于外观的形式,并且易于学习。

隐式关键点检测

流行的关键点检测方法适用于定义明确的语义关键点,例如人体关节。 StarMap使用单个热图混合所有类型的关键点,以进行常规关键点检测。我们的极点和中心点是这种通用隐式关键点的一种,但是具有更明确的几何属性。

【方法】

概述

我们使用最先进的关键点估计框架,通过预测每个对象类别的四个多峰热图来查找极端点。此外,我们在每个类别中使用一个热图来预测对象中心,作为x和y维度上两个边界框边缘的平均值。我们使用纯粹基于几何的方法将极端点分组为对象。当且仅当在中心热图中预测其几何中心的得分高于预定义阈值时,我们才将四个极端点归为一组。我们列举了极端预测的所有O(n4)个组合,然后选择有效的组合。对于COCO中n≤40,极点预测n的数量通常很小,并且在GPU上进行的暴力算法就足够了。图2概述了所提出的方法。

 

论文笔记:Bottom-up Object Detection by Grouping Extreme and Center Points (CVPR 2019)

图2:我们的物体检测方法的图示。我们的网络预测每个类别有四个极点热图(上。我们在输入图像上显示了热图)和一个中心热图(左下图)。我们枚举四个极端点热图的峰的组合(左中),并计算组成的边界框的几何中心(右中)。当且仅当其几何中心在中心热图中具有较高响应时,才会生成边界框(右下)。

ExtremeNet使用HourglassNet【2,3】来检测每个班级的五个关键点(四个极端点和一个中心)。我们遵循CornerNet 【2】的训练设置,损失和偏移量预测。偏移量预测与类别无关,但特定于极点。中心地图没有偏移量预测。因此,我们网络的输出是5×C热图和4×2偏移图,其中C是类别数(对于MS COCO,C = 80)。图3显示了概述。提取极端点后,我们将以纯几何方式将它们分组为检测。

 

论文笔记:Bottom-up Object Detection by Grouping Extreme and Center Points (CVPR 2019)

图3:我们的框架插图。我们的网络将图像作为输入,并生成四个C-通道热图,一个C-通道热图和四个2-通道与类别无关的偏移图。热图通过加权像素Logistic回归进行训练,其中权重用于减少真实位置附近的假阳性罚分。偏移图通过在真实值峰值位置施加的平滑L1损失进行训练。

准备工作

极点:极点是一个点xa, ya,这样,对象上的其他点x, y不会沿着四个基本方向a(上,下,左,右)的其中一个位于更远的位置。Papadopoulos等提出用点击四个极点xt, yt, xl, yl, xb, yb,xr, yr的方法来注释边界框,框可以表示为 (xl,y(t),x(r), y(b))

中心点:(xl+xr2,yt+yb2)

关键点检测:关键点估计(比如:人体关节估计或椅子拐点估计)通常使用一个全卷积的编码解码网络来为每种类型的关键点(比如:一个用于人体头部的热图,另一个用于人体手腕热图)预测一个多通道热图。这个网络用一种全监督的方式来训练,为渲染的高斯图使用一个L2损失或者每像素的Logistic回归损失。最先进的关键点估计网络(如:104层的HourglassNet)用一种全卷积的方式是训练。它们为每一个宽度为W高度为H的每个输出通道回归一个热图Y0,1H×W,其中每个关键点定义了高斯核的均值。标准偏差是固定的,或者是与对象大小成比例的。高斯热图在L2损失案例中用作回归目标,在Logistic回归案例中用作权重图以减少正位置附近的惩罚。

CornerNet:CornerNet使用HourglassNet作为物体检测器进行关键点估计。他们预测了盒子相对角的两组热图。为了平衡正负位置,他们使用修正的焦点损失进行训练:

论文笔记:Bottom-up Object Detection by Grouping Extreme and Center Points (CVPR 2019)

 

公式中αβ都是超参数,在训练过程中被固定位α=2并且β=4。N是图像中物体的数量。

对于极端点的亚像素精度,CornerNet还为每个角回归了类别无关的关键点偏移(a)。此回归恢复了在hourglass网络的下采样中丢失的部分信息。在真实值极点位置使用平滑的L1损失SL1训练偏移图:

论文笔记:Bottom-up Object Detection by Grouping Extreme and Center Points (CVPR 2019)

 

其中,s是下采样因子(对于HourglassNet,s = 4),x是关键点的坐标。

       然后,CornerNet使用关联嵌入将相对的角进行分组。我们的极点估计使用CornerNet架构和损失,但不使用关联嵌入。

Deep Extreme Cut:Deep Extreme Cut(DEXTR)【4】是一种极点引导的图像分割方法。它需要四个极限点和边界框周围的裁剪图像区域(由极限点跨越)作为输入。由此,它使用Chen等人的语义分割网络对指定对象进行了类别不可知的前景分割。网络学习生成与输入极端点匹配的分割掩码。

•中心分组

我们的分组算法的输入是每个类五个热图:一个中心热图Y(c)∈0,1H×W和四个极点热图Yt,Yl,Yb,Yr,∈0,1H×W(分别代表顶部,左部,底部,右部)。给定一个热图,我们通过检测所有峰来提取相应的关键点。峰值是任何值大于τp的像素位置,在像素周围的3×3窗口中局部最大。我们将此过程命名为ExtrectPeak。

给定从热图Yt,Yl,Yb,Yr中抽取出来的极点t,b,r,l,我们计算他们的几何中心c= lx+rx2,ty+by2。如果中心在中心热图Yc中被预测出了一个较高的响应,则我们将这个极点作为一个有效检测:对于阈值τcYcx,cy(c)≥τc。然后,我们以蛮力方式枚举所有四倍的关键点t,b,r,l。我们独立提取每个类的检测结果。算法1总结了此过程。在所有实验中,我们设置τp=0.1, τc=0.1

论文笔记:Bottom-up Object Detection by Grouping Extreme and Center Points (CVPR 2019)

 

这种蛮力分组算法的运行时间为O(n4),其中n是每个基本方向上提取的极限点的数量。论文中的补充材料提出了一种更快的O(n2)算法。但是,对于n≤40的MS COCO数据集,它很难在GPU上加速并且实践中的速度较慢。

•Ghost框回归

中心分组可能对三个相同大小的等距共线物体给出高置信度的假阳性检测结果。中心物体在这里有两个选择,提交正确的小盒子,或预测一个包含其相邻端点的更大的盒子。我们称这些假阳性检测结果为ghost框。正如我们将在实验中展示的那样,这些ghost框很少见,但仍然是我们分组时一致的错误模式。

我们提出了一个简单的后处理步骤,以删除ghost框。根据定义,ghost框包含许多其他较小的检测。为了阻止ghost框,我们使用一种非最大软抑制形式。如果某个边界框中包含的所有框的得分总和超过其自身得分的3倍,则将其得分除以2。此非最大值抑制类似于基于标准重叠的非最大值抑制,但会受到惩罚潜在的ghost框,而不是多个重叠的盒子。

•边缘聚集

极限点并不总是唯一定义的。如果对象的垂直或水平边缘形成了极点(例如汽车的顶部),则沿该边缘的任何点都可以视为极点。结果,我们的网络沿物体的任何对齐边缘产生较弱的响应,而不是单个较强的峰值响应。这种较弱的响应有两个问题:首先,较弱的响应可能低于我们的峰值选择阈值τp,而我们将完全错过极限点。其次,即使我们检测到关键点,其得分也将低于具有强烈峰值响应的轻微旋转的对象。

       我们使用边缘聚合来解决此问题。对于每个提取为局部最大值的极端点,我们在垂直方向上(左侧或者右侧极点)或在水平方向(顶部或底部关键点)汇总其得分。我们聚合所有单调下降的得分,并沿聚合方向在局部最小值处停止聚合。

       具体来说,设m为一个极点,并且Ni(m)=Ymx+i,my是该点的垂直或水平线段。设i0<0, 0<i1是两个最接近的局部最小值Ni0-1(m)>Ni0(m), Ni1(m)<Ni1+1(m)。边缘聚合将关键点分数更新为Ym=Ym+λaggri=i0i1Ni(m),其中,λaggr是聚集权重。在我们的实验中,我们把λaggr设为0.1。参见图4。

论文笔记:Bottom-up Object Detection by Grouping Extreme and Center Points (CVPR 2019)

 

图4:边缘聚合目的的图示。如果多个点是一个边缘上的极点,我们的模型将预测一段低置信度响应(a)。边缘聚集可增强中间像素(b)的置信度。

•极端实例分割

极限点携带的物体信息要比简单的边界框多得多,其带有至少两倍的注释值(8对4)。我们提出了一种简单的方法,即通过创建一个以边缘为中心的八边形来使用端点来逼近对象蒙版。具体来说,对于一个极端点,我们在其相应边沿两个方向将其扩展到整个边长的1/4的部分。线段在碰到一个角时会被截断。然后,我们将四个线段的端点连接起来以形成八边形。有关示例,请参见图1。

       为了进一步完善边界框分割,我们使用Deep Extreme Cut(DEXTR),这是一种经过训练的深层网络,可将手动提供的极限点转换为实例分割蒙版。在这项工作中,我们仅用极点预测替换了DEXTR的手动输入,即可执行两阶段实例分割。具体来说,对于每个预测的边界框,我们裁剪边界框区域,使用预测的极点渲染高斯图,然后将连接的图像馈送到预先训练的DEXTR模型中。 DEXTR与类别无关,因此我们直接使用检测到的ExtremeNet类别和分数。不使用进一步的后处理。

【实验】

我们在流行的MS COCO数据集上验证了我们的方法。

•极点标注

COCO中没有直接的极值点注释。但是,物体分割掩码有完整的注释。因此,我们在多边形掩码注释中找到极值点作为极值。如果边与轴平行或在3°角内,则将极值点放置在边的中心。尽管我们的训练数据来自于更昂贵的分割注释,但极值点数据本身的收集成本比标准边界框低4倍。

评价指标:AP,AP50, AP75, APS,APM, APL

AP,AP50, AP75分别表示IoU阈值为0.5到1时的平均精度,阈值为0.5,0.75时的平均精度。

APS,APM, APL 分别表示在小型,中型和大型物体上的平均精度。

训练细节

我们的实现基于CornerNet的公共实现。我们严格遵循CornerNets超参数:我们将输入分辨率设置为511×511,输出分辨率设置为128×128。数据增强包括翻转、0.6到1.3之间的随机缩放、随机裁剪和随机颜色抖动。使用Adam优化网络,学习率为2.5e-4。CornerNet最初在10个gpu上训练5000次迭代,相当于140多gpu天。由于GPU资源有限,自比较实验(表1) 从预训练的CornerNet模型中进行微调,该模型在5 GPU上随机初始化头层,用于250k次迭代,批量大小为24。在200k次迭代中,学习率下降了10倍。最新的对比实验是从零开始在5gpu上训练500k次迭代,在450k次迭代中学习率下降。

论文笔记:Bottom-up Object Detection by Grouping Extreme and Center Points (CVPR 2019)

表格1:COCO val2017消融研究及误差分析。在移除每个成分或用其基本事实替换它之后,我们显示AP(%)。

测试细节

对于每个输入图像,我们的网络生成四个C通道极端点热图、一个C通道中心点热图和四个2通道偏移图。我们应用边缘聚集到每个极端点热图,并将中心热图乘以2,以校正整个比例尺的变化。然后我们对热图应用中心分组算法。在ExtectPeak中最多提取40个顶点以保持枚举效率。预测的边界框坐标通过在偏移地图的相应位置添加偏移量来细化。

根据CornerNet,我们保持原始图像的分辨率,而不是将其调整为固定大小。我们使用翻转增强进行测试。在我们的主要比较中,我们使用额外的5×多尺度(0.5,0.75,1,1.25,1.5)增强。最后,Soft-NMS【5】对所有增强的检测结果进行滤波。在一幅图像上进行测试需要322ms(3.1FPS),其中168ms用于网络转发,130ms用于解码,其余时间用于图像预处理和后处理(NMS)。

模块分析

中心分组与关联嵌入:我们的ExtremeNet也可以用一个类似CornerNet的关联嵌入来训练,而不是我们的几何中心点分组。我们尝试了这个方法,并用一个Hinge Loss训练出来的四通道关联嵌入特征映射替换了中心映射。表格1显示了结果。

边缘聚集:边缘聚集使AP提高了0.7%。去除边缘聚集将解码时间提高到76ms,总体速度提高到4.1fps。

Ghost box抑制:我们的简单ghost box抑制产生0.3%的AP改善。更复杂的假阳性去除算法,例如learn NMS,可能会产生稍好的结果。

错误分析:

(1)仅仅地面真相中心热图并不能增加AP。这表明我们的中心热图训练得很好,并且表明隐式物体中心是可学习的。

(2)用真值代替极端点热图,AP提高16.3%。

(3)当同时替换极值点热图和中心热图时,结果为79.8%,远高于替换其中一个热图。

(4)添加了真实值偏移将AP提高到了86.0%。

(5)剩下的错误来自ghost box。

对比实验

表格2将ExtremeNet与COCO test-dev上的其他最新方法进行了比较。我们的多尺度测试模型的AP为43.7,优于所有报告的一级目标检测器,与流行的两级检测器相当。值得注意的是,它的性能比CornerNet高1.6%,这显示了检测极值点和中心点相对于检测具有关联特征的角点的优势。在单标度设置中,我们的性能比CornerNet低0.3%。然而,我们的方法对于小目标和中间目标的AP比CornerNet高,这是已知的更具挑战性的。对于较大的物体,我们的中心响应图可能不够精确,无法很好地执行,因为几个像素的偏移可能会造成检测和假阴性之间的差异。此外,请注意,我们使用了一半的gpu来训练我们的模型。

论文笔记:Bottom-up Object Detection by Grouping Extreme and Center Points (CVPR 2019)

 

表格2:COCO测试设备的最新比较。SS/MS分别是单标度/多标度测试的缩写。这表明我们的极值与最新的基于区域的目标检测器不相上下。

•实例分割

最后,我们将使用/不使用DEXTR的实例分割结果与表格3中的其他基线进行比较。

作为虚拟基线,我们直接将矩形边界框内的所有像素指定为分割遮罩。我们的最佳模型(43.3%边界盒AP)的结果是12.1%遮罩AP。简单的八角面具基于我们预测的极值点,得到了18.9%的掩模AP,比边界框基线好得多。这表明,这种简单的八角形掩模可以给出一个相对合理的对象掩模而无需额外的成本。注意,直接使用四个极端点的四边形会产生一个太小的遮罩,IoU更低。

结合DEXTR,我们的方法在COCO val2017上获得了34.6%的掩码AP。为了将这一结果置于上下文中,最先进的Mask R-CNN【6】在ResNeXt-101-FPN【7,8】主干上获得37.5%的掩码AP,在Res50 FPN上获得34.0%的AP。考虑到我们的模型没有经过COCO分段注释或任何类特定分段的训练,我们的结果与Res50和ResNeXt-101下的2.9%AP是相当有竞争力的。

论文笔记:Bottom-up Object Detection by Grouping Extreme and Center Points (CVPR 2019)

表格3:COCO val2017实例分割评估。结果显示在Mask AP中。

【数据集】

训练过程:COCO train2017,包含118k图片和860k标注的物体

消融研究:COCO val2017,包含5k图片和36k标注的物体

对比实验:COCO test-dev,包含20k图片

【代码】

https://github.com/xingyizhou/ExtremeNet

【文献】

【1】T.-Y . Lin, M. Maire, S. Belongie, J. Hays, P . Perona, D. Ra-manan, P . Dollár, and C. L. Zitnick. Microsoft coco: Com-mon objects in context. In ECCV, 2014.

【2】H. Law and J. Deng. Cornernet: Detecting objects as paired keypoints. In ECCV, 2018.

【3】A. Newell, K. Yang, and J. Deng. Stacked hourglass net-works for human pose estimation. In ECCV, 2016.

【4】K. Maninis, S. Caelles, J. Pont-Tuset, and L. V an Gool. Deep extreme cut: From extreme points to object segmentation. In CVPR, 2018.

【5】N. Bodla, B. Singh, R. Chellappa, and L. S. Davis. Soft-nmsimproving object detection with one line of code. In ICCV, 2017.

【6】K. He, G. Gkioxari, P . Dollár, and R. Girshick. Mask r-cnn. In ICCV, 2017.

【7】T.-Y . Lin, P . Dollár, R. B. Girshick, K. He, B. Hariharan, and S. J. Belongie. Feature pyramid networks for object detec-tion. In CVPR, 2017.

【8】S. Xie, R. Girshick, P . Dollár, Z. Tu, and K. He. Aggregated residual transformations for deep neural networks. In CVPR, 2017.