CenterNet++ | CenterNet携手CornerNet终于杀回来了,实时高精度检测值得拥有!

技术

picture.image

picture.image

目标检测有2种主流: top-downbottom-up。最先进的方法大多属于第一类。在本文中,作者证明了 bottom-up方法与 top-down的方法具有同样的竞争能力,并且具有更高的召回率。

本文所提的方法名为 CenterNet,它将每个目标检测为一个三元组关键点( 左上角右下角中心关键点)。首先通过设计的线索对 corner keypoints进行分组,然后通过 center keypoints进一步确定目标。 corner keypoints使该方法具有检测各种尺度和形状目标的能力,而 center keypoints则避免了大量 false-positive proposals带来的混乱。

本文的方法是一种 Anchor-free目标检测器,因为它不需要定义 Anchor boxes。本文也将应用于具有不同结构的 Backbone,即 hourglass-likepyramid-like网络,分别在单分辨率特征地图和多分辨率特征地图上检测目标。

在MS-COCO数据集上,使用 Res2Net-101Swin-TransformerCenterNet分别实现了53.7%和57.1%的ap,优于所有现有的 bottom-up检测器,达到了最先进的水平。作者还设计了一个实时的 CenterNet,它在30.5帧/秒的情况下达到了43.6%的AP,实现了精度和速度之间的良好平衡。

1

简介

在当前时代,目标检测主要有两类: top-down的检测方法和 bottom-up的检测方法。人们认为 bottom-up的方法可能耗时较长,并且会引入更多的误检现象,而 top-down的方法由于其在实践中的有效性逐渐演变为主流方法。

所有 top-down的方法都将每个目标建模为一个先验点或预定义的 Anchor boxes,然后预测到边界框的相应偏移量。 top-down方法更多是将目标视为一个整体,这简化了生成边界框的后处理。然而, top-down方法通常难以感知特殊形状的物体(例如,物体的高宽比很大)。图1(a)显示了 top-down方法不能覆盖列车的情况。

picture.image

另一方面,作者发现 bottom-up的方法在定位任意几何形状的目标时可能更好,因此有更高的召回率。但是传统的 bottom-up方法也会产生很多误检,不能准确地表示目标。以最具代表性的 bottom-up方法之一 CornerNet为例,它使用一对角关键点对每个目标进行建模,实现了最先进的目标检测精度。然而,由于对全局信息的表征能力相对较弱, CornerNet的性能仍然受到限制。

也就是说,由于每个目标都是由一对 Corne构造的,该算法敏感地检测目标的边界,而不知道应该将哪些对关键点分组到目标中。因此,如图1(b)所示, CornerNet经常会生成不正确的边框,其中大部分都可以通过一些补充信息过滤掉,例如长宽比。

在分析 bottom-up方法的驱动下,作者的核心观点是,只要提高 bottom-up方法感知目标全局信息的能力, bottom-up方法将可以达到与 bottom-up方法一样具有竞争力。

在本文中提出了一种低成本但有效的解决方案,名为 CenterNet,这是一种强大的 bottom-up目标检测方法,它将每个目标检测为一个三元组关键点(左上角、右下角和中心关键点)。 CenterNet探索一个方案的中心部分,即靠近一个box的几何中心的区域,有一个额外的关键点。

作者直觉地认为,如果预测的边界框与GT框的 IoU很高,那么边界框中心区域的 center keypoints被预测为同一类的概率就很高,反之亦然。因此,在推理过程中,在 proposal作为 corner keypoints对生成后,通过检查是否有同一类的 center keypoints落在其中心区域内来确定该 proposal是否确实是一个目标。思路如图1(c)所示。

本文设计了2个框架来适应不同结构的网络,第一个框架适用于 hourglass网络,它可以在单一分辨率的特征图上检测物体。这种网络在关键点估计任务中非常流行,如 hourglass network,将其应用于更好地预测 corner keypointscenter keypoints

作者还设计了适合 pyramid-like网络的框架,在多分辨率特征图上检测目标。这带来了2个优势:

  • 较强的通用性,大多数网络都可以适配金字塔结构,如ResNet及其变体;
  • 不同尺度的目标在不同的感受野中被检测出较高的检测精度。

虽然金字塔结构在 top-down的方法中得到了广泛的应用,但据作者描述,它是第一次在 bottom-up的方法中使用。

在MS-COCO数据集上评估了提议的 CenterNet, MS-COCO数据集是最流行的大规模目标检测基准之一。 CenterNet通过 Res2Net-101Swin-Transformer分别实现了53.7和57.1的ap,大大超过了所有现有的 bottom-up检测器。作者还设计了一个实时的 CenterNet,实现了精度和速度之间的良好权衡,AP在30.5 FPS下达到43.6。CenterNet非常高效,但与其他 top-down方法的最先进性能具有一定的竞争力。

作者主要从以下几个方面改进了工作:

  1. 原来的 CenterNet仅适用于基于 HourglassBackbone网络,所有目标仅在一个单分辨率特征图进行检测。作者扩展了 CenterNet的思想,使其能够工作在具有金字塔结构的网络中,这使得 CenterNet可以在多分辨率特征图中检测目标。为此,作者也提出了新的检测关键点(包括 corner keypointscenter keypoints)以及分组 keypoints的方法。
  2. 由于对 CenterNet的进行了新的设计,作者可以尝试更多具有金字塔结构的 Backbone,如 ResNet, ResNextRes2Net。作者甚至使用 TransformerBackbone进行了实验。实验结果表明,引入金字塔结构可以使网络利用更丰富的感受野来检测目标,从而显著提高了检测精度。
  3. 作者还提出了一个 实时CenterNet,它在流行的检测器中实现了更好的精度/速度权衡。

本文的主要贡献:

  1. 提出了一种强 bottom-up的目标检测方法,命名为 CenterNet。它将每个目标检测为一个三重关键点,具有对任意几何形状的目标进行定位和感知目标内部全局信息的能力。

  2. 设计了2个框架来适应不同结构的网络,具有更强的通用性,可以适用于几乎所有的网络。

  3. 没有花里胡哨的东西,CenterNet在 bottom-up方法中实现了最先进的检测精度,并与其他 top-down方法的最先进性能相当。

  4. 通过适当降低结构复杂度, CenterNet实现了精度与速度的良好平衡。证明了 bottom-up方法是必要的,并且与 top-down方法一样具有竞争力。

2

相关工作

2.1 Top-down方法

Top-down方法首先找到代表整个目标的 proposals,然后通过对 proposals进行分类和回归,进一步确定类和目标的边界框。根据 proposals形式的不同,可以将 proposals进一步分为 anchor-basedanchor-free

1、Anchor-based方法

Anchor-based proposals,也称为 Anchors,从具有不同预定义大小、比例和形状的矩形开始。它们均匀地分布在特征图上,并在GT物体的帮助下训练返回到所需的位置。其中,一些方法更注重检测结果的质量。其中最具代表性的是 RCNN。它把目标确定的过程分为两个阶段。在第一阶段挑选出一些有意义的 proposals,并在第二阶段进一步验证。

之后,提出了大量的工作来扩展它,如SPPNet、Fast R-CNN、Faster R-CNN、Cascade R-CNN、MR-CNN、ION、OHEM、HyperNet、CRAFT、R-FCN、FPN、Libra R-CNN、Mask R-CNN、fit-nms、Grid R-CNN、TridentNet等。

其他一些方法更注重检测速度。它们通常没有 proposals验证阶段。代表性的方法有SSD、DSSD、RON、YOLOv2、RetinaNet、RefineDet、AlignDet、ATSS、M2Det、GFL、FreeAnchor、FSAF等。

2、Anchor-free方法

尽管 Anchors的应用取得了巨大成功,他们依然遇到了许多缺点,例如,大量的 Anchors往往需要确保与GT框具有足够高IoU,同时每个 Anchors box的大小和长宽比都需要手工设计。因此,有研究者提出了非常简洁的 Anchor-free proposalsAnchor-free proposals将目标表示为目标中的点。 Anchor-free proposals的关键是准确地预测相对稀疏点的标签和点到目标边界的距离。典型的方法有 FCOS系列Objects as Points系列FoveaBox系列SAPD系列RepPoints系列等。

2.2 Bottom-up方法

Bottom-up方法检测目标的各个部分,而不是将目标视为一个整体。随后,属于同一目标的各个部分将通过一些可训练的后处理算法组合在一起。 Bottom-up方法可以追溯到前深度学习时代,Felzenszwalb等人使用多尺度可变形部件模型的混合物来表示对象,称为 DPM

最近,关键点估计启发了目标检测,通过检测和分组关键点来识别对象,例如, CornerNetCornerNet-lite将目标检测为成对的角,而ExtremeNet则检测一个目标的4个极值点(最上、最左、最下、最右)。

Bottom-up方法不需要 Anchors,属于 Anchor-free检测器的一种。 Bottom-up方法大多基于最先进的关键点估计框架,这也带来了一些缺点,如过度依赖高分辨率的热力图,推断速度太慢等。

3

本文方法

3.1 Baseline与动机

基于以上部分的讨论,作者认为 Bottom-up方法在定位任意几何形状的对象方面有更好的潜力,同时召回率更高。这是因为大多数 Top-down方法是基于 Anchors工作的,这是非常经验的(例如,为了提高效率,只考虑具有常见尺寸和长宽比的 Anchors),它们的形状和位置是相对固定的,尽管随后的边界框回归过程可能会略微改变它们的状态。因此,检测器往往会错过形状奇特的物体。

picture.image 表1

图1(a)是一个典型的例子。作者还提供了一个定量研究,如表1所示。在MS-COCO验证数据集上对三种具有代表性的方法以及本文的工作进行了评估。表1显示, Top-down方法的召回率明显低于 Bottom-up方法,特别是对于具有特殊几何形状的对象,例如,规模大于像素或纵横比大于5:1。

这并不奇怪,因为一方面,对于Faster RCNN来说,没有预定义的 Anchors可以匹配这些对象。另一方面,对于FCOS,一种典型的 Anchor-free Top-down方法,很难精确地回归从边界到 proposals的长距离。由于 Bottom-up方法通常检测对象的各个部分,并将它们分组到对象中,因此它们在一定程度上避免了这个问题。

此外,作者还给出所提出的 CenterNet的结果,该结果表明,CenterNet继承了 Bottom-up方法在灵活定位对象方面的优点,特别是在特殊几何形状的情况下。

尽管 Bottom-up方法具有很高的召回率,但它们经常产生许多误检。以 CornerNet为例,它生成两个热力图来检测角: left-top corners heatmapbottom-right corners heatmapheatmap表示不同类别的关键点的位置,并为每个关键点分配一个置信度。

此外, CornerNet还预测每个 corner嵌入偏移量(如图2所示)。这些 嵌入用于识别2个 corner是否来自同一个对象。 偏移量学会从 heatmap映射到输入图像的 corner。生成对象边框时,根据其得分,分别从 heatmap中选择 left-top cornersbottom-right corners。然后,计算一对 corner的嵌入向量的距离,以确定成对的 corner是否属于同一对象。如果距离小于阈值,则生成一个对象边界框。边界框被分配一个置信度分数,它等于 corner对的平均分数。

picture.image 表2

在表2中,作者对 CornerNet进行了更深入的分析。计算了MS-COCO验证数据集上 CornerNet的AF(average false discovery,AF=1−AP )。结果表明,即使在较低的IoU阈值下,错误的边界框也占很大比例,例如,在IoU=0.05时, CornerNet获得32.7%的AF。这意味着平均每100个物体预测框中有32.7个IoU低于0.05。小的不正确的边界框更多,达到60.3%的AF。其中一个可能的原因是, CornerNet无法查看边界框内的区域。

为了让 CornerNet感知到边界框中的视觉模式,一个可能的解决方案是将 CornerNet改造成一个两阶段检测器,它使用 RoI pool来查看边界框中的视觉模式。然而,众所周知,这种模式的计算成本很高。

在本文中提出了一个名为 CenterNet的高效替代方案来探索每个边界框内的视觉模式。为了检测一个对象, CenterNet使用3个关键点,而不是1对关键点。通过这样做, CenterNet只关注中心信息,成本最小,但部分继承了 RoI pool的功能。

此外,设计了2个框架,分别在 Single-resolution特征图和多分辨率特征图上检测目标。将前者应用于关键点估计网络,希望能更好地检测出 corner keypointscenter keypoints。而后者由于具有更好的通用性和更丰富的检测感受野而在目标检测中更受欢迎。这两个框架仅仅是在设计细节上略有不同。

3.2 Object Detection as Keypoint Triplets

picture.image

1、Single-resolution检测框架

受位姿估计的启发,将常用的位姿估计网络用于更好地检测 corner keypointscenter keypoints,其中大多数都是在单分辨率特征图上检测关键点,如 hourglass network

picture.image 图2

整个网络架构如图2所示。用一个 corner keypoints和一对 center keypoints来表示每个对象。在此基础上,嵌入了 corner keypoints heatmap,并预测了 corner keypoints的偏移量。然后,使用在 CornerNet中提出的方法生成 top-k边界框。但是,为了有效地过滤出不正确的边框,利用检测到的 center keypoints,采用以下步骤:

  1. 根据得分选取top-k的 center keypoints;

  2. 利用相应的偏移量将这些 center keypoints映射到输入图像;

  3. 为每个边框定义一个中心区域,并检查中心区域是否包含 center keypoints。注意,选中的 center keypoints的类标签应该与边框的类标签相同;

  4. 如果在中心区域检测到一个 center keypoints,将保留边界框。边界框的得分将替换为左上角、右下角和 center keypoints三个点的平均得分。如果在其中心区域没有检测到 center keypoints,则边界框将被移除。

2、Multi-resolution检测框架

picture.image 图3

整个 Multi-resolution检测框架如图3所示。它从一个 Backbone(如 ResNet, ResNeXt等)开始,从输入图像中提取特征。从 Backbone中选择 C3-C5特征映射作为特征金字塔结构(FPN)的输入。然后FPN输出 P3-P7 feature map作为最终的预测层。

在每个预测层中,分别使用 heatmap回归来预测关键点。在基于 heatmap的预测中,预测了3个光二元 heatmap,用于预测 corner keypointscenter keypointsheatmap的分辨率与预测层相同,因此,为每个关键点预测一个额外的偏移量,以学习将关键点从 heatmap映射到输入图像。

在基于回归的预测中,为了对左上角和右下角进行解耦,将GT框沿几何中心划分为4个GT框,并分别选取左上角和右下角的GT框来监督回归。以左上角框的回归为例,在左上角次GT框中选择了一些特征点,每个选择的特征点预测2个向量,分别指向顶部 corner keypointscenter keypoints

此外,还给每个选定的特征点分配一个类标签来监督分类。采用常见的 Anchor-Free检测方法训练网络预测子边界框(如FCOS和RepPoints)。

在推理过程中,回归向量作为线索,在相应的 heatmap中找到最近的关键点,以细化关键点的位置。接下来,每个有效的关键点对定义一个边界框。这里的有效是指两个关键点属于同一个类(即对应的同一类的左上角和右下角的子边界框),并且左上角点的x坐标和y坐标分别小于右下角点的x坐标和y坐标。

最后,为每个边界框定义一个中心区域,并检查该中心区域是否包含2个预测的 center keypoints。如果在其中心区域最多检测到一个中心关键点,则边界框将被移除,边界框得分将被替换为各得分的平均值(即上角、右下角和 center keypoints得分)。

3、中心区域的定义

边界框中中心区域的大小会影响检测结果。例如,小的中心区域导致小边界框的查全率较低,而大的中心区域导致大边界框的精度较低。因此,作者提出了一个尺度感知的中心区域来自适应地拟合边界框的大小。尺度感知的中心区域倾向于为一个小的边界框产生一个相对较大的中心区域,对于一个大的边界框产生一个相对较小的中心区域。

设和表示的左上角的坐标,和表示的右下角的坐标。定义一个中心区域。设和精确表示的左上角的坐标,和表示的右下角的坐标。那么、、、、和应该满足以下关系:

picture.image

其中n为奇数,决定了中心区域的尺度。本文对小于和大于150的边界框的尺度,n分别设置为3和5。

picture.image 图4

图4分别显示了n=3和n=5时的两个中心区域。根据等式可以确定一个尺度感知的中心区域,然后检查该中心区域是否包含中心关键点。

3.3 丰富的center和corner的信息

center keypointscorner都与目标有严格的几何关系,但包含有限的对象的视觉模式。这里以一种完全监督的方式训练网络来学习几何关系和有限的视觉特征,从而定位关键点。如果为 center keypointscorner引入更多的视觉模式,它们将能够被更好地检测出来。

1、Center pooling

物体的几何中心并不总是传达非常容易识别的视觉模式(例如,人的头部包含强烈的视觉模式,但中心重点往往是在人体的中间)。为了解决这个问题,作者提出 Center pooling来捕捉更丰富、更容易识别的视觉模式。

picture.image 图5 Center pooling的原理

Center pooling的详细过程如下:

Backbone输出一个feature map,为了判断feature map中的一个像素是否为 center keypoints,需要在水平和垂直两个方向上都找到最大值,并将这些值相加。通过这样做, Center pooling可以提高中心关键点的检测。

2、Cascade corner pooling

corner通常是物体的外部,缺乏局部外观特征。 CornerNet使用 Corner pooling来解决这个问题。 Corner pooling原理如图5(b)所示。 Corner pooling的目的是在边界方向上找到最大值来确定 corner。然而,这使得 corner对边很敏感。为了解决这个问题,需要让 corner从对象的中心区域提取特征。

picture.image 图6 Cascade corner pooling原理

图6(a)显示了 Center pooling模块的结构。要在特定的方向(如水平方向)取最大值,只需要依次连接左、右池化即可。

图6(b)显示了 Cascade corner pooling模块的结构,其中白色矩形表示3×3卷积之后是批归一化。与 CornerNetCorner pooling相比,在 top-corner池化之前增加了一个 left-corner池化

Cascade corner pooling的详细过程如下:

首先沿边界查找边界最大值,然后沿边界最大值的位置查找框内查找内部最大值;最后,将两个最大值相加。通过 Cascade corner poolingcorner既获得了物体的边界信息,又获得了物体的视觉模式。

3.4 损失函数

1、Single-resolution检测框架损失函数

picture.image

其中:

  • 和分别为Focal Loss,用于训练网络检测角点和中心关键点。
  • 是corner的pull损失,用于最小化属于同一对象的嵌入向量之间的距离。
  • 是corner的push损失,用于最大化属于不同对象的嵌入向量的距离。
  • 和为l1-loss,分别用于训练网络预测角点和中心关键点的偏移量。
  • α、β和γ表示相应损失的权重,分别设为0.1、0.1和1。

、、、都是在CornerNet中定义。

2、Multi-resolution检测框架损失函数

picture.image

其中:

  • 和:表示Focal loss,分别用于训练网络对左上角和右下角的子边界框进行分类。
  • 和:表示GIoU损失,分别用于训练网络向左上角和右下的子边界框回归。
  • 、和:表示对应损失的权重,分别设为2、0.25和1.0。

4

实验

4.1 消融实验

1、Central region exploration

picture.image

如表7第3行所示,将AP提高了2.3%(从37.6%到39.9%)。然而,小目标的改进(4.6%)比其他对象尺度更显著。对于大目标的改进几乎可以忽略不计(从52.2%到52.3%)。这并不奇怪,因为不正确的小边界框的数量更大,它们通常不包含对象的中心关键点,这更有可能受益于通过中心关键点过滤。

2、Center pooling

表7中的第4行显示了 Center pooling通过以下方式改进AP0.9%(由39.9%至40.8%)。值得注意的是,在 Center pooling的帮助下,将大目标的AP提高了1.4%(52.2%到53.6%),这远远高于使用传统卷积的改进(即1.4% vs. 0.1%)。

结果表明, Center pooling能够有效地检测出对象的中心关键点,特别是大目标。因为 Center pooling可以提取更丰富的内部视觉模式,更大目标包含更容易访问的内部视觉模式。

picture.image 图7(e)

图7(e)显示了在没有/使用 Center pooling的情况下检测中心关键点的结果。可以看到,传统的卷积方法无法定位到奶牛的中心关键点,但是通过 Center pooling,可以成功定位到中心关键点。

3、Cascade corner pooling

表7中的第二行显示了在CornerNet511-52基础上测试的结果。 Cascade corner pooling使AP提高了0.7%(从37.6%提高到38.3%)。最后一行是基于CenterNet511-52进行测试的结果,它使AP提高了0.5%(从40.8%提高到41.3%)。

第二行的结果显示,大目标的AP几乎没有变化(即,52.2% vs. 52.2%),但AR提高了1.8%(从74.0%到75.8%)。这表明, Cascade corner pooling有助于在大目标中获得更多的内部视觉模式,但过于丰富的视觉模式可能会干扰其对边界信息的感知,导致许多不准确的边界框。通过使用CenterNet,有效地抑制了不准确的bbox,使大目标的AP提高了2.2%(从53.6%提高到55.8%)。

picture.image 图7(f)

图7(f)显示了采用角池或 Cascade corner pooling检测角的结果。可以看到, Cascade corner pooling可以成功定位左侧猫的一对角,而 Corner pooling则不能。

4.2 多分辨率检测提高了精度

如表3所示,本文提出的MR-CenterNet进一步提高了目标检测精度。例如,在相同的网络深度(Hourglass-52 vs. ResNet-50)下,MR-CenterNet将目标的AP提高了4.8%。由于MR-CenterNet框架的通用性强,能够为CenterNet应用更强的Backbone。

picture.image

表4显示了2次实验在MS COCO验证数据集上的检测结果,MR-CenterNet具有多分辨率检测层,准确率更高。这是因为多分辨率检测结构为检测不同尺度的目标提供了更丰富的感受野,有助于提高检测精度。

4.3 实时目标检测

picture.image

如表5所示。CenterNet-RT实现了精度和速度之间的良好平衡,在其他典型方法中仍然具有竞争力。CenterNet(即SR-CenterNet)执行速度较慢,推断速度小于7fps。本文采用金字塔结构的CenterNet对目标进行多分辨率特征层检测,提高了检测速度和精度。

使用ResNet-50,MR-CenterNet在14.5 FPS下实现45.7% AP。进一步在MR-CenterNet的基础上提出了CenterNet-RT,实现了在30.5FPS下43.2% AP的结果。这种准确性与SR-CenterNet(HG-104)不相上下,但推理速度比SR-CenterNet快约6倍。

4.5 SOTA对比

picture.image

picture.image

5

参考

[1].CenterNet++ for Object Detection

6

推荐阅读

YOLOv5永不缺席 | YOLO-Pose带来实时性高且易部署的姿态估计模型!!!

超快语义分割 | PP-LiteSeg集速度快、精度高、易部署等优点于一身,必会模型!!!

Transformer崛起| TopFormer打造Arm端实时分割与检测模型,完美超越MobileNet!

长按扫描下方二维码添加小助手并加入交流群, 群里博士大佬云集, 每日讨论话题有目标检测、语义分 割、 超分辨率、模型部署、数学基础知识、算法面试题分享的等等内容,当然也少不了搬砖人的扯犊子

长按扫描下方二维码添加小助手。

可以一起讨论遇到的问题

picture.image

声明:转载请说明出处

扫描下方二维码关注【 集智书童 】公众号,获取更多实践项目源码和论文解读,非常期待你我的相遇,让我们以梦为马,砥砺前行!

picture.image

picture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
云原生可观测性技术的落地实践
云原生技术和理念在近几年成为了备受关注的话题。应用通过云原生改造,变得更动态、弹性,可以更好地利用云的弹性能力。但是动态、弹性的环境也给应用以及基础设施的观测带来了更大的挑战。本次分享主要介绍了云原生社区中可观测性相关的技术和工具,以及如何使用这些工具来完成对云原生环境的观测。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论