CVPR 2020---CentripetalNet: Pursuing High-quality Keypoint Pairs for Object Detection
Abstract
基于关键点的检测器具有良好的性能。然而,不正确的关键点匹配仍然普遍存在,严重影响了检测器的性能。在本文中,我们提出了 CentripetalNet,它利用向心偏移来对同一实例中的角点进行配对。CentripetalNet 预测角点(corner points)的位置和向心偏移(centripetal shift),并对偏移结果对齐(aligned)的角点进行匹配。结合位置信息,我们的方法比传统的嵌入方法更精确地匹配角点。corner pooling 将边界框内的信息提取到边界上。为了使角点处的信息更加敏感(更容易被察觉),我们设计了一个十字星可变形卷积网络(cross-star deforrossmable convolution network)来进行特征自适应。此外,我们通过为我们的CentripetalNet安装一个mask prediction module(掩模预测模块)来探索anchor-free检测器上的实例分割。 在MS-COCO test-dev上,我们的CentripetalNet不仅以48.0%的AP胜过所有现有的anchor-free检测器,而且以40.2%的MaskAP达到了与最新实例分割方法相当的性能。代码将在https://github.com/KiveeDong/CentripetalNet上提供。
1.Introduction
目标检测是计算机视觉在自动驾驶、移动娱乐、视频监控等应用中的一个基本课题。其挑战来源于目标外观较大的尺度、形变、遮挡。随着深度学习的发展,目标检测取得了长足的进步。基于锚的方法在过去几年中引领了潮流,但是很难手动设计一组合适的锚。此外,基于锚的方法在负锚和正锚之间存在显著的不平衡。为了改进它,CornerNet提出了一种将边界框表示为一对角点的新方法,即左上角和右下角。基于这种思想,出现了许多基于角点的方法。corner-based 的检测框架逐渐引领了目标检测领域的新趋势。corner-based的检测框架分为角点预测和角点匹配两个步骤。在本文中,我们主要关注第二步。
常规方法主要采用关联嵌入方法对角点进行配对,其中网络需要学习每个角点的附加嵌入(即匹配角点),以识别两个角点是否属于同一个 边界框(bounding-box)。这样,如果两个角来自同一个box,它们将有一个相似的嵌入,否则,它们的嵌入将完全不同。基于关联嵌入的检测器在目标检测中取得了相当不错的性能,但是它们也有一些局限性。首先,在训练过程中采用推拉损失( push and pull loss)来学习每个点的嵌入。Push loss(推损)将在不属于同一目标的点之间计算,以使它们彼此远离。而 pull loss(拉损)只在属于同一 物体的点之间进行考虑。因此,在训练过程中,实际上训练了网络在对角线的所有潜在点内寻找唯一的匹配点。当一个训练样本中存在多个相似目标时,该方法对异常值非常敏感,训练难度将会急剧增加。其次,嵌入预测基于外观特征,不使用位置信息,如图所示,如果两个目标的外观相似,即使它们相距很远,网络也会为它们预测相似的嵌入。
总结传统关联嵌入方法的局限性:
- 只训练了网络在对角线的所有潜在点内寻找唯一的匹配点,无法处理多个相似目标的情况,对异常点非常敏感。
- 只基于外观特征,没有考虑位置信息。
图1.(a)由于相似外观引起的相似嵌入,CornerNet会生成一些错误的角点对。(b)CenterNet通过中心预测除去了一些错误的角对,但自然无法处理一些密集的情况。 (c)CentripetalNet避免了CornerNet和CenterNet的缺点。
基于上述考虑,为了更好地预测向心偏移(centripetal shift),我们提出了新颖的CentripetalNet,该算法采用了基于向心偏移的角点匹配方法和一个十字星可变形卷积模块( cross-star deformable convolution module )。给定一对角点,我们为每个角点定义一个2D向量,即向心偏移,其中,向心偏移编码从角点到 box中心的空间位移。这样,每个角点都可以根据向心偏移生成一个中心点,因此,如果两个角点属于同一个边界框,则它们所生成的中心点应该是靠近的。匹配的质量可以由两个中心与该匹配的几何中心之间的距离来表示。结合每个角点的位置信息,与联合嵌入方法相比,该方法对异常点(值)具有较强的鲁棒性。此外,我们还提出了一个新的组成部分,即 cross-star 可变形卷积(cross-star deformable convolution),不仅可以学习大的感受野接收场,而且可以学习 cross-star 的几何结构。我们观察到 corner-pooling 输出的特征图中有一些“十字星(cross stars)”。
“cross-star”的边界包含目标的上下文信息,因为 corner-pooling 使用max和sum操作将目标的位置信息沿 “cross-star” 边界扩展到角。因此,我们将目标的几何和位置信息明确地嵌入到可变形卷积的偏移场中。与 CornerNet 相比,我们的模型配备了向心偏移和 cross-star 可变形卷积,在MS-COCO test-dev2017上实现了显着的性能提升,AP从42.1%提升到47.8%AP。此外,基于多任务学习在目标检测中的优势,我们首先增加了实例掩码分支(instance mask branch)来进一步提高检测精度。我们将RoIAlign应用于来自一组预测兴感趣区域(RoIs)的集合特征( pool features),并将集合特征( pool features)输入掩码头以生成最终的分割预测。为了证明所提出的 CentripetalNet的有效性,我们在具有挑战性的MS-COCO基准[21]上对该方法进行了评估[21]。在MS-COCO 基准上,CentripetalNet不仅以48.0%的AP胜过所有现有的无锚检测器,而且在实例分割方面也取得了与现有方法相当的性能。
2.Related work
Anchor-based approach:基于Anchor的检测器在特征图的每个位置设置Anchor box。该网络预测每个Anchor box中有对象的概率,并调整锚定框的大小以匹配对象。通常,基于Anchor的方法可以分为两类,即两阶段方法和一阶段方法。
从R-CNN系列方法[10,12,9]中导出两阶段方法,首先利用选择性搜索方法[32]提取RoI,然后对其进行分类和回归。Faster R-CNN[29]使用区域建议网络(RPN)通过修改预设Anchor boxes来生成RoI。Mask R-CNN[11]使用双线性插值用roalign层替换RoI Pool层。它的mask head使用自顶向下的方法来获取实例分割。
在不提取RoI的情况下,一阶段方法直接对预先设置的Anchor boxes进行分类和回归。SSD[23]利用来自多个不同卷积层的特征映射,以不同的步幅对Anchor boxes进行分类和回归。与YOLO[26]相比,YOLOv2[27]使用预设Anchors。然而,上述方法存在着正负样本不平衡的问题。RetinaNet[20]使用焦点损失来缓解分类不平衡问题。RefineDet[37]通过引入锚定细化模块(anchor refifinement module)来过滤和消除负样本,用于细化FPN结构。
针对不同的问题,本文还提出了与基于锚的检测器协同工作,如改进锚的选择过程、改进特征学习过程、优化定位预测方法、改进损失函数。
Anchor-free Approach:对于基于Anchors的方法,Anchor boxes的形状应仔细设计以适合目标对象。与基于Anchors的方法相比,Anchor-free检测器不再需要预先设置Anchor boxes。主要提出了两种Anchor-free检测器。
检测器的第一种类型直接预测了目标的中心。Yolov1[26]在目标中心点预测物体的大小和形状。DenseBox[14]引入了一种全卷积神经网络框架以获得高效率。UnitBox[36]使用IoU loss将四个边界作为一个整体进行回归。由于阳性样本的数量相对较少,这些检测器的召回率相当低。为了解决这个问题,FCOS[31]将对象边界框内的所有点作为正样本处理。它检测所有正点(positive points)以及从该点到边界框边界的距离。
对于第二种类型,检测器预测关键点并将其分组以获得边界框。CornerNet[17]检测目标的左上角和右下角,并将它们嵌入到抽象的特征空间中。它通过计算每对点的嵌入之间的距离来匹配同一目标的角点。ExtremeNet[38]检测对象的顶部、左侧、底部、最右侧和中心点。结合Deep Extreme Cut[25],可以使用极值点进行分割。这些检测器需要一些特定的分组方法来获得边界盒。RepPoints[35]使用可变形卷积网络(DCN)[6]获得用于表示目标的点集。转换函数经过精心设计,可将点集转换为边界框。CenterNet[7]在CornerNet中增加了一个中心检测分支,通过中心点验证大大提高了性能。
这些方法通常在错误检测较多的情况下达到较高的召回率。主要的挑战在于如何匹配同一目标的关键点。在这项工作中,我们提出了一个向心偏移,它将角点之间的关系编码,并通过预测的空间信息得到相应的中心,从而可以通过它们的共享中心建立左上角和右下角之间的连接。
3. CentripetalNet
我们首先提供该方法的概述。如图所示,CentripetalNet 由四个模块组成,即角点预测模块、向心偏移模块、交叉星可变形卷积(cross-star deformable convolution)和 instance mask head 。
大概流程:
- 基于CornerNet生成候选角点。
- 针对所有候选角点,引入向心偏移算法实现高质量的角点对并生成最终的预测边界框。即向心偏移模块预测角点的向心偏移,并匹配角点对,该角点对的偏移结果从其位置解码并且向心偏移对齐。
- 十字星可变形卷积(cross-star deformable convolution),它的偏移场是从角点到相应中心的偏移量中得到的,用于进行特征自适应以丰富角点位置的视觉特征,这对提高向心偏移模块的精度具有重要意义。
- 为进一步提高检测性能,我们增加了一个实例掩码模块( instance mask module ),并将该方法扩展到实例分割领域。
我们的方法将向心偏移模块(centripetal shift module)的预测边界框作为区域建议,使用RoIAlign提取区域特征,并应用一个小的卷积网络来预测分割掩码(segmentation masks)。 总体而言,我们的CentripetalNet是端到端训练的,可以在有或没有实例分割模块的情况下进行推理。
图2. CentripetalNet概述。 由于左上角和右下角的角点预测和特征自适应相似,因此为简单起见,我们仅绘制左上角模块。向心变换模块(Centripetal shift module )先获取预测的角点和自适应特征,然后预测每个角点的向心偏移,并根据预测的角点和向心偏移执行角点匹配。 在匹配过程中,如果偏移角点的位置足够接近,则它们将形成得分较高的边界框。
3.1. Centripetal Shift Module
在这里我们使用对数函数(log函数)来减少向心偏移的数值范围,使学习过程更容易。
在训练过程中,我们在地面真实角点(ground truth corners)的位置应用SmoothL1损失
Corner Matching(角点匹配)。为了匹配角点,我们使用角点的向心偏移及其位置来设计匹配方法。属于同一个边界框的一对角点应该共享该框的中心,这是直观且合理的。由于我们可以从预测角点的位置和向心偏移中解码出他们对应的中心,因此很容易比较一对角点的中心是否足够靠近并接近由角点对组成的边界框的中心,如图3(c)所示。基于上述观察,我们的方法如下。一旦从角点热图和局部偏移特征图获得角点,我们就将属于同一类别的角点进行分组,满足
的条件,即可构造预测的边界框。对于每个边界框,我们将其得分设置为其角点得分的几何平均值,这是通过在预测的角点热图上应用softmax来获得的。
图3.(a)当将地面真实角点(ground truth corner)映射到热图(heatmap)时,局部偏移量Otl(或)Obr用于补偿精度损失,如[17]所示。 (b)引导偏移δ是从热图((heatmap))上的地面真实角点((ground truth corner))到边界框中心的偏移。(c)Rcentral是用来匹配角点的中心区域
然后,如图3所示,我们将每个bounding box的中心区域定义为公式3,以比较解码中心与bounding box中心的接近度。
这意味着回归中心越接近,预测框的得分权重越高。对于其他边界框,我们将wj设置为0。最后,我们可以通过乘以得分权重来对预测的边界框进行重新评分。
3.2. Cross-star Deformable Convolution(Cross-star变形卷积)
由于 corner-pooling,在feature map 中有一些“cross-star”,如图4(a)所示。“cross-star”的边界保留了目标的大量上下文信息,因为 corner-pooling 使用max和sum 操作将目标的位置信息沿“cross-star”边界扩展到角。要获取“cross-star”的上下文信息,不仅需要一个大的receptive field,还需要了解“cross-star”的几何结构。根据上述直觉,我们提出了一种新的卷积运算,即cross-star可变形卷积,以增强角点的视觉特征。
图4.(a)由 corner pooling引起的“Cross star”。 (b)Cross star可变形卷积在角点处的采样点。(c)角点预测模块(corner prediciton module)的左上角热图。
我们提出的cross-star可变形卷积如图2所示。首先,将角 corner pooling 特征映射输入到cross-star可变形卷积模块中。为了了解可变形卷积中“cross-star”的几何结构,我们可以利用对应物体的大小来明确地引导偏移场分支(offset field branch),因为我们发现“cross-star”的形状与边界框的形状有关。但是,以左上角为例,他们自然应该减少对“cross-star”的左上角的关注,因为物体外部有更多无用的信息。因此,我们嵌入了一个引导偏移(guiding shift),即从角点到中心到偏移场分支的偏移,如图3(b)所示,该偏移包含形状和方向信息。具体地,偏移场( offset field)是在三个卷积层上执行的。前两个卷积层将corner pooling输出嵌入到特征映射中,特征映射由以下损失监督:
第二卷积层将上述特征映射到偏移场( offset field),偏移场明确包含上下文和几何信息。通过可视化学习到的偏移场(如图7c所示),我们的cross-star可变形卷积可以有效地学习“cross-star”的几何信息并提取“cross-star”边界的信息。
3.3. Instance Mask Head
为了得到实例分割掩码( instance segmentation mask),我们将soft- NMS之前的检测结果作为区域建议,并利用全卷积神经网络在他们上方对掩码(mask )进行预测。为了确保检测模块能够产生建议,我们首先对CentripetalNet进行了几个epochs的预训练。我们选择得分最高的k个建议,并在主干网的特征图上执行RoIAlign以获得它们的特征。我们将RoIAlign的大小设置为14×14,并预测一个28×28的掩模(mask)。
从RoIs中获得特征后,我们使用四个连续的3×3个卷积层,然后使用转置的卷积层将特征映射上采样到28×28掩模映射m-hat(28 × 28 mask map m-hat )。在训练过程中,我们对每个区域建议应用交叉熵损失:
4. Experiments
5. Conclusion
在这项工作中,我们介绍了一种简单而有效的向心偏移,以解决最近的anchor-free检测器中的角点匹配问题。 我们的方法通过位置(positional)和几何信息(geometric information)建立角点之间的关系,并克服了相似外观导致的关联嵌入的歧义。此外,我们为检测器配备了实例分割模块,并首先使用anchor-free检测器进行端到端实例分割。 最后,MS-COCO的最新性能证明了我们方法的优势。