5.10.3 使用 Transformer 进行端到端对象检测(DETR)

news2024/10/5 17:19:59

框架的主要成分称为 DEtection TRansformer 或 DETR,是基于集合的全局损失,它通过二分匹配强制进行独特的预测,以及 Transformer 编码器-解码器架构。

DETR 会推理对象与全局图像上下文的关系,以直接并行输出最终的预测集。

1. 介绍

对象检测的目标是预测每个感兴趣对象的一组边界框和类别标签。

在计算机图形学和图像处理中,锚点(Anchor Point)是一个特定的位置,通常用于描述图像中的特征点或区域。它可以是单个像素点,也可以是一个更复杂的区域如矩形或椭圆。锚点的主要作用是为图像处理和计算机视觉任务提供一个参考点,以便更准确地描述和定位图像中的特征。在目标检测任务中,锚点用于预测目标物体的位置和大小;在图像匹配任务中,它帮助找到图像中的相似区域。

DETR 通过将通用 CNN 与 Transformer 架构相结合来直接(并行)预测最终的检测集。

二分匹配:模型的预测结果(包括坐标和类别概率)与真实框之间会进行最优的一一配对,即每个预测结果都会与一个真实框(或背景类,如果没有真实框与之匹配)进行匹配。 

通过将对象检测视为直接集合预测问题来简化训练流程。我们采用基于 Transformer 的编码器-解码器架构,这是一种流行的序列预测架构。 Transformer 的自注意力机制明确地模拟了序列中元素之间的所有成对交互,使这些架构特别适合集合预测的特定约束,例如删除重复的预测。

DEtection TRansformer(DETR)会同时预测所有对象,并使用一组损失函数进行端到端训练,该函数在预测对象和真实对象之间执行二分匹配。DETR 通过删除多个手工设计的编码先验知识的组件(例如空间锚点或非极大值抑制)来简化检测流程。

DETR 的主要特征是二分匹配损失和Transformer与(非自回归)并行解码的结合。

2. 相关工作

我们的工作建立在多个领域的先前工作的基础上:集合预测的二分匹配损失、基于Transformer的编码器-解码器架构、并行解码和对象检测方法。

2.1 集合预测

基本的集合预测任务是多标签分类,这些任务中的第一个困难是避免近似重复。当前大多数检测器使用非极大值抑制等后处理来解决此问题,但直接集预测无需后处理。他们需要全局推理方案来对所有预测元素之间的交互进行建模,以避免冗余。

后处理主要用于对目标检测算法的输出进行调整和优化,以提高检测结果的准确性和稳定性

损失函数应该通过预测的排列而保持不变。通常的解决方案是基于匈牙利算法设计损失,以找到真实值和预测之间的二分匹配。

匈牙利算法icon-default.png?t=N7T8https://blog.csdn.net/qq_52302919/article/details/132170356

2.2 Transformer和并行解码

Transformer,作为机器翻译的新的基于注意力的构建块。注意力机制 是聚合来自整个输入序列的信息的神经网络层。 Transformer 引入了自注意力层,与非局部神经网络类似,它扫描序列的每个元素,并通过聚合整个序列的信息来更新它。基于注意力的模型的主要优点之一是它们的全局计算和完美的记忆,这使得它们比 RNN 更适合长序列。

RNN循环神经网络icon-default.png?t=N7T8https://blog.csdn.net/zyf918/article/details/136172798

Transformer 最初用于自回归模型,遵循早期的序列到序列模型 ,一一生成输出标记。结合了变压器和并行解码,以在计算成本和执行集合预测所需的全局计算的能力之间进行适当的权衡。

Transformer模型中,并行解码(Parallel Decoding)指的是解码器(Decoder)部分能够同时处理多个输出位置,而不是像传统的递归神经网络(RNN)那样逐个位置地顺序生成输出。

2.3 对象检测

大多数现代物体检测方法都会根据一些初始猜测进行预测。在我们的模型中,通过使用绝对框预测直接预测检测集来简化检测过程。输入图像而不是锚点。

基于集合的损失

一些物体检测器使用了二分匹配损失。然而,在这些早期的深度学习模型中,不同预测之间的关系仅使用卷积层或全连接层进行建模。最近的检测器使用地面实况和预测之间的非唯一分配规则以及 NMS(非极大值抑制)

NMS的主要目的是解决目标检测算法输出目标框时的重叠问题。在目标检测任务中,算法通常会生成多个候选框来表示可能包含目标的区域。这些候选框往往会有一定的重叠,NMS的作用就是对这些重叠的候选框进行筛选,以保留最优的检测结果。

可学习的 NMS 方法和关系网络通过注意力显式地建模不同预测之间的关系。使用直接设置损失。然而,这些方法采用额外的手工制作的上下文特征  来有效地建模检测之间的关系,同时我们寻找减少模型中编码的先验知识的解决方案。

循环检测器

最接近的方法的是对象检测和实例分割的端到端集合预测。

使用基于 CNN 激活的编码器-解码器架构的二分匹配损失来直接生成一组边界框。

3. DETR模型

对于检测中的直接集合预测来说,有两个要素至关重要:

(1) 集合预测损失,强制预测框和真实框之间进行唯一匹配;

(2) 一种能够(在一次传递中)预测一组对象并对其关系进行建模的架构。

3.1 对象检测集预测损失

DETR 在通过解码器的单次传递中推断出一组固定大小的 N 个预测,其中 N 设置为明显大于图像中对象的典型数量。训练的主要困难之一是根据真实情况对预测对象(类别、位置、大小)进行评分。我们的损失在预测对象和真实对象之间产生最佳二分匹配,然后优化特定于对象(边界框)的损失。

y 表示对象的真实集合,并且\hat{y}=\{\hat{y}_{i}\}_{i=1}^{N} 表示 N 个预测的集合。假设 N 大于图像中的对象数量,我们也将 y 视为大小为 N 的集合,并用 \phi 填充。为了找到这两个集合之间的二分匹配,我们以最低成本搜索 N 个元素 \sigma\in\mathfrak{S}_{N} 的排列:\hat{\sigma}=\arg\min_{\sigma\in\mathfrak{S}_N}\sum_i^N\mathcal{L}_{\mathrm{match}}(y_i,\hat{y}_{\sigma(i)})

其中\mathcal{L}_{\mathrm{match}}(y_i,\hat{y}_{\sigma(i)})是真实值y_i和索引为\sigma (i)的预测之间的成对匹配成本。

匹配成本考虑了类别预测以及预测框和地面实况框的相似性。

真实集的每个元素 i 都可以视为 y_i = (c_i , b_i),其中 c_i 是目标类标签(可能是\O\phi),b_i\in[0,1]^4是一个向量,定义真实框中心坐标及其相对于图像大小的高度和宽度。

对于索引为 \sigma (i) 的预测,我们将类 c_i 的概率定义为 \hat{p}_{\sigma(i)}(c_i) ,将预测框定义为 \hat{b}_{\sigma(i)} 。利用这些符号,我们将\mathcal{L}_{\mathrm{match}}(y_i,\hat{y}_{\sigma(i)})定义为 -1_{\{c_i\neq\varnothing\}}\hat{p}_{\sigma(i)}(c_i)+1_{\{c_i\neq\varnothing\}}\mathcal{L}_{\mathrm{box}}(b_i,\hat{b}_{\sigma(i)})。需要找到一对一的匹配来进行直接集预测,而无需重复。

\mathcal{L}_{\mathrm{Hungarian}}(y,\hat{y})=\sum_{i=1}^{N}\left[-\log\hat{p}_{\hat{\sigma}(i)}(c_{i})+{1}_{\{c_{i}\neq\varnothing\}}\mathcal{L}_{\mathrm{box}}(b_{i},\hat{b}_{\hat{\sigma}}(i))\right]

边界框损失

我们的框损失是\mathcal{L}_{\mathrm{box}}(b_{i},\hat{b}_{\sigma(i)})定义为:\lambda_{\mathrm{iou}}\mathcal{L}_{\mathrm{iou}}(b_{i},\hat{b}_{\sigma(i)})+\lambda_{\mathrm{L}1}||b_{i}-\hat{b}_{\sigma(i)}||_{1}

3.2 DETR架构

一个用于提取紧凑特征表示的 CNN 主干、一个编码器-解码器 Transformer 以及一个简单的前馈网络 (FFN),该网络用于提取紧凑的特征表示。做出最终的检测预测。

主干

从初始图像x_{\mathrm{img}}\in\mathbb{R}^{3\times H_{0}\times W_{0}}开始,传统的 CNN 主干网生成较低分辨率的激活图

f\in\mathbb{R}^{C\times H\times W},使用的典型值为 C = 2048 和H,W=\frac{H_{0}}{32},\frac{W_{0}}{32}

Transformer编码器

首先,1x1 卷积将高级激活图 f 的通道维度从 C 减少到更小的维度 d。创建新的特征图

z_0\in R^{d\times H\times W}。编码器期望一个序列作为输入,因此我们将 z_0 的空间维度折叠为一维,从而产生 d×HW 的特征图。每个编码器层都有一个标准架构,由多头自注意力模块和前馈网络(FFN)组成。由于 Transformer 架构是排列不变的,我们用固定位置编码对其进行补充,并将其添加到每个注意层的输入中。

Transformer解码器

解码器遵循 Transformer 的标准架构,使用多头自注意力机制和编码器-解码器注意力机制来转换大小为 d 的 N 个嵌入。与原始 Transformer 的区别在于,我们的模型在每个解码器层并行解码 N 个对象,由于解码器也是排列不变的,因此 N 个输入嵌入必须不同才能产生不同的结果。这些输入嵌入是学习的位置编码,我们将其称为对象查询。

N 个对象查询被解码器转换为输出嵌入。然后通过前馈网络将它们独立解码为框坐标和类标签,从而产生 N 个最终预测。利用对这些嵌入的自注意力和编码器-解码器注意力,该模型使用它们之间的成对关系对所有对象进行全局推理,同时能够使用整个图像作为上下文。

预测前馈网络(FFNs)

最终预测由具有 ReLU 激活函数和隐藏维度 d 的 3 层感知器以及线性投影层计算。FFN 预测框的标准化中心坐标、高度和宽度。输入图像,线性层使用 softmax 函数预测类标签。

辅助解码损失

在每个解码器层之后添加预测 FFN 和匈牙利损失。所有预测 FFN 共享其参数。

使用额外的共享层范数来规范化来自不同解码器层的预测 FFN 的输入。

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

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

相关文章

WEB后端复习——javabean与会话cookie、session

JavaBean 是一种符合特定命名约定的 Java 类,它通常用于封装数据。 JavaBean 的主要特点是: 1. 无参构造器:JavaBean 必须有一个公共的(public)无参构造方法,以便于反射时能够创建对象实例。 2. 属性&…

【Linux网络】Https【下】{CA认证/证书的签发与认证/安全性/总结}

文章目录 1.引入证书【为方案五铺垫】1.1再谈https1.2SSL/TLS1.3CA机构1.4理解数字签名1.4继续铺垫1.5方案五服务端申请证书回顾一二三回顾方案四方案五过程寻找方案五的漏洞客⼾端对证书进⾏认证 2.查看证书2.1查看浏览器的受信任证书发布机构2.2中间⼈有没有可能篡改该证书2.…

nodeJs用ffmpeg直播推流到rtmp服务器上

总结 最近在写直播项目 目前比较重要的点就是推拉流 自己也去了解了一下 ffmpeg FFmpeg 是一个开源项目,它提供了一个跨平台的命令行工具,以及一系列用于处理音频和视频数据的库。FFmpeg 能够执行多种任务,包括解封装、转封装、视频和音频…

中霖教育:税务师考试可以申请免试吗?

符合下列相应条件之一的,可报名参加税务师职业资格考试: 1.取得经济学、法学、管理学学科门类大学本科及以上学历(学位);或者取得其他学科门类大学本科学历,从事经济、法律相关工作满1年。 2.取得经济学、法学、管理学学科门类大学专科学历…

【HCIP学习】BGP选路、过滤及属性

一、BGP路由选路原则(13条) 1、首先丢弃下一跳(NEXT_HOP)不可达的路由; 2、优选Preferred-value值最大的路由;默认为0; Preferred-value:定义:首选项。 属性值&#…

windows系统安装Ubuntu子系统

安装前先在 控制面板 中打开 程序与功能选项 ,点击 启用或关闭Windows功能: 勾选 适用于 Linux的Windows子系统 和 虚拟机平台 、 Hyper-v 。 重启电脑后再 Microsoft Store Windows应用商店 中下载合适的Ubuntu版本。 运行Ubuntu程序,如出现…

在xAnyLabeling中加载自己训练的yolov8s-obb模型进行半自动化标注

任务思路: 先使用xAnyLabeling标注一部分样本,训练出v1版本的yolov8-obb模型,然后加载yolov8-obb模型到xAnyLabeling中对其余样本进行半自动化标注。节省工作量。 任务流程: 1.准备xAnyLabeling标注工具 下载代码,…

[Flutter GetX使用] Getx路由和状态管理-GetController使用过程中的踩坑记录

文章目录 问题 - Get.find() 报错!原因总结A:路由和控制器设计a1:项目中的Get路由aa1.项目路由结构aa2.本项目路由的注意点: B: GetController的冷知识C: 总结来看D: 一些参考资料 问题 - Get.find() 报错! 刚接触Getx, 遇到 Get.find()确找不到, 进而报错的问题, 一时间有点没…

零基础学MySQL

1. 零基础学MySQL 1.1 数据库简介 1.1.1 数据库三层结构 1. 所谓安装Mysql数据库,就是在主机安装一个数据库管理系统(DBMS),这个管理程序可以管理多个数据库。DBMS(database manage system) 2. 一个数据库中可以创建多个表,以保存数据(信息)。 3. 数据…

OpenCompass 大模型评测实战学习笔记

大模型开源开放评测体系 “司南” (OpenCompass2.0),用于为大语言模型、多模态模型等提供一站式评测服务。其主要特点如下: 开源可复现:提供公平、公开、可复现的大模型评测方案 全面的能力维度:五大维度设计,提供 70…

iLogtail 社区开源之夏活动来了!

作者:玄飏 在这个充满活力的夏日,随着阳光一同灿烂的是开源精神的光辉与创新的火花。iLogtail 社区高兴地宣布,我们正式加入开源之夏 2024 的行列,诚邀每一位怀揣梦想与激情的学生开发者,共同开启一场探索技术前沿、贡…

2024年,Web开发新趋势!

随着我们迈入新的一年,现在正是审视2024年网页开发领域开始流行哪些趋势的绝佳时机。回顾2023年的一系列更新,以下是来年一些热门话题的概览。 自主托管有回归的趋势 近些年,自主托管一直是网页开发者和公司托管其应用程序的默认方式。开发…

【本地部署及云化部署】

文章目录 本地部署及云化部署介绍 文章目录 文章目录一、本地部署模式二、云化部署模式总结 一、本地部署模式 需建设专业化机房,系统应用、前端软件全部安装到本地服务器上。需要专业的IT、网络安全、DBA、电气化工程师进行维护。近些年勒索病毒安全事件频发&am…

【MySQL】SQL基本知识点DML(2)

目录 1.DML添加数据 2.DML-修改数据 (1)改​编辑 (2)删​编辑​编辑 3.DQL-基本查询 (1)查询多个字段​编辑​编辑​编辑 (2)设置别名 (3)去重操作 4…

跟TED演讲学英文:Teachers need real feedback by Bill Gates

Teachers need real feedback Link: https://www.ted.com/talks/bill_gates_teachers_need_real_feedback Speaker: Bill Gates Date: May 2013 文章目录 Teachers need real feedbackIntroductionVocabularyTranscriptSummary后记 Introduction Until recently, many teach…

云动态摘要 2024-05-12

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 [免费试用]即刻畅享自研SaaS产品 腾讯云 2024-04-25 涵盖办公协同、营销拓客、上云安全保障、数据分析处理等多场景 云服务器ECS试用产品续用 阿里云 2024-04-14 云服务器ECS试用产品续用…

汽车IVI中控开发入门及进阶(十七):IVI的功耗管理

汽车人机界面(HMI)系统旨在使驾驶员能够在不分心的情况下与车辆互动。HMI可以通过触摸板、按钮或语音系统在人和机器之间建立更自然的互动。对连接解决方案、低成本HMI软件和增强的用户体验(UX)的需求不断增加,使得平视显示器(HUD)、后座娱乐系统、基于转向的控制、仪表…

Sass深度解析:性能优化的秘密

首先,这篇文章是基于笔尖AI写作进行文章创作的,喜欢的宝子,也可以去体验下,解放双手,上班直接摸鱼~ 按照惯例,先介绍下这款笔尖AI写作,宝子也可以直接下滑跳过看正文~ 笔尖Ai写作:…

文件相关api

File 代表操作系统的文件对象,它提供了定位文件位置,获取文件中的信息,创建文件,删除文件等,但不能读写内容。 构造器: public File(String pathname) 根据文件路径,创建文件对象。(只会根据…

JeeSite 平台 Spring Boot 3 体验版发布,一个 Java 快速开发平台

引言 是时候为 Spring Boot 3 做准备了,2018年2月 Spring Boot 进入 2.0 时代,距今已经 5 年了。2022 年 11 月 Spring Boot 3.0 正式发布,它将基于 Spring Framework 6.0,并且需要 Java 17 版本,同时它也将是 Jakart…