One-to-Few Label Assignment for End-to-End Dense Detection阅读笔记

One-to-Few Label Assignment for End-to-End Dense Detection阅读笔记

Abstract

一对一(o2o)标签分配对基于变换器的端到端检测起着关键作用,最近已经被引入到全卷积检测器中,用于端到端密集检测。然而,o2o可能因为正样本数量有限而降低特征学习效率。尽管最近的DETRs引入了额外的正样本来缓解这个问题,但解码器中的自注意力和交叉注意力计算限制了其在密集和全卷积检测器中的实际应用。在这项工作中,我们提出了一种简单而有效的一对少数(o2f)标签分配策略,用于端到端密集检测。除了为每个对象定义一个正锚点和多个负锚点之外,我们还定义了几个软锚点(soft anchor),同时充当正负样本。这些软锚点的正负权重在训练过程中动态调整,使它们在训练初期更多地贡献于“表示学习”,在后期更多地贡献于“重复预测移除”。以这种方式训练的检测器不仅可以学习强大的特征表示,还能进行端到端密集检测。在COCO和CrowdHuman数据集上的实验展示了o2f方案的有效性。代码可在以下链接获取:https://github.com/strongwolf/o2f。

Introduction

(仅记录一些我认为比较重要的句子)

  • During the evolution of object detectors, one important trend is to remove the hand-crafted components to achieve end-to-end detection.

  • One hand-crafted component in object detection is the design of training samples.

    • However, the performance of anchor-based detectors is sensitive to the shape and size of anchor boxes. To mitigate this issue, anchor-free [19,48] and query-based [5,8,34,61] detectors have been proposed to replace anchor boxes by anchor points and learnable positional queries, respectively.
  • Another hand-crafted component is non-maximum suppression(NMS) to remove duplicated predictions.

    • Since NMS has hyperparameters to tune and introduces additional cost, NMS-free end-to-end object detection is highly desired. (由于NMS需要调整超参数并带来额外的成本,因此非常希望实现无NMS的端到端对象检测。)
  • With a transformer architecture, DETR [5] achieves competitive end-to-end detection performance.

    • However, o2o can impede the training efficiency due to the limited number of positive samples.
  • Recent studies [7, 17, 22] on DETR try to overcome this shortcoming of o2o scheme by introducing independent query groups to increase the number of positive samples. The independency between different query groups is ensured by the self-attention computed in the decoder, which is however infeasible for FCN-based detectors.(最近的研究[7, 17, 22]尝试通过引入独立的查询组来增加正样本数量,以克服DETR中一对一(o2o)方案的这一缺点。不同查询组之间的独立性由解码器中计算的自注意力来保证,但这对于基于FCN的检测器来说是不可行的。)

  • In this paper, we aim to develop an efficient FCN-based dense detector, which is NMS-free yet end-to-end trainable.

    • 我们观察到,在一对一(o2o)方案中,将语义上类似于正样本的模糊锚点设为完全负样本是不合适的。相反,这些锚点可以在训练期间同时用于计算正损失和负损失,如果损失权重设计得当,不会影响端到端的能力。基于上述观察,我们提议为这些模糊锚点分配动态的软分类标签。如图1所示,与o2o不同,后者将模糊锚点(锚点B或C)设为完全负样本,我们将每个模糊锚点标记为部分正样本和部分负样本。正负标签的程度在训练过程中自适应调整,以保持“表示学习”和“重复预测移除”之间的良好平衡。特别是,在训练的早期阶段,我们开始以较大的正度数和较小的负度数,以便网络能更有效地学习特征表示能力,而在后期训练阶段,我们逐渐增加模糊锚点的负度数,以指导网络学习去除重复预测。我们将我们的方法命名为一对少数(o2f)标签分配,因为一个对象可以有几个软锚点。我们将o2f LA实例化到密集检测器FCOS中,我们在COCO [29]和CrowHuman [40]的实验表明,它实现了与带有NMS的检测器相当甚至更好的性能。

image-20231207113459473

Related Work

在过去的十年里,随着深度学习技术[14, 32, 41, 49, 52, 55]的迅猛发展,对象检测领域取得了巨大进展。现代对象检测器大致可以分为两种类型:基于卷积神经网络(CNN)的检测器[1, 3, 21, 28, 31, 36-38, 48, 50]和基于变换器的检测器[5, 8, 30, 34, 53, 54, 61]。

2.1. 基于CNN的对象检测器

基于CNN的检测器可进一步划分为两阶段检测器和一阶段检测器。两阶段检测器[3, 38]在第一阶段生成区域提议,在第二阶段细化这些提议的位置并预测类别,而一阶段检测器[28, 31]直接在卷积特征图上预测密集锚点的类别和位置偏移。早期的检测器大多使用预定义的锚点作为训练样本。由于不同数据集的适宜设置不同,必须仔细调整锚点形状和大小的超参数。为了克服这一问题,提出了无锚点检测器[19, 48]以简化检测流程。FCOS [48]和CenterNet [10]用锚点替代锚框,并直接使用这些点来回归目标对象。CornerNet [20]首先预测对象关键点,然后使用关联嵌入将它们组合成边界框。

大多数基于CNN的检测器在训练过程中采用一对多(o2m)的标签分配方案。早期的检测器,如Faster RCNN [38]、SSD [31]和RetinaNet [28],使用IoU作为定义正负锚点的指标。FCOS限制正锚点必须在对象的某些尺度和范围内。最近的方法[11, 18, 23, 57, 59, 60]通常考虑网络预测的质量和分布,以更可靠地分配锚点的标签。然而,o2m标签分配需要一个后处理步骤,即非极大值抑制(NMS),以去除重复的预测。NMS引入了一个参数来折衷所有实例的精确度和召回率,但这对于拥挤场景尤其不理想。在本文中,我们的目标是去除基于CNN检测器中的手工NMS步骤,实现端到端的密集检测。

2.2. 基于Transformer的对象检测器

作为先驱的基于Transformer的检测器,DETR [5] 使用一套可学习的对象查询作为与图像特征互动的训练候选项。它通过使用一对一的二部匹配和全局注意力机制,实现了具有竞争力的端到端检测性能。然而,DETR在小物体上的性能较差,收敛速度慢。许多后续工作[8, 12, 35, 56]旨在改进特征图和对象查询之间的注意力建模机制,以提取更相关和精确的特征,提升小物体的检测性能。最近的研究[7, 17, 22]表明,正样本数量有限是导致DETR收敛缓慢的原因。因此,它们引入了几个额外的解码器来增加正样本数量。然而,这些方法都基于稀疏候选项,其计算成本在进行密集预测时可能难以承受。与这些方法不同,我们提出了一种软标签分配方案,引入更多的正样本,使得端到端密集检测器能够更容易地进行训练。

One-to-Few Soft Labeling

3.1. Ambiguous Anchors

image-20231207113629109

  • o2o仅选择一个anchor作为正样本分配为positive sample,而o2m则选取多个anchor作为Positive sample。在o2o和o2m中,除了正样本之外的其余锚点都被定义为负样本。

  • 图2中,红色为certain anchor,绿色为ambiguous anchors

  • Now we have divided the anchors into three groups: one certain positive anchor, a few ambiguous anchors, and the remaining multiple negative anchors.

  • 第一个选项是将一对一(o2o)改为一对二,为每个实例增加一个正样本。第二个选项是为每个模糊锚点分配一个软标签t,其中0 ≤ t ≤ 1表示其正样本程度,因此1 − t是其负样本程度。我们定义正锚点和负锚点的分类损失分别为−log§和−log(1 − p),其中p是预测的分类得分。那么第二个选项的分类损失将是−t × log§ − (1 − t) × log(1 − p)。在COCO数据集上的检测结果如表1所示,我们可以看到,即使只增加一个正样本,一对二的标签分配方案也会显著降低性能。相比之下,为模糊锚点分配合适的软标签可以有效提高端到端性能。(软标签分配的细节将在后面的章节中讨论。)

    • 上述结果表明,使一个模糊锚点同时具有正负属性可能是有效实现端到端密集检测的一个可行方案。因此,我们提出了一种一对少数(o2f)标签分配策略,它选择一个确定的锚点作为完全正样本,几个模糊锚点同时作为正负样本,其余锚点作为负样本。模糊锚点的正负程度在训练过程中动态调整,使得网络既能保持强大的特征表征能力,又能实现端到端检测能力。

image-20231207150736829

3.2. Selection of Certain Positive Anchor

在我们的方法中,每个实例都将选定一个确定的正锚点。之前基于一对一(o2o)的检测器都使用一个预测感知的选择度量,考虑了分类和回归的成本来选择唯一的正样本。我们遵循这一原则,并将分类得分和IoU整合进确定锚点的选择度量中,其定义为:
S i , j = 1 [ i ∈ Ω j ] × p i , c j 1 − α × IoU ( b i , b j ) α , S_{i,j} = \mathbb{1}[i \in \Omega_j] \times p_{i,c_j}^{1-\alpha} \times \text{IoU}(b_i, b_j)^\alpha, Si,j=1[iΩj]×pi,cj1α×IoU(bi,bj)α,

其中 S_{i,j} 表示锚点i和实例j之间的匹配得分,c_j 是实例j的类别标签,p_{i,c_j} 是锚点i属于类别 c_j 的预测分类得分,b_i 是锚点i的预测边界框坐标,b_j 表示实例j的坐标,而 \alpha 控制分类和回归的重要程度。当锚点i的中心点在实例j的中心区域 \Omega_j 内时,空间指示器 1[i \in \Omega_j] 输出1;否则输出0。这种空间先验在基于o2o和o2m的方法中被普遍使用,因为观察到实例中心区域的锚点更有可能是正样本。

锚点可以根据度量 ( S_{i,j} ) 进行降序排序。之前的研究通常将正锚点选择问题构建为一个二分匹配问题,并使用匈牙利算法解决。为了简化,在本研究中,我们直接为每个实例选择得分最高的锚点作为确定的正锚点。

3.3. Label Assignment for Ambiguous Anchors

除了确定的正锚点之外,我们根据得分 S i , j S_{i,j} Si,j选择排名前K的锚点作为模糊锚点,因为它们与确定的正锚点有相似的语义上下文。为了减少重复预测的可能性,我们为这些模糊锚点分配动态软标签。假设我们训练网络N个周期,在第j个周期中,每个模糊锚点i的分类损失定义为:

l i j = − t i j × log ⁡ ( p i ) − ( 1 − t i j ) × log ⁡ ( 1 − p i ) l_i^j = -t_i^j \times \log(p_i) - (1 - t_i^j) \times \log(1 - p_i) lij=tij×log(pi)(1tij)×log(1pi)

除了确定的正锚点,我们基于得分 (S_{i,j}) 选择排名前K的锚点作为模糊锚点,因为它们与确定的正锚点有相似的语义环境。为了降低重复预测的可能性,我们为这些模糊锚点分配动态软标签。假设我们训练网络进行N个周期,每个模糊锚点i在第j个周期的分类损失定义为:

l i j = − t i j × log ⁡ ( p i ) − ( 1 − t i j ) × log ⁡ ( 1 − p i ) , l_i^j = -t_i^j \times \log(p_i) - (1 - t_i^j) \times \log(1 - p_i), lij=tij×log(pi)(1tij)×log(1pi), (随着epochs的增加, l i j l_i^j lij逐渐的就只等于 − ( 1 − t i j ) × log ⁡ ( 1 − p i ) - (1 - t_i^j) \times \log(1 - p_i) (1tij)×log(1pi))

其中 (p_i) 是锚点i的预测分类得分,(t_i^j) 和 (1 - t_i^j) 分别是该锚点在第j个周期的正负程度(即,损失权重)。(t_i^j) 的动态定义为:

t i j = p i max ⁡ k p k × T j , t_i^j = \frac{p_i}{\max_k p_k} \times T_j, tij=maxkpkpi×Tj,

T j = T m i n − T m a x N − 1 × j + T m a x , T_j = \frac{T_{min} - T_{max}}{N - 1} \times j + T_{max}, Tj=N1TminTmax×j+Tmax,

其中 (T_j) 是一个随时间变化的变量,它在第j个周期为所有样本分配相同的值,(T_{max}) 和 (T_{min}) 控制模糊锚点在第一个周期和最后一个周期的degree。我们将损失权重与分类得分呈正相关,考虑到预测得分较高的锚点应该更多地贡献于正信号。直接使用 ( p_i ) 作为权重会使得在难样本上的训练变得不稳定,因为这些样本的预测得分远小于简单样本的得分。因此,我们使用 ( p_i ) 与最大得分的比率来规范化不同样本的权重至同一尺度。动态调整 ( T_j ) 是很重要的,因为它在不同的训练阶段控制着“特征学习”与“重复预测移除”之间的平衡。

在训练的早期阶段,我们设置 (T_j) 相对较大,以引入更多的正监督信号以进行表示学习,从而使网络能够迅速收敛到一个稳健的特征表示空间。随着训练的进行,我们逐渐减少模糊锚点的正度,以便网络学会去除重复的预测。

3.4. Network Structure

我们将提出的一对少数(o2f)标签分配策略应用到FCOS上,这是一个典型的全卷积密集检测器。网络结构如图3所示。检测头由两个平行的卷积分支组成,每个特征金字塔网络(FPN)层的输出都连接一个分支。一个分支预测大小为 ( H × W × C H \times W \times C H×W×C) 的得分图,其中 (C) 是数据集中的类别数,(H) 和 (W) 分别是特征图的高度和宽度。另一个分支预测大小为 ( H × W × 4 H \times W \times 4 H×W×4) 的位置偏移图和大小为 ( H × W × 1 H \times W \times 1 H×W×1) 的中心度图。我们按照之前的工作将中心度图与分类得分图相乘,作为最终的分类-交并比联合得分。

"Centerness map"是FCOS(Fully Convolutional One-Stage Object Detector)中用于提高检测性能的一个概念。它是一个得分,用来表示一个位置相对于其目标边界框中心的偏离程度。这个得分用于在非极大抑制(NMS)过程中下调低质量边界框的权重,以抑制这些低质量的检测结果。"Centerness"得分是通过与边界框回归分支平行的一个分支(只有一层)来预测的,这个简单而有效的"centerness"分支能够显著提高检测性能,而计算时间的增加微不足道

对于每个实例,我们选择一个确定的正锚点和 (K) 个模糊锚点。其余的锚点被设置为负样本。分类分支的训练目标为每个实例定义如下:

L c l s = B C E ( p c , 1 ) + ∑ i ∈ A B C E ( p i , t i ) + ∑ i ∈ B F L ( p i , 0 ) L_{cls} = BCE(p_c, 1) + \sum_{i \in A} BCE(p_i, t_i) + \sum_{i \in B} FL(p_i, 0) Lcls=BCE(pc,1)+iABCE(pi,ti)+iBFL(pi,0)

其中 (p_c) 是单个确定锚点的分类得分,(A) 和 (B) 分别代表模糊锚点和负锚点的集合。BCE表示二元交叉熵损失,FL表示焦点损失。回归损失定义为:

L r e g = ∑ i ∈ B G I o U ( b i , b g t ) L_{reg} = \sum_{i \in B} GIoU(b_i, b_{gt}) Lreg=iBGIoU(bi,bgt)

其中GIoU损失是基于广义交并比的位置损失,(b_i) 是锚点 (i) 的预测位置,(b_{gt}) 是与锚点 (i) 对应的GT对象的位置。请注意,我们对正锚点和模糊锚点都应用了回归损失。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/228861.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微前端 -- wujie 预加载和原理 无界传参

目录 wujie 预加载和原理 原理解析 MessageChannel 无界传参 1.全局变量 2.Props 3.event bus wujie 预加载和原理 提前把无界实例创建好 runPreload 赋值给sandbox.preload 预先加载好 startApp 判断是否有preload 需要从wujie的实例导出preloadApp,参数跟startApp 一…

mybatis数据输出-单个简单类型和返回实体类型对象以及别名设置

1、建库建表 CREATE DATABASE mybatis-example;USE mybatis-example;CREATE TABLE t_emp(emp_id INT AUTO_INCREMENT,emp_name CHAR(100),emp_salary DOUBLE(10,5),PRIMARY KEY(emp_id) );INSERT INTO t_emp(emp_name,emp_salary) VALUES("tom",200.33); INSERT INTO…

Python开源项目月排行 2023年11月

#2023年11月2023年11月19日1TTS文本到语音的深度学习工具包,在研究和生产中经过了实战测试。TTS-Text To Speech的缩写,即“从文本到语音”。 它将计算机自己产生的、或外部输入的文字信息转变为可以听得懂的、流利的汉语口语(或者其他语言语…

内部文件上传以及渲染-接口API

文件上传 地址http://172.16.0.118:8090/api/pm/base/affix/upload请求类型POSTContent-Type:text/plain;charsetutf-8参数 prjData {"prjId":"", "jobId":"3031b2c8-c809-4110-8e88-22c80a9c1ec0721aca89-96a1-4346-9b6e-022331d221d1Nec…

Python中的range()函数详解:掌握迭代的利器

更多资料获取 📚 个人网站:ipengtao.com Python中的range()函数是一个强大的工具,用于生成一系列的数字,常用于循环操作。虽然看似简单,但其灵活性和功能却不容小觑。在本文中,将深入研究range()函数&…

有哪些值得分享的销售拓客技巧?

拓客对于销售的重要性 拓客(Toker)是一个商业上的名词,核心就是提高售前服务、市场推广的水平,从而挖掘出潜在客户的隐形需求(或称软需求)。 拓客的核心,其实就是提高售前服务、市场推广的水平…

SpringAOP专栏一《使用教程篇》

在b站跟着黑马程序员学习SpringAOP时记的笔记。 面向切面编程AOP是 Spring的两大核心之一。 AOP概述 AOP是什么 AOP英文全称:Aspect Oriented Programming(面向切面编程、面向方面编程),其实说白了,面向切面编程就是…

Meta Platforms推出Imagine:基于Emu的免费AI文本到图像生成器服务

优势主要体现在以下两个方面: 精细运动控制: 该项目在实现摄像机运动和物体运动方面表现出色,成功实现了对两者运动的高度独立控制。这一特性为运动控制提供了更为精细的调整空间,使得在视频生成过程中能够实现更灵活、多样的运动…

OpenCL学习笔记(三)手动编译开发库(win10+mingw64)

前言 有的小伙伴仍然在使用mingw编译器,这时只能重新编译opencl的sdk库。本文档简单记录下win10下,使用mingw11.20编译的过程,有需要的小伙伴可以参考下 一、安装所需软件 1.安装git,教程比较多,不再重复 2.安装cm…

【AUTOSAR】【通信栈】IPduM

AUTOSAR专栏——总目录_嵌入式知行合一的博客-CSDN博客文章浏览阅读310次。本文主要汇总该专栏文章,以方便各位读者阅读。https://xianfan.blog.csdn.net/article/details/132072415 目录 一、概述 二、相关模块 2.1 OS

【hcie-cloud】【6】华为云Stack网络流量详述【VXLAN简介、华为云Stack节点内部网络结构、华为云Stack网络服务流量走向】、缩略语

文章目录 前言VXLAN简介云数据中心业务对网络的诉求和目标数据中心大二层网络的发展VXLAN简介VXLAN的作用及优势VXLAN网络架构 - Spine-LeafSpine-Leaf架构的基本概念Spine-Leaf架构的优势VXLAN基本概念及工作原理:NVEVXLAN基本概念及工作原理:VTEPVXLAN…

Prometheus 发现机制和告警

1.服务发现 Prometheus Server的数据抓取工作于Pull模型,因而,它必需要事先知道各Target的位置,然后才能从相应的Exporter或Instrumentation中抓取数据。在不同的场景下,需要结合不同的机制来实现对应的数据抓取目的。 对于小型的…

整理了一些WPF的布局

在Grid里对一个TextBox定位 <Grid ShowGridLines"True"><Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition/><ColumnDefinition/></Grid.ColumnDefinitions><Grid.RowDefinitions><RowDefinition/><…

微信小程序 - 创建 ZIP 压缩包

微信小程序 - 创建 ZIP 压缩包 场景分享代码片段导入 JSZip创建ZIP文件追加写入文件测试方法参考资料 场景 微信小程序只提供了解压ZIP的API&#xff0c;并没有提供创建ZIP的方法。 当我们想把自己处理好的保存&#xff0c;打包ZIP保存下来时就需要自己实现了。 分享代码片段…

Docker基本管理

Docker概述 1.Docker简介 Docker是一个开源的应用容器引擎&#xff0c;基于go语言开发并遵循了apache2.0协议开源。 Docker是在Linux容器里运行应用的开源工具&#xff0c;是一种轻量级的“虚拟机”。 Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移…

华为快游戏SDK接入踩坑记录

华为快游戏被驳回常见问题&#xff1a; 游戏开始前著作权人、健康游戏忠告等信息显示不全&#xff08;页面停留时间不宜过短&#xff0c;如果过短也可能会审核不通过&#xff09; 激励视频有部分请求是实时的&#xff0c;没有预加载 无隐私权限或者是同意隐私权限进入应用后&am…

2024年AI视频识别技术的6大发展趋势预测

随着人工智能技术的快速发展&#xff0c;AI视频识别技术也将会得到进一步的发展和应用。2023年已经进入尾声&#xff0c;2024年即将来临&#xff0c;那么AI视频识别技术又将迎来怎样的发展趋势&#xff1f;本文将对2023年的AI视频技术做一个简单的盘点并对2024年的发展趋势进行…

隆道总裁吴树贵出席山东CIO年会 探讨AI在采购场景的应用

12月2日&#xff0c;由山东省首席信息官&#xff08;CIO&#xff09;联盟主办的2023&#xff08;第14届&#xff09;山东CIO年会在济南召开&#xff0c;本届盛会汇集业界专家、企业高管、技术厂商等&#xff0c;共同探讨企业数字化转型的未来趋势和发展动力&#xff0c;推动数字…

最简单的基于 FFmpeg 的音频解码器

最简单的基于 FFmpeg 的音频解码器 最简单的基于 FFmpeg 的音频解码器正文参考 参考雷霄骅博士的文章&#xff0c;链接&#xff1a;最简单的基于FFMPEGSDL的音频播放器&#xff1a;拆分-解码器和播放器 最简单的基于 FFmpeg 的音频解码器 正文 FFmpeg 音频解码器实现了音频数…

IO流(Java)

IO流 在学习IO流之前&#xff0c;我们首先了解一下File File File即文件或文件夹路径对象&#xff0c;其示例类可以是存在路径也可以是未创造路径 File有什么用 用于创建或操作文件或文件夹 File常用API API部分看得懂会查会用即可 IO流 IO(Input 读数据 Output写数据…
最新文章