点击下方卡片,关注“CVer”公众号
AI/CV重磅干货,第一时间送达
本文转载自:AI人工智能初学者
Probabilistic two-stage detection
代码:https://github.com/xingyizhou/CenterNet2
论文:https://arxiv.org/abs/2103.07461
仅单尺度测试,在COCO上最高可高达56.4 mAP!超越现所有网络,如ScaledYOLOv4、GFLV2等,其中一个版本,49.2 mAP/33FPS!代码刚刚开源!
作者单位:UT Austin(鼎鼎大名的CenterNet一作本人), Intel
1 简介
我们都知道目标检测的目的就是找到图像中的所有目标,并识别它们的位置和属于某一类的概率。One-Stage目标检测在一个框架中共同推断位置和类别的概率。通过训练它们最大限度地提高其框的精度和预测概率的精度,并在最后应用到推理之中。
Two-Stage检测器首先发现潜在目标及其位置,然后(在第2阶段)对这些潜在目标进行分类。第1阶段的目的是最大限度地召回目标,而第2阶段是最大限度地在第1阶段过滤的目标。
而本文通过优化Two-Stage的联合概率目标的下界,提出了一个简单的改进标准Two-Stage检测器训练方法。概率处理建议对Two-Stage架构进行更改。具体来说,第1阶段需要推断一个校准目标的似然性。目前Two-Stage目标检测中的RPN是为了最大化召回而设计的,不产生准确的可能性。然而,One-Stage方法可以。
在目前最先进的One-Stage检测器的基础上建立了一个概率Two-Stage检测器。对于每一阶段的检测,CenterNet2模型都会提取区域级特征并进行分类。在第2阶段使用更快的R-CNN或级联分类器。这两个阶段一起训练,以最大限度地提高预测的概率准确度。在推理中,CenterNet2使用这个最终的对数似然作为检测得分。
概率Two-Stage检测器比One-Stage检测器和Two-Stage检测器更快、更准确。与基于Anchor的Two-Stage检测器相比,CenterNet2的第1阶段更准确,允许检测器在RoI头部使用更少的建议,使检测器整体上更准确和更快。与One-Stage检测器相比,CenterNet2的第1阶段使用了更精简的Head设计,并且只有一个输出类用于密集图像水平预测。由于类别数量的急剧减少所带来的加速,远远超过了第2阶段的额外成本。CenterNet2的第2阶段充分利用了多年来Two-Stage检测器的进展,并在一阶段基线上显著提高了检测精度。
实验表明,CenterNet2检测器通过单尺度测试在COCO测试开发上达到了56.4mAP,优于所有已发布的结果。CenterNet2检测器使用轻量级Backbone,在Titan Xp上以33fps的速度在COCO上实现了49.2mAP的性能,优于Scaled YOLOv4。
2 相关工作
2.1 One-Stage Detectors
One-Stage Detectors同时预测输出类的概率和目标的位置。
RetinaNet对一组预定义的滑动锚框进行分类,并通过调整每个输出的损失来处理前景-背景不平衡。
FCOS和CenterNet消除了每像素多个锚点的问题,并根据位置对前景/背景进行分类。
ATSS和PAA通过改变前景和背景的定义来进一步改进FCOS。
GFL和Autoassign改变Hard Foreground-Background分配为加权软分配。
AlignDet在输出之前使用一个可变形的卷积层来收集更丰富的分类和回归特征。
RepPoint和DenseRepPoint将边界框编码为一组轮廓点,并使用点集特征进行分类。
BorderDet沿着边界框池化特征以实现更好的localization。
大多数One-Stage Detectors都有可靠的概率解释。虽然One-Stage Detectors取得了具有竞争力的性能,但与Two-Stage Detectors相比,它们通常依赖于单独分类和回归分支。事实上,如果类别很大(如LVIS或Objects365数据集),它们不再比Two-Stage Detectors更快。此外,One-Stage Detectors仅使用正样本的局部特征进行回归和分类,这有时与目标不对齐。
而本文提出的概率Two-Stage Detector框架分解了多个阶段的概率分布并保留了One-Stage Detector的概率解释,同时提高了准确性和速度。
2.2 Two-Stage Detectors
Two-Stage Detector首先使用区域建议网络(RPN)生成粗糙的区域建议框,然后使用一个专用的检测头对它们进行分类和回归。
Fast-RCNN使用2个连接层作为RoI头部。
Cascade-RCNN使用FasterRCNN的3个级联阶段,每个阶段都有不同的正阈值,以便后期更多地关注定位精度。
HTC利用额外的实例和语义分割标注来增强Cascade-RCNN的级间特征流。
TSD对每个RoI的分类和Localization分支进行解耦。
Two-Stage Detector在许多情况下仍然更精确。目前,所有Two-Stage Detector都使用一个相对较弱的RPN,最大限度地召回排名前1K的预选框,并且不使用测试时的预选框分数。大量的预选框减慢了速度,并且基于召回的建议网络不能直接提供与One-Stage Detector相同的概率。
CenterNet2框架解决了这个问题,并将一个强大的One-Stage Detector与后面的分类阶段集成在一起。在第1阶段使用更少、质量更高的预选框,以输出更高的准确性和更快的速度。
2.3 Anchor Free && DETR
也有很多的检测器通过图像中的点来识别物体。
CornerNet则是检测左上角和右下角,并使用嵌入特征对它们进行分组。
ExtremeNet检测四个极值点,并使用一个额外的中心点对它们进行分组。
Duan等人通过检测中心点来改善Corner的分组。
Corner Proposal Net使用成对的角落分组作为区域提议。
CenterNet检测中心点,并从中回归边界框参数。
DETR和变形DETR去除检测器中的密集输出,而使用Trnasformer直接预测一组Bounding Boxes。
基于Corner的检测器、DETR与传统检测器的主要区别在于网络结构。基于Corner的检测器使用全卷积网络,通常具有对称的下采样层和上采样层,并以较小的步长生成单个特征图。DETR式检测器使用Trnasformer作为解码器。
传统的One-Stage和Two-Stage检测器通常使用由轻量化上采样层增强的图像分类网络,并产生多尺度特征(FPN)。
3 Two-Stage检测的概率解释
对于每一幅图像,检测的目标是产生 个边界框 ,并且每个候选框的类分布服从 分布。在这个工作,CenterNet2保持边界框回归不变,只关注类分布。
一个Two-Stage检测器将这种分布分解为2部分:类别不可知对象似然性
(第一阶段)和条件类别分类
(第二阶段)。这里
表示第一阶段的前景,
表示背景。
任何阴性检测 导致背景 分类: 。在一个多级检测器中,分类是由多个级联级的集合完成的,而Two-Stage检测器使用一个单一的分类器。那么两Two-Stage模型的联合类分布为:
这里使用极大似然估计训练检测器。对于目标类,最大化:
对于背景类,最大似然:
这一目标将第1阶段和第2阶段的概率估计与损失和梯度计算联系在一起。准确的评价需要对第2阶段的所有第1阶段产出进行密集的评价,这将大大降低训练的速度。相反,文中推出了2个下界的目标共同优化。第1个下界使用Jensen不等式:
其中, , :
这个下界最大化了第1阶段中任何高分对象的第2阶段背景的对数似然。这里的
,
,但是这个界限可能会被松弛为
,
,于是第2界只涉及第一阶段的目标:
它使用
和单调
。对于
来说,这个界限是紧密的。理想情况下,最紧密的界限是通过使用前式的最大值来获得的。在实践中同时优化2个边界可以得到更好的结果。
有了下界Eq.(4)和正目标Eq.(2),第1阶段的训练简化为最大似然估计,在标注对象上使用正标签,在所有其他位置使用负标签。这相当于训练一个二元一级检测器,或者一个RPN。
4 检测器的选择
公式和标准的Two-Stage检测器的关键区别在于在检测得分中使用了类不可知检测 。在概率形式中,分类分数乘以类别不可知检测分数。这需要一个强大的第一阶段检测器,不仅最大限度地召回建议框,而且还可以为每个建议框预测一个可靠的目标概率。在实验中,作者使用比较好的One-Stage检测器来估计这个对数似然概率。
概率Two-Stage检测器的核心部件是Stronge First Stage。第1阶段需要预测一个准确的目标可能性,以告知整体检测分数,而不是最大化目标覆盖范围。在流行的One-Stage检测器的基础上实验了4种不同的设计。对于每一个检测器,作者强调了将它们从One-Stage检测器转换为概率Two-Stage检测器中的第1阶段所需的检测器。
4.1 RetinaNet
RetinaNet与传统的Two-Stage检测器的RPN非常相似,但有三个关键区别:
较重的Head设计(4层vs1层 in RPN);
更严格的正负锚定定义;
Focal Loss。
这些组件中的每一个都提高了RetinaNet产生校准的One-Stage检测可能性的能力。
作者在第一阶段的设计中使用了所有这些。默认情况下,RetinaNet使用两个单独的头部来进行边界框回归和分类。在第一阶段设计中发现两个任务有一个共享的Head就足够了,因为对象或非对象分类更容易并且需要更少的网络容量。这也加快了推理速度。
4.2 CenterNet
CenterNet将对象作为位于其中心的关键点,然后回归到方框参数。原始的CenterNet在单个尺度上运行,而传统的Two-Stage检测器使用特征金字塔(FPN)。而本文使用FPN将CenterNet升级到多尺度。
具体来说,使用Retinaanet Style的ResNet-FPN作为主干,从stride=8到128输出特征映射。将四层分类分支和回归分支应用于FPN的所有层次,以产生检测热图和边界框回归图。
在训练过程中,根据对象大小,在固定的分配范围内,将ground-truth center标注分配给特定的FPN级别。受到GFL的启发,在3×3中心附近添加了一些位置,这些位置已经产生了高质量的边界框作为正数。使用到边界的距离作为边界框表示,并使用gIoU损失作为边界框回归损失函数。作者将改进后的CenterNet称为CenterNet*。
4.3 ATSS
ATSS用自适应的IoU阈值对One-Stage检测器的分类概率进行建模,并使用centerness来校准分数。在一个概率的Two-Stage Baseline中使用的是ATSS,并乘以中心和前景分类得分为每个proposal。再次合并分类和回归Head,以稍微加速。
4.4 GFL
GFL使用回归质量来指导目标似然训练。在概率Two-Stage Baseline中删除基于积分的回归,仅使用基于距离的回归来保持一致性,并再次合并2个Head。
5 实验
5.1 基础Two-Stage模型实验
One-Stage架构推断出 )。对于每一个将它们与第二阶段的推断相结合 。作者实验了2个基本的第二阶段设计:FasterRCNN和CascadeRCNN。
每一个概率Two-Stage FasterRCNN模型在mAP上都比它的一级前身提高了1-2个百分点,在mAP上比原来的两阶段FasterRCNN提高了3个百分点。更有趣的是,由于更精简的头部设计,每个Two-Stage的概率FasterRCNN都比它的一级前身更快。
由于更有效的FPN和概率检测器使用更少的proposal,许多概率Two-Stage FasterRCNN模型比原始的两阶段FasterRCNN更快。
在CascadeRCNN模型中观察到类似的趋势。在这些概率Two-Stage模型中,CascadeRCNN-CenterNet设计表现最好。
5.2 Real-Time模型实验
在相同的backbone和训练下,CenterNet2比realtime-FCOS性能好1.6个mAP,并且只慢4毫秒。使用相同的基于FCOS的Backbone和更长的训练,它在原来的CenterNet上改进了7.7mAP,并轻松地超越了流行的YOLOv4和效率更高的检测器,在40fps下有45.6mAP。使用稍微不同的FPN结构,并结合Self-Training,CenterNet2以33帧每秒的速度获得49.2mAP。虽然现有的大多数实时检测都是One-Stage,但在这里,作者展示了Two-Stage检测其也可以像One-Stage一样快,同时提供更高的精度。
5.3 SOTA模型对比
作者这里使用了一个更强的Backbone Res2Net-BiFPN,一个更大的输入分辨率(训练用:1560x1560,测试用:1280x1280测试)和heavy crop augmentation(0.1-2),和一个长的时间Self-Training来标记图像。最终模型单模型达到56.4 mAP,优于所有发表的所有模型。
论文PDF下载
后台回复:CenterNet2,即可下载论文PDF和代码
下载2
后台回复:CVPR2021,即可下载代码开源的论文合集
重磅!CVer-目标检测交流群成立
扫码添加CVer助手,可申请加入CVer-目标检测 微信交流群
同时也可申请加入CVer大群和细分方向技术群,细分方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。
一定要备注:研究方向+地点+学校/公司+昵称(如目标检测+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲长按加小助手微信,进交流群
▲点击上方卡片,关注CVer公众号
整理不易,请给CVer点赞和在看