CenterNet论文学习

CenterNet的学习

Abstract

在目标检测中,基于关键点的方法通常会遇到大量不正确的对象边界框,这可以说是由于缺乏对裁剪区域的额外观察。
本文提出了一种有效的解决方案,以最小的成本探索每个裁剪区域内的视觉模式(怎样做的)

CenterNet在CornerNet的单阶段关键点检测器上构建了框架。 将每个目标检测看作是一个三元组,而不是一对关键点,这提高了精度和召回率。

设计了两个定制模块,分别称为cascade corner pooling和center pooling,他们分别起到丰富左上角和右下角收集信息并在中心区域提供更多可识别信息的作用。

5.Conclusions

贡献:
为单阶段检测器配备了两阶段方法的能力,并添加了一个有效的鉴别器
未来:
为中心关键点添加额外分支的想法可以潜在地推广到其他现有的单阶段方法(例如SSD),同时可以使用一些先进的训练策略来获得更好的表现。

1.Introduction

当前时代,最流行的流程图之一是anchor-base,它设置了一组由预定义大小的矩形,并在ground-truth对象的帮助下将anchor回归到它们所需的位置。
这些基于锚框的方法需要大量的锚框来确保与ground-truth对象的足够高的IOU率,并且每个锚框的尺寸和纵横比需要手动设置。

事实上,anchor通常不与ground-truth box对齐,这不利于边界框分类任务。

为了克服anchor-base方法的缺陷,提出了一种基于关键点的目标检测方法------CornerNet。它用一对角点来表示每个物体。绕过了锚框的方法,达到了最先进的单阶段目标检测的精度。

然而,CornerNet对目标全局信息的引用能力相对较弱,限制了它的性能。也就是说,由于每个物体都是由一组对角构成的,所以算法对物体的边界检测很敏感,同时不知道应该将哪一对关键点分组到目标中。如图一所示,他经常生成一些不正确的边界框,其中大多数很容易地用补充信息(例如纵横比)过滤掉。

第一行中,可视化了CornerNet的前一百个边界框
ground-truth和预测目标分别用蓝色和红色标记
第二行,展示了可以通过检查中心部分来确定正确的预测

为了解决这个问题,作者为CornerNet配备了感知每个提议区域内的视觉模式的能力,这样它就可以自己识别每个边界框的正确性。
作者提出了一个名为CenterNet的低成本有效的解决方案,该解决方案探索了提案的中心部分,即靠近几何中心的区域,并增加了一个关键点。
如果预测的边界框与ground-truth具有高IOU,那么中心区域中的中心关键点被预测为同一类的概率很高,反之则亦然。
因此,在推理过程中,在proposal被生成一对角关键点之后,我们通过检查是否有同一类的中心关键点落在其中心区域来确定该proposal是否确定是个对象。
其思想是使用三元组,而不是一对角关键点来表示每个对象。

为了更好的检测中心关键点和角关键点,我们分别提出了两种丰富中心和角信息的策略(怎样做的)
第一种策略称为center pooling,用于分支中预测中心关键点。center pooling有助于中心关键点在对象中获得更可识别的视觉模式,从而更容易感知proposal的中心部分。
第二种策略被称为cascade corner pooling它能使原始的corner pooling模块具备感知内部信息的能力。我们通过在用于预测角点的特征图上获得对象在边界和内部方向上的最大求和响应来实现这一点。
经验上,我们验证了这种双向池化方法更稳定,即对特征级噪声更具鲁棒性,这有助于提高精度和召回率。

2.Related Work

总结前人工作
两阶段
将目标检测任务分为两个阶段:提取ROI,然后对ROI进行分类和回归。
R-CNN[11]使用选择性搜索方法[42]来定位输入图像中的ROI,并使用基于DCN的区域分类器对ROI进行独立分类。SPPNet[13]和Fast RCNN[10]通过从特征图中提取ROI来改进R-CNN。通过引入RPN(区域提案网络),允许对更快的RCNN[33]进行端到端训练。RPN可以通过回归锚框来生成ROI。后来,锚盒被广泛用于对象检测任务。Mask RCNN[12]在Faster RCNN上添加了一个掩码预测分支,该分支可以检测对象并同时预测其掩码。
R-FCN[6]将完全连接的层替换为位置敏感的分数图,以更好地检测对象。
Cascade R-CNN[4]通过训练具有增加IoU阈值的检测器序列来解决训练时的过拟合和推理时的质量失配问题。提出了基于关键点的对象检测方法[40,28],以避免使用锚盒和边界盒回归的缺点。针对对象检测中的不同问题,提出了其他有意义的工作,例如,[47,21]关注架构设计,[1,9,36,44]关注上下文关系,[22,3]关注多尺度统一。

单阶段
去除RoI提取过程,并直接对候选锚框进行分类和回归。
YOLO[31]使用较少的锚框(将输入图像划分为S×S网格)来进行回归和分类。YOLOv2[32]通过使用更多的锚框和一种新的边界框回归方法来提高性能。SSD[27]将锚框密集地放置在输入图像上,并使用来自不同卷积层的特征对锚框进行回归和分类。DSSD[8]在SSD中引入了一个去卷积模块,以结合低级别和高级别特征。而R-SSD[17]在不同的特征层中使用池化和去卷积操作来组合低级和高级特征。RON[19]提出了一种反向连接和在有效提取多尺度特征之前的对象性。RefineDet[45]对锚盒的位置和大小进行了两次细化,继承了一阶段和两阶段方法的优点。CornerNet[20]是另一种基于关键点的方法,它使用一对角直接检测对象。尽管CornerNet取得了很高的性能,但它仍有更大的改进空间。

3.Our Approach

3.1Baseline and Motivation

使用CornerNet作为基线
为了检测corners,CornerNet生成两个热图:左上角的热图和右下角的热图。
热图表示不同类别的关键点的位置,并为每个关键点分配置信度分数。此外,它还预测了每个角的embedding和一组偏移量。
embedding用于识别两个角是否来自同一物体。偏移量学习将热图中的角重新映射输入图像。
生成目标的anchor时,根据热图的得分,分别从热图中选择top-k的左上角和右下角。然后计算对角的嵌入向量的距离,判断成对角是否属于同一物体。如果距离小于阈值,则生成目标的anchor box。边界框被分配了一个置信度分数,它等于角对的平均分数。

在表1中,我们在MS-COCO验证数据集上计算CornerNet的FD1(错误发现)率,定义为错误边界框的比例。
在这里插入图片描述
在这里插入图片描述
定量结果表明,即使在低IOU阈值下,错误的边界框也占很大比例,例如,CornerNet在IOU=0.05时获得32.7%的FD比例。这意味着,平均每100个目标检测框中,有32.7个的IOU低于0.05。小小目标的FD更高。其中一个原因可能是CornerNet无法查看边界框内的区域。为了使CornerNet感知边界框中的视觉模式,一个潜在的解决方案就是将CornerNet调整为两阶段的检测器,该检测器使用ROI pooling来查看边界框的视觉模式。然而这样计算代价是非常高的。

本文中,我们提出了一个高效的替代方案,称为CenterNet,以探索每个边界框内的视觉模式。对于检测对象,我们的方法使用三个关键点,而不是一对关键点。通过这样做,我们的方法仍然是一个单阶段检测器,部分继承了ROI pooling的功能。我们的方法只关注于中心信息,我们的代价是最小的。同时,通过center pooling和cascade corner pooling,进一步将对象内部的视觉模式引入关键点检测过程。

3.2Object Detection as Keypoint Triplets

整体框架如图二:
在这里插入图片描述
图2:卷积骨干网络采用cascade corner pooling和center pooliing分别输出两个角热图和一个中心关键点热图。与CornerNet类似,利用一对检测到的角和相似的嵌入来检测潜在的边界框。利用检测到的中心关键点来确定最终的边界框。

我们用一个中心关键点和一对角来表示每个目标。具体来说,我们在CornerNet的基础上为中心关键点嵌入热图,并预测中心关键点的偏移。然后,我们使用CornerNet中提出的方法来生成 top-k个边界框。然而,为了有效地过滤掉不正确的边界框,我们利用检测到的中心关键点,并采用以下程序:(1)根据得分选择前k个中心关键点;(2)使用相应的偏移来将这些中心关键点重新映射到输入图像;(3)为每个边界框定义一个中心区域,并检查该中心区域是否包含中心关键点。请注意,选中的中心关键点的类标签应与边界框的类标签相同;(4)如果在中心区域检测到中心关键点,我们将保留边界框。边界框的分数将被三个点的平均分数取代,即左上角、右下角和中心关键点。如果在其中心区域中未检测到中心关键点,则边界框将被删除。
边界框中中心区域的大小会影响检测结果。例如,较小的中心区域导致边界框的召回率较低,而较大的中心区域则导致大边界框的精度较低。因此,我们提出了一个尺度感知的中心区域来自适应地拟合边界框的大小。比例感知中心区域倾向于小边界框生成相对较大的中心区域,而为大边界框生成比较小的中心区域。假设我们想确定是否需要保留一个边界框i。设TLx和TLy表示i左上角的坐标,BRx和BRy表示右下角的坐标。定义一个中心区域j。设CTLx和CTLy表示j左上角的坐标,CBRx和CBRy表示j右下角的坐标。则应满足下列关系:
在这里插入图片描述
其中n为奇数,决定了中心区域j的尺度。本文将小于150的框的尺度n设为3,大于150的n设为5。图3分别显示了n=3和n=5的两个中心区域。根据式(1),我们可以确定一个感知尺度的中心区域,然后我们检查中心区域是否包含中心关键点。
在这里插入图片描述

3.3Enriching Center and Corner Information

Center pooling.目标的几何中心不一定传达出非常可识别的视觉模式(例如,人的头部包含强烈的视觉模式,但中心关键点通常在人体的中间)。为了解决这个问题,我们建议使用center pooling来捕获更丰富更可识别的视觉模式。图4(a)显示了center pooling的原理。center pooling的具体过程如下:骨干网络输出一个特征图,为了确定特征图中的一个像素是否是中心关键点,我们需要在其水平方向和垂直方向上找到最大值,并将它们相加。通过这样做,center pooling有助于更好地检测中心关键点。

Cascade corner pooling.角关键点通常在目标的外部,而目标缺少局部外观特征。CornerNet使用corner pooling来解决这个问题。corner pooling的原理图如图4(b)所示。corner pooling旨在找到边界方向上的最大值,从而确定角点。但是,它会使角对边缘区域敏感。为了解决这个问题,我们需要让角点“看到”物体的视觉模式。cascade corner pooling的原理如图4©所示。它首先沿着边界寻找边界最大值,然后沿着边界最大值的位置向内寻找内部最大值,最后将两个最大值相加。通过这样做,角获得了物体的边界信息和视觉模式。
在这里插入图片描述
图4:(a)Center pooling在水平方向和垂直方向上均取最大值。(b)Coner pooling只取边界方向上的最大值。©Cascade corner pooling在物体边界方向和内部方向均取最大值。
将不同方向的corner pooling结合起来,可以很容易地实现center pooling和cascade pooling。图5(a)显示了corner pooling模块的结构。要在一个方向上取最大值,例如水平方向,我们只需要将左池和右池串联起来。图5(b)显示了cascade corner pooling模块的结构。相对于CornerNet中的top corner pooling,我们在top corner pooling之前增加了一个left corner pooling。
在这里插入图片描述
图5:center pooling(a)和cascade top corner pooling模块(b)的结构。我们通过结合不同方向地corner pooling来实现corner pooling和cascade corner pooling。

3.4Training and Inference

Training.我们的方法在Pytorch中实现,并且网络是从头开始训练的。输入图像的分辨率为511X511,从而产生大小为128X128的热图。我们使[20]中提出的数据扩充策略来训练鲁棒模型。Adam[18]用于优化训练损失:
在这里插入图片描述
Inference.根据[20],对于单尺度的测试,我们将原始分辨率的原始图像和水平反转图像输入到网络中。而对于多尺度测试,我们输入分辨率为0.6、1、1.2、1.5和1.8的原始图像和水平反转图像。我们从热图中选择前70个中心关键点,前70个左上角的角 和前70个右下角的角来检测边框。我们将水平翻转图像中检测到的边界框进行翻转,并将其混合到原始的边界框中。Soft-nms用于移除冗余的框。最后我们根据边界框的得分选择前100个边界框作为最终的检测结果。

4.Experiments

4.1Dataset,Metrics and Baseline

我们在MS-COCO数据集上评估我们的方法。它包含80个类别和150多万个对象实例。大量的小对象使它成为一个非常具有挑战性的数据集。我们使用’trainval35k’集合在测试开发集中进行训练和测试结果。我们在验证集中使用另外的5k图像进行消融研究和可视化实验。
MS-COCO数据集使用AP和AR度量来表征检测器的性能。
AP表示平均精度,它是在10个不同的IOU阈值和所有类别上计算的。它被认为是MS-COCO数据集上最重要的指标。
AR表示最大召回率,它是在每个图像的固定检测次数上计算的,并在所有类别和10个不同的IOU阈值上求平均值。
此外,AP和AR可以用于评估不同对象尺度下的性能,包括小对象。
我们的基线是CornerNet。我们使用52层和104层的堆叠沙漏网络作为主干,后者有两个沙漏模块,而前者只有一个沙漏模块。
对沙漏式的架构的所有修改都被保留了下来。

4.2Comparisons with State-of-the-art Detectors

表2显示了与MS-COCO测试开发集中最先进的检测器的比较
在这里插入图片描述
同时,可以看出,最大的贡献值来自于小对象。例如,CenterNet511-52将小对象的AP提高了5.5%(单尺度)和6.4%(多尺度)。
骨干Hourglass-104单尺度和多尺度分别提高了6.2%和8.1%。这样做的好处是在于由中心关键点建模的中心信息:错误包围框的尺度越小,在其中心区域检测到中心关键点的概率就越低。图6(a)和图6(b)显示了一些定性比较,证明了CenterNet在减小的错误包围框方面的有效性。
CenterNet在减少中型和大型不正确的框方面也有很大的改进。
如表2所示,CenterNet511-104将单尺度测试AP分别提高了4.7%和3.5%。图6©和图6(d)显示了减小中型和大型错误框的一些定性比较。值得注意的是,AR也得到了显著的改进,在多尺度测试中获得了最佳性能。这是因为我们的方法去除了大量不正确的边界框,这相当于提高了那些位置准确但得分较低的边界框的置信度。
在这里插入图片描述
我们在图7中给出了一些定性检测结果。
在这里插入图片描述

4.3Incorrect Bounding Box Reduction

、AP指标反映了一个网络可以预测多少高质量的对象边界框(通常是IOU>=0.5),但不能直接反应有多少不正确的对象边界框(通常是IOU<<0.5)生成。FD率是一个合适的度量,它反映了不正确的框的比例表3显示了CornerNet和CenterNet的FD率。
即使在IOU=0.05阈值下,CornerNet也会产生很多错误的边界框。
在这里插入图片描述

4.4Inference Speed

我们的CenterNet511-52平均需要270毫秒来处理每张图像,这笔CornerNet511-104更快更准确。

4.5Ablation Study

我们的工作主要包括中心区域探索、中心池化和级联角池化三个部分。为了分析每个单独成分的贡献,这里给出了一个消融研究。基线为"CornerNet511-52"。我们将三个小组件逐个添加到基线中,并遵循4.1节中详细介绍的默认参数设置。结果如表4所示。
在这里插入图片描述
Central region exploration.为了理解中心区域探索的重要性,我们在基线上添加了一个中心热图分支,并使用三组关键点来检测边界框。对于中心关键点的检测,我们只使用传统的卷积。如表4的第三行所示,我们将AP提高了2.3%。然而,我们发现小对象的改善比其他对象尺度更能明显。对于大型对象的改进几乎可以忽略不计。这并不奇怪,因为从概率的角度来看,小物体的中心关键点比大物体的中心点更容易定位。
Center pooling.为了演示所提议的中心池有效性,我们将中心池模块添加到网络中(参见表中的CTP)。表4的第四行显示,中心池将AP提高了0.9%。值得注意的是,在中心池的帮助下,我们将大型对象的AP提升了1.4%,这远远高于使用传统卷积的改进。结果表明,我们的中心池在检测对象的中心关键点方面是有效的,特别是对于大型对象。我们的解释是,中心池可以提取更丰富的内部视觉模式,较大的对象包含更容易访问的内部视觉模式。图6(e)显示了在没有使用和使用中心池时检中心关键点的结果。我们可以就看到,传统的卷积无法找到奶牛的中心关键点,如果使用中心池化,它成功地找到了中心关键点。
Cascade corner pooling.我们将corner pooling替换为cascade corner pooling来检测角(参见表中的CCP)。表4中的第二行显示了我们基于CornerNet511-52测试的结果。我们发现级联角池化将AP提高了0.7%。最后一行显示了我们在CenterNet511-52的基础上测试的结果,它将AP提高了0.5%。第二行显示,大型对象的AP几乎没有变化,但AR提高了0.8%。这说明级联角池化由于大型物体具有丰富的内部视觉模式,可以"看到"物体,但是过于丰富的视觉模式可能会干扰到其边界信息的感知,导致出现许多不准确的边界框。在配备了我们的CenterNet后,不准确的框被有效地抑制了,这使得大物体的AP提高了2.2%。图6(f)显示了采用角池法或级联角池化法检测角的结果。我们可以看到,级联角池可以成功地为左边的猫找到一对角,而corner pooling则不能。

4.6Error Analysis

每个框内的视觉模式的探索取决于中心关键点。换句话说,一旦漏掉了一个中心关键点,提议的CenterNet就会漏掉边界框内的视觉模式。为了了解中心关键点的重要性,我们将预测的中心关键点替换为真实值,并在MS-COCO验证数据集上评估性能。
表5显示,使用ground-truth中心关键点分别将AP从CenterNet511-52的41.3%提高到56.5%和CenterNet511-104的44.8%提高到58.1%。CenterNet511-52和CentreNet511-104分别提高了15.5%、16.5%和14.3%的小、中、大、对象AP性能。这说明中心关键点的检测远远不是瓶颈。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值