code:https://github.com/xingyizhou/CenterNet2

文章目录

  • 1.概要
  • 2.相关工作
    • 2.1 One-Stage Detectors
    • 2.2 Two-Stage Detectors
    • 2.3 Anchor Free && DETR
  • Two-Stage检测的概率解释
  • 4 检测器的选择
    • 4.1 RetinaNet
    • 4.2 CenterNet
    • 4.3 ATSS
    • 4.4 GFL
  • 5.实验
    • 5.1 基础Two-Stage模型实验
    • 5.2 Real-Time模型实验
    • 5.3 SOTA模型对比

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)。

Two-Stage检测的概率解释




4 检测器的选择

公式和标准的Two-Stage检测器的关键区别在于在检测得分中使用了类不可知检测P(Ok)。在概率形式中,分类分数乘以类别不可知检测分数。这需要一个强大的第一阶段检测器,不仅最大限度地召回建议框,而且还可以为每个建议框预测一个可靠的目标概率。在实验中,作者使用比较好的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模型实验


每一个概率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,优于所有发表的所有模型。

CenterNet2相关推荐

  1. 56.4 AP!超越YOLOv4,更快更强的CenterNet2来了!

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 代码:https://github.com/xingyizhou/CenterNet2 论文:http ...

  2. 最强检测 | YOLO V4?都是弟弟! CenterNet2以56.4mAP超越当前所有检测模型

    仅单尺度测试,在COCO上最高可高达56.4 mAP!超越现所有网络,如ScaledYOLOv4.GFLV2等,其中一个版本,49.2 mAP/33FPS!代码刚刚开源! 作者单位:UT Austin ...

  3. centernet2 win10使用笔记

    代码路径: GitHub - xingyizhou/CenterNet2: Two-stage CenterNet Our project is developed on detectron2. Pl ...

  4. CenterNet2:比强更强的二阶段网络,COCO成绩最高达到56.4mPA

    摘要 我们开发了两阶段目标检测的概率解释.我们表明,这种概率解释激发了许多常见的经验培训实践.它还建议更改两阶段检测管道.具体来说,第一阶段应该推断适当的对象与背景可能性,然后应该告知检测器的总体分数 ...

  5. CenterNet2的深入浅出(CVPR2021)

    CenterNet2的深入浅出(CVPR2021) 论文地址与代码 主要贡献 贡献解释 论文地址与代码 论文: https://arxiv.org/abs/2103.07461. 代码: https: ...

  6. CenterNet2训练自己的数据集

    centernet2训练自己的数据集 环境配置 1.下载https://github.com/xingyizhou/CenterNet2 2.安装环境 conda create -n CenterNe ...

  7. CenterNet2实战:手把手带你实现使用CenterNet2训练自定义数据集

    1.CenterNet2 介绍 论文地址:https://arxiv.org/abs/2103.07461 GitHub地址:https://github.com/xingyizhou/CenterN ...

  8. 盘点热门的目标检测开源方案(附论文+代码下载)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 在2020年中,目标检测领域出现了许多优秀的工作,今天我们来聊一聊在当前热门的五大目标检测开源方案. ...

  9. NeurIPS 2021 助力YOLOv5涨点 Alpha-IoU:IoU Loss大一统

    经过测试,代码与Yolov5基本一致, 模型也是14m,精度没有大幅明显提升. Alpha-IoU:A Family of Power Intersection over Union Losses f ...

最新文章

  1. 参加完Python培训可以做什么
  2. 为一月份开设的组队学习课程投票啦
  3. 容量是GPT-2的1.7倍!谷歌打造神经对话模型Meena
  4. 【C语言】接收字符,大小写字符相互转换后输出,数字不输出
  5. 从源码出发:JAVA中对象的比较
  6. http协言和web本质
  7. mcse 2000 认证介绍
  8. java中飞飞检查异常_Springboot项目如何在controller层统一返回数据以及处理异常
  9. 【es】ES RestHighLevelClient 请求报错:Connection reset by peer
  10. 算法不会,尚能饭否之栈
  11. 你还在抱怨开发工具,为什么不动手优化? | 人物志
  12. webpack-internal:///./node_modules/vue/dist/vue.esm.js:629 [Vue warn]: Invalid prop: type check fail
  13. ViewHolder最简洁的写法
  14. 支持HTTP2的cURL——基于Alpine的最小化Docker镜像
  15. 史上最简单的上传文件到linux系统方法
  16. ValueError: Input 0 of node ... was passed float from ... incompatible with expected float_ref.
  17. 魂斗罗归来大觉机器人_魂斗罗归来挑战Boss血量分析 魂斗罗归来Boss模式挑战攻略...
  18. 项目二--Time类
  19. 电脑发送打印任务后打印机没有执行是怎么回事
  20. python导入文件

热门文章

  1. Modbus通信协议指令学习记录
  2. 14260 Problem N 花坛
  3. 大家信夫信用服务之普惠金融的长痛
  4. EasyRecovery15易恢复新版数据恢复软件
  5. STM32基于WiFi和蓝牙的内外网通信
  6. Amazon SQS 消息相关接口测试用例
  7. 拖动的层,可应用课件中视频置于ppt讲稿的效果
  8. 电信,网通,铁通各地DNS服务器地址
  9. 仅仅通过声音,用AI就能诊断抑郁症?
  10. mysql查询数据会不会锁表_mysql select是否会锁表 ?