transformer优化(二)-DETR 学习笔记

论文地址:https://arxiv.org/pdf/2005.12872.pdf

代码地址:https://github.com/bubbliiiing/detr-pytorch

https://github.com/facebookresearch/detr

1.是什么?

DETR(Detection Transformer)是一种基于Transformer的目标检测模型。它采用了一种全新的思路,将目标检测问题转化为一个集合预测问题。相比传统的目标检测方法,DETR不需要使用锚框或者候选框,而是直接从输入图像中预测出一组目标的边界框和类别。

DETR的整体结构如下:

  1. 编码器(Encoder):使用一系列的Transformer编码器层来提取输入图像的特征表示。
  2. 解码器(Decoder):使用一系列的Transformer解码器层来生成目标的边界框和类别预测。
  3. 多头自注意力机制(Multi-Head Self-Attention):用于捕捉目标之间的关系和上下文信息。
  4. 线性层和位置编码:用于将特征映射到目标的边界框和类别预测。

DETR的实现思路是通过Transformer模型来实现目标检测任务。它将目标检测问题转化为一个集合预测问题,通过直接从输入图像中预测出一组目标的边界框和类别来完成目标检测任务。

2.为什么?

提出了一种将目标检测视为直接集预测问题的新方法。我们的方法简化了检测管道,有效地消除了许多手工设计的组件,如非最大抑制过程或锚生成,这些组件显式地编码了我们对任务的先验知识。新框架的主要组成部分,称为检测变压器或DETR,是一个基于集合的全局损失,通过二部匹配强制进行唯一预测,以及一个变压器编码器-解码器架构。给定一组固定的小学习对象查询,DETR对对象和全局图像上下文的关系进行推理,以直接并行输出最终的预测集。新模型在概念上很简单,不像许多其他现代探测器那样需要专门的库

3.怎么样?

3.1网络结构

DETR的网络结构如图1所示,从图中可以看出DETR由四个主要模块组成:backbone,编码器,解码器以及预测头。

DETR使用传统的CNN主干来学习输入图像的二维表示。在将其传递到变压器编码器之前,模型将其扁平化并使用位置编码进行补充。然后,转换器解码器将少量固定数量的学习到的位置嵌入(我们称之为对象查询)作为输入,并额外关注编码器输出。我们将解码器的每个输出嵌入传递给一个共享前馈网络(FFN),该网络预测检测(类和边界框)或“无对象”类。

3.2原理分析

3.2.1 骨干网络

DETR的骨干网络是经典的卷积网络,它的输入定义为: x_{img}\epsilon \mathbb{R}^{3*H_{0}*W_{0}},它的输出是降采样 32 倍的Feature Map,表示为:f\epsilon \mathbb{R}^{C*H*W},其中 C=2048 , H=\frac{H_{0}}{32} 以及 W=\frac{W_{0}}{32}。在实验中作者使用的是ResNet-50或者ResNet-101作为基础网络。

3.2.2 Transformer编码器

Transformer编码器的详细结构如图2左侧部分所示。在得到Feature Map之后,DETR首先通过一个 1×1 卷积将其通道数调整为更小的 d ,得到一个大小为 d×H×W 的新的Feature Map。DETR的下一步则是将其转换为序列数据,这一步是通过reshape操作完成的,转换之后的数据维度是 d×(HW) 。因为Transformer是与输入数据的顺序无关的,因此它需要加上位置编码加入位置信息。这一部分会作为编码器的输入。DETR的编码器的Transformer使用的是多头自注意力模型加上一个MLP。

DETR的位置编码是分别计算了两个维度的位置编码,然后将它们拼接到一起。其中每个维度的位置编码使用的是和Transformer相同的计算方式。 

3.2.3 Transformer解码器

DETR的解码器如图2右侧部分所示,它有两个输入,一个是编码器得到的特征,另外一个是object queries。这里我们重点讲一下object queries。

在DETR中,object queries的作用类似于基于CNN的目标检测算法中的anchor boxes。它共有 N 个(N 是一个事先设定好的超参,它的值远大于一个图片中的目标数)。N 个不同的object queries输入的解码器中便会得到 N 个decoder output embedding,它们经过最后的MLP得到 N 个预测结果。不同的N 个Object queries保证了 N 个不同的预测结果,Object queries是一个可以训练的嵌入向量,它通过和ground truth的匈牙利匹配(附件A)来向不同的ground truth进行优化。

注意这 N 个结果不是顺序得到的,而是一次性得到 N 个结果,这点和原始的Transformer的自回归计算是不同的。

3.2.4 MLP预测头

预测头是一个3层的Perceptron,激活函数使用的是ReLU,隐层节点数是d 。每个Object queries通过预测头预测目标的bounding box和类别,其中bounding box有三个值,分别是目标的中心点以及宽和高。DETR共预测 N 个bounding box, N 是一个远大于图片中目标个数的值,超过目标个数的ground truth使用背景元素来作为负样本。

参考:Transformer目标检测之DETR

DETR 核心思路理解

深度学习之目标检测(十一)--DETR详解

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

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

相关文章

新崛起的自动化神器Playwright

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

词语的魔力:语言在我们生活中的艺术与影响

Words That Move Mountains: The Art and Impact of Language in Our Lives 词语的魔力:语言在我们生活中的艺术与影响 Hello there, wonderful people! Today, I’d like to gab about the magical essence of language that’s more than just a chatty tool in o…

怎么去除水中的溴酸盐

语:近年来,我国矿泉水市场发展迅速,各种品牌和类型的矿泉水琳琅满目。然而,在众多矿泉水产品中,部分产品却存在溴酸盐超标的问题。本文将为您揭示矿泉水溴酸盐超标的危害,提醒消费者在选购矿泉水时务必谨慎…

redis的事件机制

文章目录 文件事件1. 文件事件处理器的构成2. I/O多路复用程序的实现3. 事件的类型4. 文件事件的处理器 时间事件1. 实现 事件的调度与执行 Redis服务器是一个事件驱动程序(单Reactor单线程模型),服务器需要处理以下两类事件: 文件…

Kafka(三)【Broker 存储】

目录 前言 Kafka Broker 1、工作流程 1.1、Zookeeper 存储的 Kafka 信息 1.2、Kafka Broker 的总体工作流程 1.3、Broke 重要参数 2、Kafka 副本 2.1、副本基本信息 2.2、Keader 选举流程 2.3、Leader 和 Follower 的故障处理细节 Follower 故障 Leader 故障&#x…

2017年认证杯SPSSPRO杯数学建模A题(第一阶段)安全的后视镜全过程文档及程序

2017年认证杯SPSSPRO杯数学建模 A题 安全的后视镜 原题再现: 汽车后视镜的视野对行车安全非常重要。一般来说,汽车的后视镜需要有良好的视野范围,以便驾驶员能够全面地了解车后方的道路情况。同时,后视镜也要使图像的畸变尽可能…

国产品牌GC6609与TM2209的参数分析,为什么适用于3D打印机,医疗器械等产品中

步进电机驱动的应用方案目前市场上大多选用国外品牌的电机驱动器,其中trinamic的TMC2208/2209在这一块的应用很广泛。但是由于市场越来越应激。,当前对于产品开发成本要求也越来越低,国产品地准出了相应的TMC2208/2209,因此trinam…

Vue3+ElementUI 多选框中复选框和名字点击方法效果分离

现在的需求为 比如我点击了Option A &#xff0c;触发点击Option A的方法&#xff0c;并且复选框不会取消勾选&#xff0c;分离的方法。 <el-checkbox-group v-model"mapWork.model_checkArray.value"> <div class"naipTypeDom" v-for"item …

国家急救日倡议活动暨120急救大课堂公益培训在京成功举办

2024年1月20日&#xff0c;由国家卫生健康委员会等多个相关部门指导&#xff0c;中国医院协会急救中心&#xff08;站&#xff09;分会主办&#xff0c;北京急救中心承办的“国家急救日”倡议活动暨急救科普大课堂公益培训系列活动&#xff0c;在全国范围内启动。 健康中国行动…

王晶感慨62岁刘德华的一日三餐,简直不是人过的日子

♥ 为方便您进行讨论和分享&#xff0c;同时也为能带给您不一样的参与感。请您在阅读本文之前&#xff0c;点击一下“关注”&#xff0c;非常感谢您的支持&#xff01; 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 你是否曾对那些身材保持得如此之好的人感到过羡慕&#xff1f…

使用vue-pdf插件加载pdf

安装&#xff1a; // 安装这个版本&#xff0c;其它版本会有千奇百怪的错&#xff0c;这个版本和4.0.0都是可以的 cnpm install vue-pdf4.2.0// 安装pdfjs-dist cnpm install pdfjs-dist2.5.207 使用&#xff1a; // 我的css样式是pxToRem&#xff0c;友友们使用可能样式会有…

HCIP之BGP联邦实验

华子目录 实验拓扑及要求规划网段和IP地址实验步骤配置IP地址先让IGP通建BGP邻居修改ospf下环回接口网络类型修改联邦之间的最大跳数每台运行BGP的路由器批量宣告路由修改本地下一跳测试 实验拓扑及要求 规划网段和IP地址 实验步骤 配置IP地址 r1配置&#xff0c;依次类推 […

什么叫单位矩阵?

单位矩阵&#xff08;Identity Matrix&#xff09;是一个特殊的方阵&#xff0c;其主对角线上的元素全为1&#xff0c;而其他元素全为0。单位矩阵通常用符号 I 或 E 表示。 一个nn 的单位矩阵的表示形式如下&#xff1a; 其中&#xff0c;主对角线上的元素全为1&#xff0c;…

C/Cxx-面向对象中Message的概念

在Programming Abstractions in C pp.129遇到了面向对象中messages这个概念&#xff1a; “In the object-oriented world, objects communicate by sending information and requests from one object to another. Collectively, these transmissions are called messages. Th…

Unity New Input System 及其系统结构和源码浅析【Unity学习笔记·第十二】

转载请注明出处&#xff1a;&#x1f517;https://blog.csdn.net/weixin_44013533/article/details/132534422 作者&#xff1a;CSDN|Ringleader| 主要参考&#xff1a; 官方文档&#xff1a;Unity官方Input System手册与API官方测试用例&#xff1a;Unity-Technologies/InputS…

「优选算法刷题」:在排序数组中查找元素的第一个和最后个位置

一、题目 给你一个按照非递减顺序排列的整数数组 nums&#xff0c;和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target&#xff0c;返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 示例 1&a…

springcloud alibaba sentinel熔断降级

简介 随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点&#xff0c;从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 sentinel相当于hystrix的升级版&#xff0c;加入了web界面&#xff0c;能够实时在线的改变流…

小微企业科技创新之策略:人才、投入、模式、技术、支持四管齐下

对于小微企业来说&#xff0c;搞科技创新需要从多个方面入手。以下是一些可供参考的方法&#xff1a; 明确创新方向&#xff1a;首先&#xff0c;企业需要明确自己的创新方向和目标&#xff0c;这有助于聚焦资源&#xff0c;避免盲目投入。同时&#xff0c;企业需要对市场进行…

【2024开年必备】最全面的Macbook/苹果电脑必备实用软件推荐

刚刚入手Macbook/苹果电脑需要安装哪些软件呢&#xff1f;越来越多的人使用 Mac&#xff0c;各种功能、各式各样的 Mac 软件也是五花八门。刚拿到 Mac 的小伙伴们可能会有点迷茫&#xff0c;今天就帮大家分类整理一些装机必备好用的 App&#xff0c;希望可以帮助到大家&#xf…

leetcode:最接近的三数之和---(双指针,排序,数组)

题目&#xff1a; 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数&#xff0c;使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 示例&#xff1a; 示例 1&#xff1a; 输入&#xff1a;nums [-1…