无锚框原理 TOOD:Task-aligned One-stage Object Detection

无锚框原理 TOOD:Task-aligned One-stage Object Detection

  • 一 摘要
  • 二 引言
    • TOOD设计
  • 三 具体设计
    • Task-aligned Head
      • 任务对齐的预测器 TAP
      • 预测对齐
    • TAL 任务对齐学习
      • Task-aligned Sample Assignment
      • 多任务损失

一 摘要

一阶段目标检测通常通过优化两个子任务来实现:对象分类和定位,使用具有两个平行分支的头部,这可能导致两个任务之间预测的空间对齐程度不一致。
提出了一种“任务对齐一阶段目标检测”方法,以学习方式明确地对齐这两个任务。首先设计了一种新颖的任务对齐头(T-head),它在学习任务交互和任务特定特征之间提供了更好的平衡,也更灵活地通过任务对齐预测器学习对齐。
其次,我们提出了任务对齐学习(TAL),通过设计的样本分配方案和任务对齐损失,在训练过程中明确地拉近(甚至统一)两个任务的最优锚点。具有更少的参数和FLOPs

二 引言

目标检测在从自然图像中定位和识别感兴趣的物体,是计算机视觉中一项基础而具有挑战性的任务。通常采用多任务学习的方式来进行问题建模,通过同时优化目标分类和定位。分类任务旨在学习着重于物体关键或显著部分的区分特征,而定位任务则在准确地定位整个物体及其边界,由于分类和定位的学习机制不同,通过两个独立分支进行预测时,所学习到的特征的空间分布可能不同,导致一定程度的错位。

一阶段物体检测器通过专注于物体中心,试图预测两个单独任务的一致输出结果,他们假设物体中心的锚点更有可能为分类和定位提供更准确的预测。

例:FCOS和ATSS都使用了一个中心度分支来增强从靠近物体中心的锚点预测的分类分数,并为相应锚点的定位损失分配更大的权重。此外,FoveaBox将物体内预定义的中心区域中的锚点视为正样本。

但是 :有缺陷

  • 分类和定位的独立性。最近的一阶段检测器通过使用两个独立的分支(也就是头部)并行进行对象分类和定位。这样的两分支设计可能导致两个任务之间缺乏交互,从而在执行他们时导致预测不一致。
  • 无任务特异性的样本分配。大多数无锚点检测器使用基于几何的分配方案,为了分类和定位都会选择靠近对象中心的锚点,而基于锚点的检测器通常通过计算锚框和真值之间的IOU来分配锚框。然而,用于分类和定位的最佳锚点往往不一致,并且可能根据对象的形状和特征而有很大的变化。广泛使用的样本分配方案是无任务特异性的,因此很难对这两个任务进行准确而一致的预测。在非极大值抑制期间,一个精确的边界框可能会被一个不太准确的边界框所抑制。

TOOD设计

  • 任务对齐头部。与传统的单阶段目标检测中使用两个并行的分支分别实现分类和定位不同,我们设计了一个任务对齐头部(T-head)来增强两个任务之间的交互,这使得这两个任务能跟协作的工作,从而使他们的预测更加准确对齐。他通过计算任务交互特征,并通过一种新颖的任务对齐预测器(TAP)进行预测 ,然后根据任务对齐学习提供的学习信号,它根据这两个预测的空间分布进行对齐。
  • 任务对齐学习。为了进一步克服不对齐问题,我们提出了任务对齐学习(TAL),来明确地拉近两个任务的最优锚点,他通过设计样本分配方案和任务对齐损失来完成。样本分配通过计算每个锚点的任务对齐程度来收集训练样本(即正负样本),而任务对齐损失在训练过程中逐渐统一用于预测分类和定位的最佳锚点。因此在推理阶段,可以保留具有高分类分数并共同具有精确定位的边界框

三 具体设计

T-head和TAL可以协同工作,改进两个任务的对齐。具体而言,T-head首先对FPN特征进行分类和定位预测,然后TAL根据一个新的任务对齐度量计算任务对齐信号。该度量衡量了两个预测之间的对齐程度。最后,在方向传播过程中,T-head根据从TAL计算得到的学习信号自动调整其分类概率和定位预测。请添加图片描述

Task-aligned Head

设计一个高效的头部结构,以改进一阶检测器中头部的传统设计。在这项工作中,我们通过考虑两个方面来实现这一步目标:

  • 增加两个任务之间的交互
  • 增强检测器学习对齐的能力
    TAP包括一个简单的特征提取器和两个任务对齐预测器
    请添加图片描述
    请添加图片描述
    为了增强分类和定位之间的交互,我们使用一个特征提取器从多个卷积层中学习一个堆叠的任务交互特征,如上图蓝色部分。这个设计不仅有助于任务之间的交互,还为这两个任务提供了多层次的特征和多尺度的有效感受野。
    请添加图片描述

任务对齐的预测器 TAP

我们在计算的任务交互特征上同时进行目标分类和定位,这两个任务能够很好地感知彼此的状态。然而,由于单分支的设计,任务交互特征不可避免地会在两个不同任务之间引入一定程度的特征冲突,在这种也有所讨论,直观上,目标分类和定位的目标不同,因此关注不同类型的特征(如:不同的层次或感受野)。因此,我们提出了一种层级注意力机制,通过在层级上动态计算这些任务特定的特征,鼓励任务的分解。请添加图片描述
请添加图片描述

预测对齐

在预测步骤中,我们进一步通过调整两个预测的空间分布P和B明确地对齐这两个任务。与以往的研究不同,以往的研究使用一个中心性的分支或一个IOU分支,这些方法只能基于分类特征或定位特征之一来调整分类预测,我们通过考虑使用计算出的任务交互特征来同时对齐这两个预测任务,值得注意的是,我们在这两个任务上分别执行对齐方法。
请添加图片描述
请添加图片描述
请添加图片描述
偏移量独立地学习到每个通道,意味着物体的每个边界都有自己独立学习的偏移量。这使得四个边界能够更准确地预测,因为,每个边界都可以从其附近最精确的锚点中单独学习,因此,我们的方法不仅可以对齐两个任务,还可以通过每个边界识别一个精确的锚点来提高定位的精度。
请添加图片描述
请添加图片描述
其中Conv1和Conv3是用于将维的两个1X1卷积层,M和O的学习是通过使用提出的任务对齐学习(TAL)来完成的

TAL 任务对齐学习

我们进一步引入了任务对齐学习,用于指导我们的T-head生成任务对齐的预测。TAL与之前的方法在两个方面有所不同,首先,从任务对齐的角度来看,它根据设计的度量标准动态选择高质量的锚点。其次,他同时考虑了锚点分配和权重分配,它包括一种样本分配策略和专门用于对齐两个任务的新损失函数。

Task-aligned Sample Assignment

为了应对NMS,一个训练实例的锚点分配应该满足以下规则:

  • 一个良好对齐的锚点应能够同时预测出高精度的分类分数和精确的定位
  • 一个未对齐的锚点应该具有较低的分类分数,并会随后被抑制。
    基于这两个目标,我们设计了一种新的锚点对齐度量方法,用于显式地测量锚点级别的任务对齐程度。该对齐度量方法被集成到样本分配和损失函数中,以动态地改进每个锚点的预测结果。

锚点对齐度量
考虑到一个分类得分和预测边界框与真实边界框之间的重叠联合(IOU)指示了两个任务的预测质量,我们使用分类得分和IOU的高阶组合来衡量任务对齐的程度。具体地,我们设计了一下度量方式来计算每个实例的锚点级别对齐度:
请添加图片描述
其中s和u分别表示分类得分和IOU值,α和β用于控制锚点对齐指标中两个任务的影响。值得注意的是,t在两个任务的联合优化中扮演了关键角色,以实现任务对齐的目标。它鼓励网络从联合优化的角度动态关注高质量的锚点。
训练样本分配
训练样本的分配对于目标检测器的训练至关重要,为了改善两个任务的对齐,我们关注任务对齐的锚点,并采取一个简单的分配规则来选择训练样本:对于每个实例,我们选择具有最大t值的m个锚点作为正样本,而将剩余的锚点作为负样本。同样,训练是通过计算机专门设计用于任务分类和定位对齐的新损失函数来进行的。

多任务损失

分类目标为了明确增加对齐锚点的分类分数,同时减少对齐不良的锚点的分数(即具有较小的t),我们在训练过程中使用t代替正锚点的二进制标签。然而,我们发现当正锚点的标签(即t)随着α和β的增加而变小时,网络无法收敛,因此,我们使用归一化的t,即^t 来代替正锚点的二进制标签,其中, 它通过一下两个属性进行归一化:

  • 确保对困难实例进行有效学习(通常具有所有对应正锚点的较小t)
  • 根据预测边界框的精确度保持实例之间的排序关系
    因此,我们采用简单的实例级归一化来调整t的尺度:在每个实例中,t的最大值等于最大的IOU值(u),然后,对于分类任务,在正锚点上计算的二元交叉熵(BCE)可以重新表达为:
    请添加图片描述
    其中,i表示第i个锚点,来自于与一个实例相对应的的N个正锚点,我们使用焦点损失来进行分类,以减轻训练过程中负样本和正样本之间的不平衡问题。对于正锚点计算的焦点损失可以通过公式10进行重新表述,分类任务的最终损失函数定义为:
    请添加图片描述
    本地化目标 通常情况下,由良好对齐的锚框(即具有较大的t值)预测的边界框不仅具有较大的分类得分和准确的定位,而且这样的边界框在非极大值抑制过程中更有可能保留下来,此外,可以通过加权更谨慎的处理损失来应用t值从而选择高质量的边界框,以改善训练。从高质量的边界框中学习对模型的性能是有益的,而低质量的边界框往往通过产生大量不太有信息且冗余的信号来更新模型,对训练产生负面影响,在我们的情况下,我们应用t值来衡量边界框的质量,因此,我们通过关注良好对齐的锚框(且具有较大的t值)来改善任务对齐和回归精度,同时减少边界框回归中不良对齐的锚框(具有较小的t值)的影响,与分类目标类似,基于^t的重加权每个锚框的边界框回归损失,而GIOU损失可以重新定义为:
    请添加图片描述
    请添加图片描述

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

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

相关文章

CSS中所有选择器详解

文章目录 一、教学视频二、基础选择器1.标签选择器2.类选择器3.id选择器4.通配符选择器 三、复合选择器1.交集选择器2.并集选择器 四、属性选择器1.[属性]2.[属性属性值]3.[属性^属性值]4.[属性$属性值]5.[属性*属性值] 五、关系选择器1.父亲>儿子2.祖先 后代3.兄弟4.兄~弟 …

Mermaid系列之FlowChart流程图

一.欢迎来到我的酒馆 介绍mermaid下,Flowchat流程图语法。 目录 一.欢迎来到我的酒馆二.什么是mermiad工具三.在vs code中使用mermaid四.基本语法 二.什么是mermiad工具 2.1 mermaid可以让你使用代码来创建图表和可视化效果。mermaid是一款基于javascript语言的图表…

Vue2 第二十一节 Vue UI组件库

移动端常用UI组件 1. Vant https://youzan.github.io/vant 2. Cube UI https://didi.github.io/cube-ui 3. Mint UI http://mint-ui.github.io PC端常用UI组件 1. Element UI https://element.eleme.cn 2. IView UI https://www.iviewui.com 一. Element UI 的引入和使…

我国洪涝灾害分布图

声明:来源网络,仅供学习!

Apache Paimon 学习笔记

本博客对应于 B 站尚硅谷教学视频 尚硅谷大数据Apache Paimon教程(流式数据湖平台),为视频对应笔记的相关整理。 1 概述 1.1 简介 Flink 社区希望能够将 Flink 的 Streaming 实时计算能力和 Lakehouse 新架构优势进一步结合,推…

C++QT教程1——QT概述(下载与安装)

文章目录 1 Qt概述1.1 什么是Qt1.2 Qt的发展史1.3 Qt版本1.4 Qt的下载与安装下载地址:其实我是有点懵逼的,因为还有个qtcreator,我差点不知道下哪个。。。(qt框架比qtcreator功能更多更强大) 安装 1.5 Qt的优点1.6 QT成…

了解IL汇编异常处理语法

从网上拷过来一个IL汇编程序,编译时先报如下错, 看它是把空格识别为了下注红线的字符,这是字符编码的问题,用记事本替换功能替换了; 然后又报如下的错, 看不出来问题,拷一句正确的来&#xff0…

[考研机试] KY20 完数VS盈数 清华大学复试上机题 C++实现

描述 一个数如果恰好等于它的各因子(该数本身除外)子和,如:6321。则称其为“完数”;若因子之和大于该数,则称其为“盈数”。 求出2到60之间所有“完数”和“盈数”。 输入描述: 题目没有任何输入。 输出描述&#…

STM32 4G学习(二)

特性参数 ATK-IDM750C是正点原子开发的一款高性能4G Cat1 DTU产品,支持移动4G、联通4G和电信4G手机卡。 它以高速率、低延迟和无线数传作为核心功能,可快速解决应用场景下的无线数传方案。 它支持TCP/UDP/HTTP/MQTT/DNS/RNDIS/NTP协议,支持…

DevOps在项目管理中的魔法:简化与深化

什么是DevOps? 定义与核心思想 DevOps, 这个名词,在技术领域中饱受瞩目。但它到底是什么?首先,DevOps并不仅仅是一个技术或者工具,它首先是一种文化,一种思想。DevOps是Development(开发&#…

Mac 安装不在 Apple 商店授权的应用程序

文章目录 一、场景介绍二、实操说明 一、场景介绍 在日常的工作生活中,发现一些好用的应用程序,但是出于某些原因,应用程序的开发者并没有将安装包上架到苹果商店。 那么这些优秀的应用程序下载安装以后就会出现如下弹框被拒之门外 二、实操…

【redis】能ping通虚拟机但是端口无法访问

问题 虚拟机上有redis,能ping通虚拟机的ip,但是idea连不上虚拟机里的redis,telnet已启动的redis6379端口失败 基本情况 虚拟机网络模式是NAT模式,linux防火墙firewalld已关闭,没有iptables,主机和虚拟机…

100% 手写代码的十九年老程序员就要被淘汰吗?

👉导读 近日,推上用户分享的一则事件引发热议。一名拥有 19 年编码经验、会 100% 手写代码的程序员 Alex 在面试中败给一位仅有 4 年经验却善用 Copilot、GPT-4 的新人 Hamid。前者因不愿拒绝使用辅助代码工具,过于追求代码可控,惨…

Redis 事务

Redis 事务 事务是指一个完整的动作,要么全部执行,要么什么也没有做。 Redis 事务不是严格意义上的事务,只是用于帮助用户在一个步骤中执行多个命令。单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增加任何维持原子性…

一生一芯1——windows与Ubuntu双系统安装

UltraISO下载 下载链接:https://pan.baidu.com/s/18ukDs6yL64qU6thYyZEo-Q?pwdo8he 提取码:o8he 一路傻瓜安装,安装后点击继续试用 Ubuntu系统下载 这里我使用的是官网的22.04版本,由于大于4G,无法上传至百度网盘…

操作指南 | 如何使用Chainlink喂价功能获取价格数据

Chainlink的去中心化预言机网络中的智能合约包含由运行商为其他智能合约(DApps)使用或截取所持续更新的实施价格数据。其中有两个主要架构:喂价和基础要求模型。此教程将会展现如何在Moonbeam、Moonriver或是Moonbase Alpha测试网上使用喂价功…

自动拆箱与装箱

自动拆箱与装箱 先进行专栏介绍自动拆箱与装箱是Java语言中一个重要的特性,它们在编程过程中起着至关重要的作用。本文将深入探讨自动拆箱与装箱的原理和相关细节。概念基本概念分析 原理自动拆箱的原理自动装箱的原理总结 注意事项代码示例 先进行专栏介绍 本专栏…

Synchronized同步锁的优化方法 待完工

Synchronized 和后来出的这个lock锁的区别 在并发编程中,多个线程访问同一个共享资源时,我们必须考虑如何维护数据的原子性。在 JDK1.5 之前,Java 是依靠 Synchronized 关键字实现锁功能来做到这点的。Synchronized 是 JVM 实现的一种内置锁…

奥威BI系统:零编程建模、开发报表,提升决策速度

奥威BI是一款非常实用的、易用、高效的商业智能工具,可以帮助企业快速获取数据、分析数据、展示数据。值得特别注意的一点是奥威BI系统支持零编程建模、开发报表,是一款人人都能用的大数据分析系统,有助于全面提升企业的数据分析挖掘效率&…

java+springboot+mysql日程管理系统

项目介绍: 使用javaspringbootmysql开发的日程管理系统,系统包含超级管理员、管理员、用户角色,功能如下: 超级管理员:管理员管理;用户管理;反馈管理;系统公告;个人信息…
最新文章