CenterNet 2 Probabilistic two-stage detection
摘要
code:https://github.com/xingyizhou/CenterNet2
paper:https://arxiv.org/pdf/2103.07461v1.pdf
CenterNet2的代码分析:detection2学习|以CenterNet2训练流程分析
paper名为Probabilistic two-stage detection,原文主要贡献在于合理解释了一阶段、二阶段目标检测中的概率优化,指出网络优化是对预测得分(即可能是这个物体的概率)优化,希望最大化这个概率。一阶段是符合这一基本主线的,但是二阶段中的第一个阶段——生成proposals的RPN,的目标却只是想要最大化召回率而不是最大化潜在目标的得分(也即物体置信度,这个区域可能是物体的概率),这使得two-stage的优化不是最佳。于是作者基于概率解释提出二阶段的目标检测框架,使得检测器在整个阶段都符合概率解释,这样的检测器同时具有速度和精度的优点。
该工作的核心有两点:
第一是在第一阶段改用更强调概率优化而不是最大化召回率的stronger一阶段检测器来生成proposals,这样生成的proposals数量少,但是质量高,整体召回率实际上也比RPN高;由于这个阶段只需要做2分类,将该部分的head精简后的模型容量也够,即让两个分支共享卷积权重,从而减少推断时间。
第二是将一阶段的得分合并到第二阶段的得分作为最终得分。
基于这样的思想,作者采用了若干SOTA的一阶段检测器来替代原二阶段中的RPN,并结合了Faster R-CNN和Cascade R-CNN的第二阶段,然后做一些改动得到系列的概率解释的二阶段检测器,而其中Cascade R-CNN-CenterNet版本的表现最好,于是作者将此工作命名为CenterNet2。CenterNet2在COCO上达到单尺度56.4 mAP的性能,超出了目前已有的研究成果。而使用一个轻量的backbone,我们的检测器可以在COCO上达到49.2mAP、33FPS,比YOLOv4更强。
该工作的出现,使得一阶段和二阶段的工作可以相互转化,使得检测器能够同时具有一阶段检测器的速度和二阶段检测器的精度。
介绍
本文开发了一个两阶段目标检测的概率性解释。在标准两阶段检测器训练的基础上,提出一个简单的改进:对两个阶段联合概率目标的下界进行优化。通过概率性的处理,建议对两阶段检测器进行改进,具体的,第一阶段需要推断出校准的目标似然。目前两阶段检测器中的RPN是为了最大化proposal的召回而设计的,因此其不具备产生准确似然的能力。不过,功能完备的一阶段检测器却可以。
我们在SOTA一阶段检测器基础上,构造了一个概率性的两阶段检测器。在第一阶段,我们的模型使用一阶段检测器提取区域级别的特征并对其分类;在第二阶段使用Faster RCNN或者一个级联分类器。这两个阶段一起训练,最大化GT目标的对数似然。在推理时,我们的检测器使用最终的对数似然作为检测得分。
一个概率性的两阶段检测器,比起它的组成部分(一阶段检测器、二阶段检测器)更快、准确率更高。相比两阶段anchor-based检测器,我们的第一阶段更加准确,且允许检测器在ROI head上使用更少的proposal(256 vs 1K),这使得我们的检测器整体上更准确、更快。相比于一阶段检测器,我们的第一阶段使用了一个更精简的head设计,并只有一个输出类别用于密集图像级预测。由于类别个数急剧减少所带来的的加速,远远超出了由于增加第二阶段所带来的成本。我们第二阶段利用了多年来两阶段检测的进展,与一阶段baseline相比,检测准确率显著提升。它也能轻松扩展到大词汇量(类别)检测上。
在COCO、LVIS、Objects 365上的实验表明,我们的概率性两阶段框架能够使Cascade RCNN的mAP提升1-3个点,且速度有所提升。使用以标准ResNeXt-101-DCN为backbone的CenterNet作为第一阶段,可以在COCO上达到50.2mAP。使用强大的Res2Net-101-DCN-BiFPN作为backbone并进行自训练,可以在单尺度测试上达到56.4mAP,这个结果超出了目前所有的公开成果。使用小的DLA-BiFPN作为backbone并降低输入分辨率,使用Titan Xp显卡在COCO上可以达到49.2mAP、33FPS,这个结果优于YOLOv4模型 (43.5 mAP at 33 fps)。
所提出的基于概率性解释的两阶段检测器示意如图1所示:

2. 相关工作
一阶段检测器联合了预测输出类别和目标定位。一阶段检测器达到有竞争力的性能,主要依赖于其使用了比两阶段检测器更重量级的独立分类、回归分支。事实上,如果词汇量(如目标类别集)很大(如LVIS或者Objects365数据集),这些一阶段检测器将不再比同等级的两阶段检测器更快。而且,一阶段检测器仅使用了正例区域的局部特征进行回归和分类,这有时候会导致与目标不对齐。
我们的概率性两阶段框架保留了一阶段检测器的概率性解释,但是将概率分布分解为多个阶段,对准确率和速度都有改进。
两阶段检测器在很多设置中,仍然具备更高的准确率。目前,所有的两阶段检测器都使用了一个弱的RPN来最大化top 1K个proposals的召回,而且在测试阶段没有利用这些proposals得分。大量的proposals降低了系统速度,同时基于召回考虑的proposal 网络也没有像一阶段检测器那样直接提供一个清晰的概率解释。我们的框架解决了这个问题,并整合了一个强大的类别不可知单阶段目标检测器和一个分类阶段。我们的第一阶段使用更少但更高质量的区域,从而产生更快地推理、更高的准确率。
**其他检测器。**该系列的目标检测器是通过图像中关键点来定位目标的,如:CornerNet检测的是左上、右下角点,并使用嵌入特征对这些点进行分组;ExtremeNet检测四个极值点,并使用额外的中心点对其分组;CenterNet(不是Objects as Points)检测中心点并用于改进角点分组;Corner Proposal Net使用角点对分组形成region proposal;CenterNet(Objects as Points)检测中心点并回归边框的宽高。
DETR和Deformable DETR移除了检测器中的密集预测,取而代之的是使用Transformer直接预测一个边框集。
上述几种检测器(基于点的检测器、DETR类、传统anchor-based检测器)之间的主要区别在于网络结构。基于点的检测器使用全卷积网络,通常带有对称的下采样和上采样层,并产生一个单一的小输出步幅(如4)的feature map。DETR类的检测器使用transformer作为decoder。传统的一阶段、两阶段检测器通常需要使用增加了轻量级上采样层的分类网络,并且生成多尺度特征(FPN)。
3、先验知识
二阶段检测器的RPN对背景的定义非常保守,任何与GT的IOU大于等于30%的预测结果都会被认为是前景。这种标签定义更倾向于提高召回,而不是精确和准确的相似度估计。因此,很多不完整的目标却得到了一个很高的proposal得分。由于该阶段和第二阶段的目标不同,两阶段结合起来使得检测器失去了概率性解释。
4. 两阶段检测的概率解释
对于每幅图像,我们的目的是生成包含了K个检测的边框 b 1 , . . . , b K b_1, . . . , b_K b1,...,bK及其对应类别分布 s k ( c ) = P ( C k = c ) s_k(c) = P(C_k = c) sk(c)=P(Ck=c)的结果,类别c包括C类和背景。在本文工作中,保持原两阶段检测器中的边框回归不变,仅关注于类别分布。一个两阶段检测器将这种类别分布分为了两部分:第一阶段产生一个类别不可知的目标概率 P ( O k ) P(O_k) P(Ok),第二阶段产生具体类别的条件概率 $P(C_k|O_k) $ 。(在这里, O k = 1 O_k=1 Ok=1代表第一阶段检测出的正例,为0则代表背景。当第一阶段检测结果为负例时,其类别为背景的条件概率就对应的为1,即 P ( C k = b g ∣ O k = 0 ) = 1 P(C_k = bg|O_k = 0) = 1 P(C

提出一种概率性两阶段目标检测方法CenterNet2,利用强一阶段检测器改进传统两阶段检测器中的RPN,优化整个检测流程的概率解释,实现了速度与精度的双重提升。
最低0.47元/天 解锁文章
1073

被折叠的 条评论
为什么被折叠?



