【目标检测】图解 DETR 系统框图

简略版本

在这里插入图片描述

  1. Backbone:CNN backbone 学习图像的 2D 特征
  2. Positional Encoding:将 2D 特征展平,并对其使用位置编码(positional encoding)
  3. Encoder:经过 Transformer 的 encoder
  4. Decoder:encoder 的输出 + object queries 作为 Transformer 的 decoder 输入
  5. Prediction Heads:将 decoder 的每个输出都送到 FFN 去输出检测结果

细节版本

在这里插入图片描述

  1. Backbone:特征提取:CNN backbone 学习图像的 2D feature,输出 2048 个通道,32 倍下采样(输入为 ( C , H , W ) (C,H,W) (C,H,W) ,输出为 ( 2048 , H / 32 , W / 32 ) (2048, H/32,W/32) (2048,H/32,W/32)
  2. Backbone:降维:通过一个 1 × 1 1 \times 1 1×1 的 Conv2D 卷积,将通道降为 256(为的是减少 Embedding 向量,即 token 的长度)。
  3. Backbone:展平:将 2D 特征展平,然后将展平的维度放置在第一个维度
  4. Encoding:位置编码(1):与普通的 Transformer 不同的地方在于,普通 Transformer 只需要在第一个 Encoder 的输入处进行一次位置编码即可,但是 DETR 这里,如果有 N N N 个 Encoder,则需要在 N N N 个 Encoder 输入的时候都要进行一次位置编码。官方代码的位置编码的生成有两种方式:(a)正弦位置编码;(b)可学习的位置编码;
  5. Encoding:位置编码(2): K = X P E ⋅ W K \mathbf{K} = \mathbf{X}_{PE}\cdot\mathbf{W}^K K=XPEWK Q = X P E ⋅ W Q \mathbf{Q} = \mathbf{X}_{PE}\cdot\mathbf{W}^Q Q=XPEWQ 是通过经过位置编码处理的输入 X \mathbf{X} X 生成的;但是 V = X ⋅ W V \mathbf{V}=\mathbf{X}\cdot\mathbf{W}^V V=XWV 的输入是没有经过位置编码的。
  6. Encoding:Dropout:在这两个部分都会先进行 Dropout 操作

Decoder 的 4 个输入:
a. Encoder Memory:也就是 Encoder 的输出,应该和输入是一样的维度,也就是 ( 850 , b s , 256 ) (850, bs, 256) (850,bs,256)
b. Spatial positional encoding:空间位置编码,应该也是 256 维度的一维向量
c. Decoder received queries (Queries):表示内容信息 content(可理解为 label 信息),初始设置成 0,shape 是 100 × 256 100 \times 256 100×256
d. Output positional encoding (object queries):输出位置编码,表示位置信息 position(可理解为 box 位置信息),shape 也是 100 × 256 100 \times 256 100×256


  1. Decoding:Dropout:解码器部分的 Dropout,与编码器的部分一样。
  2. Decoding:位置编码:进入第一个多头注意力模块,与步骤 6 中的位置编码一样,进入第二个多头注意力模块,仅对上一个注意力的输出进行位置编码。
  3. Decoding:第二层多头注意力:假设 V \mathbf{V} V K \mathbf{K} K 在不考虑 batchsize 的情况下都是 ( 850 , 256 ) (850, 256) (850,256),而 Q \mathbf{Q} Q 的维度是 ( 100 , 256 ) (100, 256) (100,256)。经过过头注意力机制之后,输出的维度和 Q \mathbf{Q} Q 一样,还是 ( 100 , 256 ) (100, 256) (100,256)
  4. Decoding:输出维度:分为验证和训练两种情况,在训练阶段,会将 M M M 个 decoder 模块 FNN 层后的接出来,放到辅助解码损失里,一起计算损失,实现深监督(deep supervise),验证阶段就直接输出一个 ( b s , 100 , 256 ) (bs, 100, 256) (bs,100,256) 的矩阵。
  5. Prediction heads:Class:分类头,通过一个 FC 全连接层接一个 Softmax 函数实现的 FFN。这里的 num_cls + 1 多出来的一种分类是背景 background。
  6. Prediction heads:Bounding box:位置头,通过一个 MLP 网络,内含三个 FC 全连接层,结尾是 Sigmoid 函数进行归一化。
  7. 筛选:根据分类头得到的分类置信度和设定的阈值进行筛选,保留大于 0.7 的。

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

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

相关文章

Python用于解析 XML 数据之untangle使用详解

概要 在处理 XML 数据时,解析和提取数据是一个常见的需求。虽然 Python 提供了多种处理 XML 的库,如 xml.etree.ElementTree 和 lxml,但它们通常需要编写较多的代码来解析和处理 XML 数据。untangle 库是一个轻量级的 Python 库,它提供了一种简单而直观的方式来解析 XML 数…

快速又不失灵活性的JeecgBoot框架

简介JeecgBoot 开源界 "小普元" 超越传统商业平台。引领低代码开发模式 (OnlineCoding-> 代码生成器 -> 手工 MERGE),低代码开发同时又支持灵活编码, 可以帮助解决 Java 项目 70% 的重复工作,让开发更多关注业务。既能快速提…

解决数据丢失问题的MacOS 数据恢复方法

每个人都经历过 Mac 硬盘或 USB 驱动器、数码相机、SD/存储卡等数据丢失的情况。我们中的一些人可能认为已删除或格式化的数据将永远丢失,因此就此作罢。对于 macOS 用户来说,当文件被删除时,垃圾箱已被清空,他们可能不知道如何恢…

利用GD32F470的定时器实现频率和占空比测试

1&#xff09;main函数代码如下&#xff1a; #include "gd32f4xx.h" #include <stdio.h> #include "gd32f470i_eval.h" #include "systick.h"void TIM_PwmInit(void) {rcu_periph_clock_enable(RCU_GPIOA);/* PWM输出管脚为复用推挽模式 …

一次压测引发的数据库 CPU 飙升

作者&#xff1a;昀鹤 一次压测过程中&#xff0c;当数据库的 qps 和 tps 都正常时&#xff0c;如果 cpu 利用率异常的高&#xff0c;应该如何排查&#xff1f;希望通过这篇文章&#xff0c;给你一些启发... 一、业务背景 业务需要控制频道内兑换现金的数量&#xff0c;于是在…

肆拾玖坊三级众筹模式玩法揭秘,白酒体验馆运作模式

发展至今&#xff0c;肆拾玖坊已积累了数百万忠实用户&#xff0c;拥有100多家分销商、5000多个新零售终端&#xff0c;覆盖全国34个省级行政区域、200余地市、1500个县区。成为中国创业界和酒行业的“现象级”企业。 今天&#xff0c;我们就来深入解析肆拾玖坊的营销模式&…

智能猫砂盆效果这么惊艳吗?绝对不踩雷的智能猫砂盆合集来啦

身为一个铲屎官&#xff0c;我深受“天天铲屎”的困扰。想要片刻放松都不行&#xff0c;因为猫砂盆一旦堆积屎尿&#xff0c;尤其在夏天&#xff0c;会迅速发臭&#xff0c;滋生细菌。对猫而言&#xff0c;不清理猫砂盆会让它们感到不适&#xff0c;可能引发疾病或拒绝使用猫砂…

C#唯一进程的处理Winform/WPF

C#唯一进程的处理 1.使用进程&#xff08;Process&#xff09;判断winformWPF执行效果&#xff1a; 2.使用互斥体&#xff08;Metux&#xff09;实现winformWPF实现效果&#xff1a; 在C#客户端&#xff08;Winform/WPF&#xff09;开发过程中&#xff0c;有的情况需要确保程序…

ubuntu22.04安装onlyoffice社区版

安装unbuntu22.04 https://blog.csdn.net/qq_36437991/article/details/135915360 安装onlyoffice sudo apt-get update sudo apt-get upgradepostgresql sudo apt-get install postgresql创建用户和数据库 sudo -i -u postgres psql -c "CREATE USER onlyoffice WIT…

ERP系统品牌大比拼:哪款产品更适合您的企业?

ERP集成了企业的销售、采购、生产、财务等各个环节&#xff0c;实现了资源的优化配置和信息的实时共享。然而&#xff0c;面对市场上琳琅满目的ERP系统产品&#xff0c;许多企业却陷入了选择的困境。 “哪款ERP系统更适合我的企业呢&#xff1f;”这或许是每一位企业决策者心中…

【STM32】SysTick系统滴答定时器

1.SysTick简介 CM4内核的处理和CM3一样&#xff0c;内部都包含了一个SysTick定时器&#xff0c;SysTick 是一个24 位的倒计数定时器&#xff0c;当计到0 时 &#xff0c;将 从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick 控制及状态寄存器中的使能位清除&#xf…

免费ai写作?这三款软件是你的好帮手!

在信息爆炸的今天&#xff0c;自媒体已成为越来越多人展现自我、分享知识的平台。然而&#xff0c;对于许多自媒体创作者来说&#xff0c;写作过程中的灵感枯竭、文笔不畅等问题常常困扰着他们。幸运的是&#xff0c;随着人工智能技术的飞速发展&#xff0c;免费AI写作软件应运…

MyBatisPlus基础学习

一、简介 二、集成MP 三、入门HelloWorld 四、条件构造器EntityWrapper 五、ActiveRecord(活动记录 ) 六、代码生成器 七、插件扩展 八、自定义全局操作 九、公共字段自动填充 十、Oracle主键Sequence 十一、Idea快速开发插件 十二、mybatis-plus实践及架构原理

一文带你全面详细了解安全运维

一、安全运维-网络 1、IP地址相关 IP地址属于网络层地址&#xff0c;用于标识网络中的节点设备。 IP地址由32bit构成&#xff0c;每8bit一组&#xff0c;共占用4个字节。 IP地址由两部分组成&#xff0c;网络位和主机位。 IP地址分类&#xff1a; 类别网络位子网掩码私有地…

【OceanBase诊断调优】 —— DDL时报磁盘不足问题排查

1. 背景 由于在4.x的部分版本中&#xff0c;我们对于一些ddl操作还存在磁盘空间放大问题&#xff0c;本文主要介绍了这一类问题的排查。 2. 问题排查 2.1 整体排查链路 2.2 问题现象 DDL过程中报磁盘空间不足&#xff0c;需要确认是否符合预期&#xff0c;如果是符合预期&a…

告别数据孤岛,Xinstall助力App广告投放实现全渠道归因!

在移动互联网时代&#xff0c;App的推广和运营已成为企业不可或缺的一部分。然而&#xff0c;面对五花八门的广告渠道和繁杂多样的投放方式&#xff0c;如何有效追踪广告和渠道效果&#xff0c;如何甄别和选择流量渠道&#xff0c;成为了众多App开发商和运营者头疼的问题。幸运…

Qt制作程序启动界面类QSplashScreen实例测试详解

目录 一、QSplashScreen的概述 二、QSplashScreen静态图片加载 1、主程序实现 2、mainwindow.h实现 3、mainwindows.cpp实现 三、QSplashScreen动态图片加载 1、主程序实现 2、mainwindow.h实现 3、mainwindows.cpp实现 一、QSplashScreen的概述 QSplashScreen&#x…

LabVIEW电磁超声热态金属在线缺陷检测系统

LabVIEW软件开发的电磁超声热态金属在线缺陷检测系统针对极端高温环境下的金属材料&#xff0c;进行实时、无损的缺陷检测&#xff0c;具有高精度和高可靠性&#xff0c;能够显著提高材料质量控制的效率和准确性。 项目背景 随着工业技术的发展&#xff0c;高温环境下的金属材…

SQL Server入门-SSMS简单使用(2008R2版)-1

环境&#xff1a; win10&#xff0c;SQL Server 2008 R2 参考&#xff1a; SQL Server 新建数据库 - 菜鸟教程 https://www.cainiaoya.com/sqlserver/sql-server-create-db.html 第 2 课&#xff1a;编写 Transact-SQL | Microsoft Learn https://learn.microsoft.com/zh-cn/…

day01-anaconda的安装

Anaconda的安装 参考地址&#xff1a; http://t.csdnimg.cn/mUmSp 安装完毕&#xff0c;可以卸载电脑中的其他python版本&#xff0c;在控制面板中进行卸载。 在命令行指令中输入 pythonPython 3.8.3 (default, Jul 2 2020, 17:30:36) [MSC v.1916 64 bit (AMD64)] :: An…