52.1 %AP!AutoAssign:Anchor-free最强检测网络!密集目标检测的可微标签分配

本文主要是介绍52.1 %AP!AutoAssign:Anchor-free最强检测网络!密集目标检测的可微标签分配,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击关注上方“AI公园”,并“星标”公号

技术硬文,第一时间送达!

AI公园

AutoAssign:以52.1%的AP成就最强Anchor-free目标检测网络!用于密集目标检测的可微标签分配,模型表现SOTA!优于所有现有的一级检测器,如ATSS、FreeAnchor和FCOS等网络,注:并没有成功收录到ECCV 2020。

作者团队:旷视研究院

1

摘要

在本文中,我们提出了一种具有完全differentiable标签分配策略的anchor-free目标检测器,称为AutoAssign。

它通过生成正负权重图来动态修改每个位置的预测,从而自动确定正样本/负样本。具体来说,我们提供了一个中心加权模块来调整特定于类别的先验分布,以及一个置信度加权模块来适应每个实例的特定分配策略。整个标签分配过程是可微的,不需要其他修改即可迁移到不同的数据集和任务。

在MS COCO上进行的大量实验表明,我们的方法以各种主干的AP稳定地超过了其他最佳采样策略〜1%。此外,我们最好的模型可达到52.1%的AP,优于所有现有的一级检测器。此外,对其他数据集PASCAL VOC,Objects365和WiderFace的实验证明了AutoAssign的广泛适用性。

2

主要思路

2.1 检测现状

检测需要密集的提取正负样本,而根据它们的空间位置进行正负样本分配的过程,称之为标签分配。现代基于cnn的检测器通常采用多尺度特征(如FPN[10])来缓解尺度方差,因此标签分配不仅需要在空间特征映射图中选择位置,还需要选择合适尺度的特征。

(1)Anchor-based检测器

如RetinaNet在每个位置预设几个不同尺度和纵横比的anchor,根据交并比(IoU)排序来选择合适的正负样本。

(2)Anchor-free检测器

如FCOS等无锚探测器对每个目标采样中心面积的固定比例作为空间正位置,并根据预先定义的尺度约束选取FPN的某一阶段。

这些检测器遵循对象的先验分布来设计它们的分配策略。

2.2 发现问题

在现实世界中,物体的外观会因类别和场景的不同而有很大差异,如图2所示。固定中心采样策略可以选择外部对象为正的位置。直观上,物体上的采样位置比普通背景要好,因为这些位置容易产生更高的分类置信度。另一方面,虽然CNN可以学习偏移量,但是当背景采样为正时,feature shift造成的障碍可能会降低性能。
因此,上述固定策略可能并不总是在空间和规模上选择最合适的位置。

2.3 解决思路

在这项工作中,我们提出了一个完全可微策略的标签分配。如图1所示。

  • 首先遵循像FCOS这样的无锚方式,在没有人为设计锚的情况下在每个位置上直接预测对象。

  • 为了为进一步优化保留足够的位置,首先将边界框内的所有位置在所有尺度级别上都视为正候选和负候选。然后生成正权值和负权权值映射对训练损失进行修正。

  • 为了适应不同类别和领域的分布,提出了一个分类加权模块,名为中心加权,从数据中学习每个类别的分布。

  • 为了适应每一种姿态的外观和尺度,提出了一个置信加权模块来在空间和尺度维度上对位置的正置信和负置信进行建模。

  • 然后结合这两个模块来生成所有位置的正权值映射和负权值映射。加权的整个过程是可微的,可以通过反向传播方便进行优化。

2.4 本文贡献

1. 针对密集目标检测,提出了一种新的可微标签分配策略——自动分配算法。此外,可学习范式使它能够在不进行任何修改的情况下转换到不同的数据集和任务。

2. 两个加权模块,即在空间和尺度两个维度上,提出了中心加权和置信加权,以自适应地增加特定类别的分布和特定实例的采样策略。

3.在具有挑战性的MS COCO[12]数据集和来自不同领域的其他数据集(如pascal VOC[3,4]、Object365[19]和宽面[22])上进行了具有竞争性结果的广泛实验,证明了自动分配的有效性和广泛适用性。

3

AutoAssign

3.1 Overview

标签分配是一个完全数据驱动的方式。它从头开始构建,没有传统的组件,例如锚点、IoU阈值、top-k或scale范围,而是直接使用网络预测动态调整每个位置的正/负置信度。

为了优化整个标签分配过程,我们提出了一个完全可区分的策略,在空间和尺度上动态调整特定类别和特定实例的采样策略。策略框架如图3所示。

首先采用FCOS等无锚方式,放弃预先设计的锚,直接预测每个有限元位置上的对象。对于每个实例,我们在它的边界框中保留了所有缩放级别的位置,包括正、负。

然后生成正权值和负权值图w+和w−,以精确地修正训练中对正、负权值的预测。因此,我们将整个分配步骤转换为两个权值映射。

为了适应不同类别的分布,提出了一个名为center weights的分类和依赖数据的权重模块。它先从标准中心开始,然后从数据中学习每个类别的分布。

为了适应每种姿态的外观和尺度,进一步提出了一个实例加权模型,称为置信加权。它根据每个目标的预测置信度,动态地对目标在空间和尺度上的位置进行加权。最后,结合两个权重模块来生成所有位置的正权值和负权值。给定一个对象n,我们构建应用整个加权机制后的训练损失如下式所示:


3.2 Center Weighting

先验分布是标签分配的基本要素,特别是在训练的早期阶段。一般来说,物体的分布以中心优先为主。然而,来自不同类别的对象,例如长颈鹿和人类可能有不同的分布。保持采样中心的位置不能捕捉实际实例的不同分布。对于不同类别的对象,自适应中心分布更适合去血缘化。基于中心先验,我们引入了一个具有可学习参数的分类高斯形状加权函数G。“分类的方式”是指每个类别都有其独特的参数(μ,σ),而同一类别的所有对象共享相同的参数。这里我们将G定义为:

直观地,~u控制每个类别的中心距框中心的偏移量。并且~σ根据类别特征来衡量每个位置的重要性。因此,~σ决定了在用合理的权重下有多少位置会有效地导致正损失。
还需要注意的是,G适用于所有FPN阶段。由于同一类别的对象可以具有任意大小或长宽比,因此最合适的位置可以在任何FPN阶段。此外,为了补偿不同的FPN降采样率所带来的干扰,我们根据FPN各阶段的降采样率对距离~d进行了归一化。

3.3 Confidence Weighting

现有的动态策略在设计时考虑到网络可以很容易地获得高置信度的合适样本,同时倾向于对次样本进行低置信度的预测。其中,置信度指标分别在尺度选择和空间分配(锚一致性)中被证明是有效的。在置信度加权中,我们提出了分类和局部化的联合置信度指标来指导空间和尺度上的加权策略。

  • Classification confidence

给定一个空间位置,其分类的置信度可以自然定义为Pi(cls|θ)式中为模型参数。然而,为了确保考虑到所有合适的位置,我们首先考虑了盒子内的所有空间位置。由于一个对象很难完全填满它的边框,初始的正集往往会包含相当一部分背景位置。如果一个位置实际上是背景,那么该位置中的所有类谓词都应该是不合理的。因此,将太多的低背景位置作为正确率将损害检测性能。

为了抑制来自劣质位置的假正样本,引入了一个新的Implicit-Objectness分支,如图3所示。它的工作原理与RPN[17]和YOLO[14]中的Objectness一样,是一个基于前景和背景的二元分类任务。但这里存在缺乏明确标签的问题。RPN和YOLO采用预先定义的赋值,带有一致的正标签,而我们需要动态地寻找和强调适当的正标签。因此,我们将Objectness和classification分支一起优化,因此它不需要显式标签。这就是为什么它被称为隐含对象(ImpObj)。对于位置i∈Sn,应用ImpObj后,可以定义分类置信度Pi(cls|θ):

  • joint confidence modeling

为了生成每个位置的正/负无偏估计,除了分类之外,还应该包括定位置信度。典型的本地化输出是框偏移量,很难直接度量回归置信度。将局部化损失Lloci(θ) 转化为似然Pi(loc|θ)它可以由loss Li(θ)推导如下。在不失一般性的前提下,本文采用二元交叉熵(BCE)损失进行分类。

  • Weighting function

在联合置信表示Pi(θ)的基础上,我们将置信加权函数C(Pi)以指数形式提出,以强调包含高度置信对象的位置为:

3.4 Weight Maps

  • Positive weights

给定一个目标i,对于其边框内的所有位置,应该关注正确的位置,并做出更准确的预测。然而,在训练过程的开始,网络参数被随机初始化,使得其预测的置信区间不合理。因此,来自先验的指导信息也很重要。对于位置i∈Sn,我们将中心权重模块的特定类别先验G(~di)和置信度权重模块C(Pi)组合在一起,生成正权重wi+为:

  • Negative weights

一个边界盒通常包含一定数量的真实背景位置,我们还需要加权的负损失来抑制这些位置,消除假positive标签。此外,由于方框内的位置总是倾向于预测positive的高置信度,我们倾向于使用位置信度来生成无偏假positive label。矛盾的是,负分类对回归任务没有梯度,这意味着位置信度不应该进一步优化。因此,我们在每个位置的预测建议和所有对象之间使用IoUs来生成我们的负权值wi- as

3.5 Loss Function

通过生成正权和负权映射,实现了为每个实例动态分配更合适的空间位置和自动选择合适的FPN阶段的目的。由于权重映射会导致训练损失,因此以可微的方式处理标签分配。AutoAssign的最终损失函数:

S表示所有尺度上的所有位置。因此对于边界盒内的某个位置,正损失和负损失都将以不同的权重进行计算。这与其他标签分配策略有很大的不同。为了处理负位置之间的不平衡问题,采用了focal loss。

4

实验结果

4.1 消融实验

  • Center weighting and confidence weighting

中心权重和置信权重的贡献

  • Analysis of center weighting

  • Analysis of confidence weighting

4.2 SOTA对比实验

COCO数据集:

请长按或扫描二维码关注本公众号

喜欢的话,请给我个在看吧

这篇关于52.1 %AP!AutoAssign:Anchor-free最强检测网络!密集目标检测的可微标签分配的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1080715

相关文章

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

Maven pom.xml文件中build,plugin标签的使用小结

《Mavenpom.xml文件中build,plugin标签的使用小结》本文主要介绍了Mavenpom.xml文件中build,plugin标签的使用小结,文中通过示例代码介绍的非常详细,对大家的学... 目录<build> 标签Plugins插件<build> 标签<build> 标签是 pom.XML

nginx upstream六种方式分配小结

《nginxupstream六种方式分配小结》本文主要介绍了nginxupstream六种方式分配小结,包括轮询、加权轮询、IP哈希、公平轮询、URL哈希和备份服务器,具有一定的参考价格,感兴趣的可... 目录1 轮询(默认)2 weight3 ip_hash4 fair(第三方)5 url_hash(第三

CSS3 最强二维布局系统之Grid 网格布局

《CSS3最强二维布局系统之Grid网格布局》CS3的Grid网格布局是目前最强的二维布局系统,可以同时对列和行进行处理,将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局,本文介... 深入学习 css3 目前最强大的布局系统 Grid 网格布局Grid 网格布局的基本认识Grid 网

HTML5中下拉框<select>标签的属性和样式详解

《HTML5中下拉框<select>标签的属性和样式详解》在HTML5中,下拉框(select标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中选择值的方式,本文将深入探讨select标签的... 在html5中,下拉框(<select>标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为