DEFORMABLE DETR: DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION 论文精度笔记

news2024/9/21 0:45:33

DEFORMABLE DETR

DEFORMABLE DETR: DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION

参考:AI-杂货铺-Transformer跨界CV又一佳作!Deformable DETR:超强的小目标检测算法!

摘要

摘要部分,作者主要说明了如下几点:

  1. 为了解决DETR中使用Transformer架构在处理图像特征图时的局限性而导致的收敛速度慢,特征空间分辨率有限的问题;
  2. Deformable DETR只关注和参考周围的一小部分关键采样点(例如对一个输入到encoder中的图片拉直后的向量,每个像素点只关注其周围的几个像素点,互相计算相似度即可,不需要和所有的像素点计算相似度),并获得了更好的效果(尤其是在小目标任务当中),收敛时间相较于DETR减少了近10倍;

延伸:YOLO检测小目标效果不好是因为网络越深检测小目标的效果越不好,同时YOLO中图片的输入尺寸较小

介绍

DETR存在的问题

原始的DETR需要更多的Epochs数量才收敛;DETR在检测小物体时性能不好,导致检测小物体性能不好的原因是因为Transformer架构在初始化时,其注意力模块对特征图中所有像素施加了几乎一致的注意力权重(即在初始化时,注意力机制没有被唤醒,特征图中的一些很有意义的像素点没有被注意力机制关注到),因此训练epochs数量很多(训练Epochs数量增加之后,就会激活注意力机制对图像特征的关注)。

同时,作者指出Transformer中的自注意力机制是针对于图像像素数量的二次计算,这在处理高分辨率特征图时会具有非常高的计算和记忆复杂性。(Transformer中计算复杂度与图像的宽度W和高度H成正相关,例如:一张图片为100x100,那么拉直之后输入到encoder的时候为10000,然后每个像素点与自己和其他像素点计算相似度,那么计算量就是10000x10000,就是十亿,计算代价太高,而且没有共享参数)这就导致原始的DETR是耗费大量资源的,同时还不能处理高分辨率图片。

Deformable Convolution(可变形卷积)

可变形卷积是一种处理稀疏空间位置的强大而有效的机制,这种机制可以很好地解决上述问题,但是可变形卷积缺少元素之间的关系建模机制,而关系建模(全局建模能力)是DETR成功的关键所在。

Deformable DETR中,可变形卷积思想的作用就是将原来的注意力机制中,每个像素点和周围的像素点进行相似度计算转为,每个像素点注意力进行偏移(使得每个像素点注意力在一些重要的地方),但是这样带来一个问题就是可变性卷积无法关注注意力集中的地方相似的特征,即点与点之间的关系建模等(为什么可变形卷积关注的是重要特征,希望模型去学习重要特征之间有什么关系),这就需要结合DETR的全局建模能力来解决这一问题。

Deformable DETR

请添加图片描述

Deformable DETR结合了可变形卷积的稀疏建模能力,同时又结合了DETR的关系建模能力。作者提出了可变形注意力模块,关注一小部分采样位置,作为所有特征图像素中突出关键元素的预滤波器。同时,该模块可以很轻松地扩展以聚合多尺度特征,而不需要FPN。

可变形注意力模块

针对某个像素点周边的像素进行采样,同时该模块还具有聚合多尺度特征的能力(在聚合多尺度特征的时候如果考虑细致的话需要进行特征对齐,如果考虑的不细致的话就是简单的拼接)。在该篇文章中,作者就做了对齐的操作。(延伸:使用FPN网络,例如类似于UNet一样,进行多尺度操作,这样的特征融合之后是没有对齐的,只是简单做了拼接操作

作者提出的可变形注意力模块替代了传统的Transformer架构中的attention模块。

相关工作

相关工作对Transformer和DETR介绍较多,可以直接去读两者相关的论文。

文章主体部分(第四章-Methods)

Deformable Attention模块

请添加图片描述
文中指出,传统的Transformer中的注意力机制存在遍历所有可能的空间位置。(论文中“the deformable attention module only attends to a small set of key sampling points around a reference point, regardless of the spatial size of the feature maps,”,这句话中的reference point可以理解为:图片特征map中的一些坐标点(特征Map中的一些初始化位置点)。在论文对应的源码中,在每个坐标点周围只设置了K=4个采样点

Deformable Attention公式理解

D e f o r m A t t n ( z q , p q , x ) = ∑ m = 1 M W m [ ∑ k = 1 K A m q k ⋅ W m ′ x ( p q + Δ p m q k ) ] DeformAttn(z_q, p_q, x)=\sum_{m=1}^M W_m[\sum_{k=1}^K A_{mqk}\cdot W'_m x(p_q + \Delta p_{mqk})] DeformAttn(zq,pq,x)=m=1MWm[k=1KAmqkWmx(pq+Δpmqk)]

其中, x x x文中说明为图片的特征Map,但是实际上更可以理解为输入到Encoder中的序列,然后该序列的宽为W,高为H。其中每个点对应的channel通道数为C。文中设定 q q q索引一个叫做 z q z_q zq的内容query。(这里的内容query就是每个点对应的通道数为channel的特征向量)然后, p q p_q pq表示特征图Map中的某个q索引位置上的点。m表示多头注意力机制中的头的数量(源码当中设置为M=8)。k表示采样点数量,也就是从当前点开始与索引值在k这个范围内的所有点之间计算交互(源码中的K=4)。

公式中, Δ p m q k \Delta p_{mqk} Δpmqk表示采样偏移量,是需要通过训练得到的。 A m q k A_{mqk} Amqk表示在第m个注意力头中的第q个参考点周围的共k个采样点中每个采样点分配的注意力权重(也就是说K个采样点权重相加应当为1),也是需要训练得到的。

请添加图片描述

其中,蓝色点表示当前点(reference point),然后按照K=4的采样点数量,蓝色点周围的红色点是需要进行计算交互的,但是,由于红色点左上角的绿色点才是蓝色点真正地需要关注的,那么这个时候偏移量就是绿色点针对于蓝色点左边的红色点的偏移。

请添加图片描述

同时,还存在一个问题,如果上图中蓝色点关注右上角的黑色点的时候,注意力没有正好落在黑点上,那么这个时候,关注的点的权重是由其周围四个点根据距离加权之后得到的。

偏移量是由 z q z_q zq得到的,可变形机制就是说的偏移量可变。

公式中, W W W W ′ W' W都是全连接层,也是需要训练来决定其中的权重的。偏移量是通过将feature map中每个点对应的特征 z q z_q zq输入到一个FC(包含W和b)中,在反向传播过程中去更新FC中的W和b即可。

原始论文中有语句:Both Δ p m q k \Delta p_{mqk} Δpmqk and A m q k A_{mqk} Amqk are obtained via linear projection over the query feature z q z_q zq.
其中, Δ p m q k \Delta p_{mqk} Δpmqk A m q k A_{mqk} Amqk是由 z q z_q zq输入到FC层中得到的。然后在实现的时候,作者说明:In implementation, the query feature z q z_q zq is fed to a linear projection operator of 3MK channels, where the first 2MK channels encode the sampling offsets Δ p m q k \Delta p_{mqk} Δpmqk, and the remaining MK channels are fed to a softmax operator to obtain the attention weights A m q k A_{mqk} Amqk.

Multi-scale Deformable Attention 模块理解(本篇论文的核心)

作者首先强调,多尺度在很多任务当中都很work,然后又说Deformable Attention Module模块也可以扩展到多尺度。

请添加图片描述

上式中, p ^ q ∈ [ 0 , 1 ] 2 \hat{p}_q \in [0, 1]^2 p^q[0,1]2表示对q索引对应的query element中的参考点的归一化坐标(相当于多尺度对齐)。

多尺度可变形注意力模块中,计算方式基本上和单尺度的一样,只是从原来的对单个feature map进行操作改为对L层多尺度feature map进行操作。这里需要注意的是,其中的 ϕ l ( p ^ q ) \phi_l (\hat{p}_q) ϕl(p^q)表示将归一化之后的坐标针对l层特征的大小,进行缩放,从而找到对应l层特征的参考点的实际位置,然后在该层特征下计算可变形注意力。

请添加图片描述

上图中是对上述公式的一个详细的形象化概括。其中,对于不同level的特征,其位置编码(positional encoding)除了该层级对应的位置编码之外,还需要加上一个层级的位置编码(主要是用来区分归一化坐标相同的点在不同层级feature map上具有实际不同的位置编码)。此外,这篇文章中的位置编码也是可学习的。

注意:上图中的Object Queries数量由传统的DETR的N=100,增加到了N=300

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

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

相关文章

STM32F4X Systick系统滴答定时器

STM32F4X Systick系统滴答定时器 Systick定时器Systick使用Systick时钟源Systick寄存器Systick频率计算Systick例程 Systick定时器 在以Crotex-M4为架构的MCU中,都会有一个Systick内核定时器,这个定时器的作用可以给系统一个心跳时钟,通常用…

python3/pip3 SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

环境: mac os 背景: 电脑之前安装的是python3.9 , 现在升级到python3.10。 从python官网下载macos版本的python3.10 pkg。 双击安装。 程序使用aiohttp访问ebay 。 出错: aiohttp.client_exceptions.ClientConnectorCertifi…

图论算法基础:最小生成树算法(kruskal算法和Prim算法)

文章目录 一.图邻接矩阵数据结构二.kruskal算法算法实现思想kruskal算法接口实现 三.Prim算法Prim算法接口实现 一.图邻接矩阵数据结构 以STLvector和unordered_map为适配容器实现图数据结构: namespace Graph_Structure {//Vertex是代表顶点的数据类型,Weight是边…

系统架构设计高级技能 · 大数据架构设计理论与实践

系列文章目录 系统架构设计高级技能 软件架构概念、架构风格、ABSD、架构复用、DSSA(一)【系统架构设计师】 系统架构设计高级技能 系统质量属性与架构评估(二)【系统架构设计师】 系统架构设计高级技能 软件可靠性分析与设计…

最新WAF信息收集技术

WAF信息收集 目前,市面上的WAF大多都部署了云服务进行防护加固,让WAF的防护性能得到进一步提升。 图1-32所示为安全狗最新版服务界面,增加了“加入服云”选项。 安全狗最新版服务界面,不仅加强了传统的WAF防护层,还增…

七层、四层和五层网络模型区别和联系

七层、四层和五层网络模型区别和联系 概述OSI网络7层模型(概念型框架)概述图片分析 四层模型概述常用协议OSI与TCP/IP四层的区别 五层模型概述三种网络模型对比 总结 概述 网络模型-七层模型(OSI模型)、五层协议体系结构和TCP/IP…

[C++ 网络协议] 多进程服务器端

具有代表性的并发服务器端实现模型和方法: 多进程服务器:通过创建多个进程提供服务。✔ 多路复用服务器:通过捆绑并统一管理I/O对象提供服务。 多线程服务器:通过生成与客户端等量的线程提供服务。 1. 进程的概念及应用 1.1 什么…

基于算术优化算法优化的BP神经网络(预测应用) - 附代码

基于算术优化算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于算术优化算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.算术优化优化BP神经网络2.1 BP神经网络参数设置2.2 算术优化算法应用 4.测试结果:5…

mybatis自动生成文件配置记录

记录下mybatis自动生成mapper文件&#xff0c;虽然现在有点过时了&#xff0c;但对于新手来说还是有一定用处的&#xff08;diss下通过这种文章引流关注的博主&#xff09;。 比较简单&#xff0c;基本就三步搞定&#xff01; 1、pom配置 <!--mybatis自动生成代码插件-->…

【Qt学习】07:绘图与绘图设备

OVERVIEW 绘图与绘图设备一、QPainter二、QPainterDevice1.QPixmap2.QBitmap3.QImage4.QPicture 绘图与绘图设备 一、QPainter Qt 的绘图系统允许使用API在屏幕和其它打印设备上进行绘制&#xff0c;整个绘图系统基于QPainter&#xff0c;QPainterDevice和QPaintEngine三个类&…

Eplan软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 Eplan软件是一款专为电气专业设计开发的软件&#xff0c;旨在提高电气设计的效率和质量。以下是Eplan软件的详细介绍。 1、Eplan的历史和演变 Eplan是一款由德国Eplan公司开发的电气设计软件&#xff0c;自1984年推出以来&…

如何在windows电脑上安装多个node,并可以进行随意切换

一、进入官网http://nvm.uihtm.com/ 下载 二、启动解压后的程序 1.开始安装nvm 选择要安装的目录 一直下一步–下一步–最后点击完成 3.最后点击完成即可 ![在这里插入图片描述](https://img-blog.csdnimg.cn/3656568c7e9946e8a04219811fc4c4d3.png 三、在cmd控制台进行操作…

VMware ESXi 7.0 优化VMFSL磁盘占用与系统存储大小

文章目录 VMware ESXi 7.0 优化VMFSL磁盘占用与系统存储大小引言创建ESXi7.0可启动 U 盘结果检查VMware ESXi 7.0 优化VMFSL磁盘占用与系统存储大小 引言 本文讲述了在 J1900平台上安装ESXi7.0时减少 VMFSL 分区占用的说明, 通常这来说些主机内置的磁盘空间非常小, 采用默认安…

uniapp返回上一页并刷新

在uniapp中&#xff0c;经常会有返回上一页的情况&#xff0c;官方提供有 uni.navigateBack 这个api来实现效果&#xff0c;但是此方法返回到上一页之后页面并不会更新&#xff08;刷新&#xff09;。 例如有这样一个场景&#xff1a;从地址列表页点击添加按钮进入添加地址页面…

Aidex 移动端快速开发框架# RuoYi-Uniapp项目,uniapp vue app项目跨域问题

参考地址&#xff1a; manifest.json官方配置文档&#xff1a;manifest.json 应用配置 | uni-app官网 Chrome 调试跨域问题解决方案之插件篇&#xff1a; uni-app H5跨域问题解决方案&#xff08;CORS、Cross-Origin&#xff09; - DCloud问答 其实uni-app官方有解决跨域的办…

「MySQL-01」MySQL基础

目录 一、数据库概念 1. 什么是数据库 2. 为什么要有数据库&#xff1f; 3. 数据库将数据存在哪里&#xff1f; 二、知名数据库介绍 1.知名数据库介绍 2.为什么要学习MySQL 三、MySQL的基本使用 0. 安装MySQL 1. 数据库客户端链接服务端 2. Windows下的MySQL服务端管理 3. 数据…

Pygame编程(10)freetype模块

Pygame编程&#xff08;10&#xff09;freetype模块 函数示例 函数 pygame.freetype.get_error 返回最新的FreeType错误get_error() -> strget_error() -> None pygame.freetype.get_version 返回FreeType版本get_version(linkedTrue) -> (int, int, int) pygame.fre…

斯坦福人生设计课——简略笔记

来源&#xff1a;⽐尔博内特 戴夫伊万斯 著图书《人生设计课》 目录 一、认清当下的情况&#xff0c;从四个维度观察自己的人生 二、平衡人生&#xff0c;但不要走入误区 2.1 记录你的“美好时光日志”&#xff1a; 2.1.1 记录内容&#xff1a; 2.1.2 辅助反思的方法&…

C# 学习笔记--个人学习使用 <2>

C# 学习笔记 Chapter 2 比较硬的基础部分Section 1 委托Part 1 Action 与 func 委托的示例Part 2 自定义委托Part 3 委托的一般使用Part 4 委托的高级使用Part 5 适时地使用接口 Interface 取代一些对委托的使用 Section 2 事件Part 1 初步了解事件Part 2 事件的应用Part 3 事件…

图神经网络与分子表征:番外——基组选择

学过高斯软件的人都知道&#xff0c;我们在撰写输入文件 gjf 时需要准备输入【泛函】和【基组】这两个关键词。 【泛函】敲定计算方法&#xff0c;【基组】则类似格点积分中的密度&#xff0c;与计算精度密切相关。 部分研究人员借用高斯中的一系列基组去包装输入几何信息&am…