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

news2024/11/15 21:52:58

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/947871.html

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

相关文章

Mybatis1.8 删除一行数据

1.8 删除一行数据 1.8.1 编写接口方法1.8.2 编写SQL语句1.8.3 编写测试方法 如上图所示,每行数据后面都有一个 删除 按钮,当用户点击了该按钮,就会将改行数据删除掉。那我们就需要思考,这种删除是根据什么进行删除呢?是…

HttpClient 绕过证书验证- sun.security.validator.ValidatorException: PKIX

sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 问题 package com.example.demo.test;import com.alibaba.fastjson2.JS…

MySQL的备份与恢复以及日志管理

目录 一、数据备份的重要性 二、数据库备份的分类 1、物理备份 2、逻辑备份 (1)完全备份:每次对数据进行完整的备份 (2)差异备份:备份自从上次完全备份之后被修改的过文件 (3&#xff09…

优化爬虫请求:如何选择合适的爬虫ip轮换策略?

在进行爬虫任务时,使用隧道爬虫ip并采用合适的轮换策略可以提高稳定性和效率。选择合适的隧道爬虫ip轮换策略可以优化您的爬虫请求过程。 1、考量目标网站特点 不同网站对于频繁请求可能有不同限制或反爬机制。 了解目标网站是否存在IP封禁、验证码等问题&#xff…

初创公司如何选择小型办公室

初创公司寻找小型办公室时,有多种选择。不同的办公室类型具有不同的租金成本、交通便利程度和对公司发展的影响。本文将比较几种不同的小型办公室,为初创公司提供选择建议。 共享办公空间 共享办公空间是一种适合初创公司和自由职业者的办公室类型。这种…

Mybatis1.10 Mybatis参数传递

1.10 Mybatis参数传递 1.10.1 多个参数1.10.2 单个参数 Mybatis 接口方法中可以接收各种各样的参数,如下: 多个参数单个参数:单个参数又可以是如下类型 POJO 类型Map 集合类型Collection 集合类型List 集合类型Array 类型其他类型 1.10.1 …

Kubernetes技术-Kubernetes集群环境搭建准备

1.搭建环境规划 在搭建k8s的时候可以分为两种: 单master集群,故名思意,只有一个master管理节点和多个node节点。如下图所示: 多master集群,故名思意,有多个master管理节点和多个node节点。如下图所示: 2.服务器硬件要求 (1).测试环境要求(教学、研究等环境) Master节点:至…

《Kali渗透基础》15. WEB 渗透

kali渗透 1:WEB 技术1.1:WEB 攻击面1.2:HTTP 协议基础1.3:AJAX1.4:WEB Service 2:扫描工具2.1:HTTrack2.2:Nikto2.3:Skipfish2.4:Arachni2.5:OWAS…

YOLOv5 7.0添加ACmix

ACmix 论文地址:On the Integration of Self-Attention and Convolution ACmix探讨了卷积和自注意力这两种强大技术之间的关系,并将两者整合在一起,同时享有双份好处,并显著降低计算开销,可助力现有主干涨点&#xff…

php对接AWS S3云存储,上传S3及访问权限问题

首先先下载sdk包 https://docs.aws.amazon.com/zh_cn/sdk-for-php/v3/developer-guide/getting-started_installation.html S3创建存储桶 去安全凭证-》创建访问秘钥 创建的时候会提示,主账号创建不安全,这个时候我们需要创建一个IAM账号来创建秘钥 创…

ES6中的箭头函数(arrow function)与普通函数的不同之处

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 语法简洁⭐ 没有自己的this⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、…

可以翻页的电子画册制作指南

​电子画册是一种创新的方式,可以将传统的纸质画册转化为数字化的形式,并且具备翻页的功能。它不仅可以提供更好的阅读体验,还可以方便地分享给他人。 1.选择制作工具: 有许多在线平台和软件可以帮助你制作电子画册,比…

小程序数据导出文件

小程序josn数据生成excel文件 先从下载传送门将xlsx.mini.min.js拷贝下来,新建xlsx.js文件放入小程序项目文件夹下。 const XLSX require(./xlsx)//在需要用的页面中引入// 定义导出 Excel 报表的方法exportData() {const that thislet newData [{time:2021,val…

全球领先、柔性低功耗?京东方独家供应OPPO折叠屏,首发值得一试

京东方作为全球领先的显示技术创新企业,为OPPO提供的折叠屏手机和智能手表屏幕,拥有先进的技术和优质的显示效果。京东方的柔性折叠低功耗解决方案不仅能够实现屏幕的弯折,还能在折叠状态下保持低功耗,使设备的续航时间得到极大增…

windows10上搭建caffe以及踩到的坑

对动作捕捉的几篇论文感兴趣,想复现一下,需要caffe环境就折腾了下!转模型需要python 2.7环境,我顺便也弄了!!! 1. 环境 Windows10 RTX2080TI 11G Anaconda Python2.7 visual studio 2013 cuda…

第三方软件检测机构有哪些资质,2023年软件测评公司推荐

软件第三方测试报告 伴随着软件行业的蓬勃发展,软件测试也迎来了热潮,但是国内的软件测试行业存在着测试入行门槛低、测试投入少、测试人员专业性不足等问题,这些问题不但会阻碍软件测试行业的良性发展,而且难以保证软件产品的质…

魏副业而战:开学季,闲鱼卖什么好?

我是魏哥,与其躺平,不如魏副业而战! 现在八月底了,意味着暑假结束,新的学期将要开始。 作为闲鱼卖家,可顺势布局一下。 那卖什么好呢? 开学季嘛,卖学习相关的,例如&a…

1.docker打包前后端项目 2.将虚拟机设置为固定ip 3.WARNING: IPv4 forwarding is disabled. Networking will not work

打包后端项目 1.查看防火墙状态 netsh advfirewall show allprofiles 显示防火墙的当前状态和配置信息。您将在输出中看到每个配置文件(公用、专用和域)的状态。 2.关闭防火墙 netsh advfirewall set allprofiles state off 将关闭所有配置文件&#…

胜券汇:底部显现 三大因素有望助推股市短期内探底回升

胜券汇以为,权益商场的底部特征现已开始闪现,估值触底、危险偏好反弹、盈余逐渐修正三大要素有望助推股市短期内探底上升。不过,中长期而言,A股的核心矛盾在于经济复苏的斜率,从当时经济形势看,方针仍有必要…

【C++进阶(三)】STL大法--vector迭代器失效深浅拷贝问题剖析

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 vector-下 1. 前言2. 什么是迭代器失效?3. 迭代…