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

news2024/11/17 3:51:39

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.coloradmin.cn/o/1295400.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Aligning Large Multi-Modal Model with Robust Instruction Tuning

Abstract 尽管多模态任务取得了有希望的进展,但当前的大型多模态模型(LMM)很容易产生与相关图像和人类指令 不一致的描述的幻觉。 LRV-指令。我们通过引入第一个大型且多样化的视觉指令调整数据集来解决这个问题,该数据集名为大…

DOS 批处理 (一)

DOS 批处理 1. 批处理是什么?2. DOS和MS-DOS3. 各种操作系统shell的区别Shell 介绍图形用户界面(GUI)shell命令行界面(CLI)的 shell命令区别 1. 批处理是什么? 批处理(Batch),也称为批处理脚本…

el-tree数据量过大,造成浏览器卡死、崩溃

el-tree数据量过大,造成浏览器卡死、崩溃 场景:树形结构展示,数据超级多,超过万条,每次打开都会崩溃 我这里采用的是引入新的插件虚拟树,它是参照element-plus 中TreeV2改造vue2.x版本虚拟化树形控件&…

基于微服务架构的外卖系统源码开发

在当前互联网时代,外卖行业蓬勃发展,用户对于高效、智能的外卖服务需求不断增加。为了满足这一需求,采用微服务架构的外卖系统成为了开发的主流方向。本文将探讨基于微服务的外卖系统源码开发,涉及到关键技术和示例代码。 1. 微…

远程控制如何赋能智能制造?贝锐向日葵制造业场景案例解析

随着数字化转型在制造业的不断深入,企业在产线端也逐渐投入更多智能化设备,数字化、智能化设备其中一个比较显著的优势就是可以依托互联网实现远程运维和调试,大大提升产线设备的稳定性和工作效率;而远程调试运维一个重要的实现方…

ALTERNET STUDIO 9.1 Crack

ALTERNET STUDIO 9.1 发布 宣布 AlterNET Studio 9.1 版本今天上线。AlterNET Studio 9.0 是一个中期更新,重点是改进我们所有的组件库。 以下是 AlterNET Studio 9.1 的发布亮点: Roslyn C# 和 Visual Basic 解析器现在支持代码修复/代码重构。 代码修复…

el-date-picker时间控制范围为过去时间不可选

<el-date-picker :picker-options"startPickerOptions()" value-format"yyyy-MM-dd HH:mm:ss" v-model"form.applyFixPlan" type"datetime" placeholder"选择日期时间"> </el-date-picker> 在method中定义star…

【ESP32 IDF】ESP32移植u8g2库,实现oled界面显示

ESP32移植u8g2库&#xff0c;实现oled界面显示 1. 简单描述2. 环境准备1. 硬件准备2. 软件准备 3. IIC屏幕 【基于 ssd1362 256*64 】4. SPI屏幕 【基于 ssd1306 128*32】 1. 简单描述 开发方式为 IDF5.0参考连接为 iic基于esp-idf移植使用u8g2 spi基于esp-idf移植使用u8g2 …

插入排序——直接插入排序和希尔排序(C语言实现)

文章目录 前言直接插入排序基本思想特性总结代码实现 希尔排序算法思想特性总结代码实现 前言 本博客插入排序动图和希尔排序视频参考大佬java技术爱好者&#xff0c;如有侵权&#xff0c;请联系删除。 直接插入排序 基本思想 直接插入排序是一种简单的插入排序法&#xff…

广播和组播

1. 广播 1.1 知识点 INADDR_ANY代表本机所有地址 常用方法当你将套接字绑定到INADDR_ANY&#xff0c;它会监听所有可用的网络接口&#xff0c;这意味着它将接受来自所有本地IP地址的传入连接或数据包 1.1.1 广播的流程 广播发送端&#xff1a; ----> 添加广播属性 1、建立套…

JAVA后端自学技能实操合集

JAVA后端自学技能实操 内容将会持续更新中,有需要添加什么内容可以再评论区留言,大家一起学习FastDFS使用docker安装FastDFS(linux)集成到springboot项目中 内容将会持续更新中,有需要添加什么内容可以再评论区留言,大家一起学习 FastDFS 组名&#xff1a;文件上传后所在的 st…

MySQL中是如何insert数据的

正常insert数据&#xff0c;MySQL并不会显式加锁&#xff0c;而是通过聚簇索引的trx_id索引作为隐式锁来保护记录的。比如两个事务对一个非唯一的索引情况添加&#xff0c;会造成幻读 但在某些特殊情况下&#xff0c;隐式锁会转变为显式锁&#xff1a; 记录之间有间隙锁inser…

Qt使用Cryptopp生成HMAC-MD5

近期项目中HTTPS通讯中&#xff0c;token需要使用HMAC-MD5算法生成&#xff0c;往上找了一些资料后&#xff0c;仍不能满足自身需求&#xff0c;故次一记。 前期准备&#xff1a; ①下载Cryptopp库&#xff08;我下载的是8.8.0 Release版本&#xff09;&#xff1a;Crypto Li…

基础课19——知识图谱问答引擎

1.概念 知识图谱是一种结构化的知识表示方式&#xff0c;将实体、属性和关系以图形的形式进行表达和组织。它通过对知识进行结构化建模&#xff0c;将不同实体之间的关系进行编码&#xff0c;形成一个图结构的知识网络。知识图谱的目标是将人类的知识整合到一个统一的框架中&a…

Segment Anything--SAM框架(二)

文章目录 prologuepaper && codeImage encoderPrompt encoderLightweight mask decoderMaking the model ambiguity-aware prologue 没什么事&#xff0c;写一写SAM的paper中关于模型框架的部分和实际代码部分。 paper && code SAM有三个组件&#xff0c;如图…

图数据库知识点9 | 大数据框架与图数据架构异同

开门见山&#xff0c;直奔主题&#xff0c;接续前面的知识点&#xff1a; 【图数据库知识点1|图数据库与关系型数据库的区别&#xff1f;】 【图数据库知识点2 | 图思维方式】 【图数据库知识点3 | 图数据库解决了什么问题&#xff1f;】 【图数据库知识点4 | 图计算与图数…

TypeScript枚举类型、类型断言

一. 概念 TypeScript中的枚举是一种数据类型&#xff0c;它是一组具有预定义名称的有限值的集合。枚举类型可以使代码更加可读、可维护和易于理解。 类似对象&#xff0c;枚举是将一组无序但极度相关数组集合在一起声明存储。 二. 枚举特性 1. 内部进行了双向赋值 enum Numb…

奕碳科技亮相COP28:展现中国智慧,引领全球碳减排新篇章

11月30日,联合国气候变化框架公约第28次缔约方大会 (COP28) 在阿联酋迪拜开幕。COP28是全球气候治理的重要盛会&#xff0c;汇聚了世界各国领导人、企业界和科学界代表&#xff0c;共同探讨和制定应对全球气候变化的策略与行动计划。在这样的背景下&#xff0c;企业群体的积极参…

力扣题:字符的统计-12.7

力扣题-12.7 [力扣刷题攻略] Re&#xff1a;从零开始的力扣刷题生活 力扣题1&#xff1a;467. 环绕字符串中唯一的子字符串 解题思想&#xff1a;记录下以字母s[i]结尾的最大的字串个数&#xff0c;然后统计a-z每个字母结尾的最大字串的个数进行i相加 class Solution(object…

「Verilog学习笔记」同步FIFO

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 timescale 1ns/1ns /**********************************RAM************************************/ module dual_port_RAM #(parameter DEPTH 16,parameter WIDTH 8)(in…