【DETR】2、Deformable DETR

2023-11-07

在这里插入图片描述

论文链接:Deformable DETR: Deformable Transformers for End-to-End Object Detection

代码链接:https://github.com/fundamentalvision/Deformable-DETR

出处:ICLR2021 Oral

一、背景和动机

DETR 的提出,改善了之前的方法需要大量手工设计操作的局面(如 anchor 和 NMS),并且首次建立了一个完整的端到端的检测器。

但 DETR 有两个明显的问题:收敛慢、对小目标效果不好

  • 相比之前的方法,DETR 收敛的很慢,DETR 在 coco 数据集上需要约 500 个epoch 才能收敛,比 Faster RCNN 慢了 10 到 20 倍,作者认为主要有两个原因:
    • 在初始化 object queries 的时候,被初始化成相同的值(DETR 中全部初始化为 0),也就意味着这些 object queries 对特征图中的所有像素的注意力权重是相同的,所以需要大的 epoch 训练来找到需要关注的那几个稀疏的位置,
    • 此外,注意力的计算复杂度是随着特征图大小而平方增大的,计算复杂度也很高,计算所需的时间会较长
  • DETR 在小目标上表现不好,现有的方法大多使用多尺度特征中的大分辨率特征来解决小目标问题,但如果使用大分辨率特征的话,DETR 的复杂度会很高。但这种缺点也是源于 Transformer 这种结构(当时还没有像 Swin 这种多尺度提取特征的 Transformer 网络)。

Deformable DETR 的出发点:

  • 卷积神经网络中有一种卷积叫 “可变形卷积”,可以高效的抽取稀疏空间位置的信息,作者受此启发建立了 deformable DETR。

Deformable DETR 的贡献:

  • 对收敛慢的问题:
    • 提出了 deformable attention module 来代替 Transformer attention module 来处理 feature map,只选择 query 附近的几个点来参与计算,能降低复杂度
    • deformable attention module 是会从 feature map 中选择一小部分特征点来进行特征的提取
  • 对小目标问题:
    • 引入了多尺度 deformable attention module

Deformable DETR 的优势:

  • 缓解 DETR 收敛慢和计算复杂度高的问题

二、方法

在这里我们先看一看可变形卷积:

就是在基础卷积的基础上,给每个位置学习一个偏差,也就是每个位置都增加了一个偏移量,能够让网络聚焦于感兴趣的位置

可变形卷积这种形变不是发生在卷积核,而是发生在原图产生了 offset 偏移,在经过正常卷积就达到可变卷积的效果,也就是特征偏移+正常卷积。

在这里插入图片描述

在这里插入图片描述


在这里插入图片描述

1、Deformable Attention Module

在这里插入图片描述

一般来说,使用 Transformer attention 能够看到整个特征图中的所有特征(因为每个位置都会和其他所有位置求取注意力特征),这样计算量自然就会很大。

受启发与可变形卷积,deformable attention module 如图 2 所示,无论原始的特征图多大,deformable attention module 都只会关注 reference point (橘色小框)附近的少数位置。

所以对于每个 query,只会分配少数的 key,那么下面这两个问题就可以解决:

  • 问题1)由于分辨率导致的计算量增大
  • 问题 2)收敛慢

Deformable Attention Feature 如下:

在这里插入图片描述

  • 输入特征图 x ∈ R C × H × W x \in R^{C\times H \times W} xRC×H×W
  • q q q 为 query ,其元素包括为常数 z q z_q zq 和 2 维位置信息 p q p_q pq
  • m m m 是 attention head 的索引, k k k 是 sampled keys 的索引, K K K 是 sample keys 的总数( K < < H W K<<HW K<<HW
  • Δ p m q k \Delta p_{mqk} Δpmqk A m q k A _{mqk} Amqk 是第 m 个 attention head 的第 k 个 sampling point 的 sampling offset 和 attention weight

2、Multi-scale Deformable Attention Module:

在这里插入图片描述

  • l l l 表示输入特征的 level 索引
  • Δ p m l q k \Delta p_{mlqk} Δpmlqk A m l q k A _{mlqk} Amlqk 是第 l l l 个level 的特征图的 m 个 attention head 的第 k 个 sampling point 的 sampling offset 和 attention weight

3、Deformable Transformer Encoder:

作者使用上面提出的多尺度 attention 模块代替了 DETR 中的 attention 模块,encoder 的输入和输出是具有相同分辨率的多尺度特征图 { x l } l = 1 L − 1 ( L = 4 ) \{x^l\}_{l=1}^{L-1}(L=4) {xl}l=1L1(L=4)。encoder 中,作者从抽取了 Resnet 中从 C 3 C_3 C3 C 5 C_5 C5 stage 的输出特征图,其中 C l C_l Cl 的分辨率比输入特征低 2 l 2^l 2l

encoder 的输出是和输入分辨率相同的特征,query 和 key 都是从这些多尺度特征图中抽取的,并且作者增加了一个 scale-level embedding e l e_l el 来区分 query pixel 所来自的尺度,且该 scale-level embedding { e l } l = 1 L \{e_l\}_{l=1}^{L} {el}l=1L 是随机初始化并且参与训练的。

在这里插入图片描述

4、Deformable Transformer Decoder:

在 decoder 中,同时存在 cross-attention 和 self-attention。

  • cross-attention:key 是 encoder 的输出,query 是 object queries
  • self-attention:key 和 query 都是 object queries, object queries 中的元素各自进行 attention

因为 deformable attention 模块是为了将卷积特征图看做 key elements 一样处理,所以作者只替换了 cross-attention 模块为 deformable attention,

三、效果

在这里插入图片描述
在这里插入图片描述

四、可视化

为了了解 deformable detr 是通过关注哪里而得到的检测结果,作者绘制了最后一层预测结果中的每个元素的梯度绝对值(包括中心点,宽高,类别)如图5。

根据 Taylor 理论,梯度绝对值可以反应输出会有多大改变,即可以说明模型主要依赖哪些像素来预测每个项目。

从可视化可以看出,deformable detr 会关注在目标的末端区域,类似于 detr。

此外,deformable detr 在 x 轴方向和 w 上关注左右两边的边界,在 y 轴方向和 h 上关注上下的边界,且 deformable detr 同时会关注目标的内部来预测其类别。

在这里插入图片描述

在这里插入图片描述

2、多尺度 deformable attention 可视化

为了更好的理解多尺度形变 attention 学习到了什么,作者可视化了encoder 和 decoder 最后一层的采样点和 attention 权重,如图 6 所示。

类似于 detr 中的观点,在 encoder 中已经能够区分每个实例了。但在 decoder 中,本文的模型更关注于全部的前景目标,而非 detr 中的末端区域。

结合图5,作者猜测原因在于 deformable detr 需要末端点和内部点来确定目标的类别,同时说明 deformable detr attention 模块能够根据不同 scale 和前景的shape来调整 sampling points 和 attention weights。

从蓝色到红色,表示 attention weight 从小到大

在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【DETR】2、Deformable DETR 的相关文章

  • 【计算机视觉

    文章目录 一 检测相关 11篇 1 1 Follow Anything Open set detection tracking and following in real time 1 2 YOLO MS Rethinking Multi
  • Transformer 综述 & Transformers in Vision: A Survey

    声明 因本人课题只涉及图像分类和目标检测 且此综述对这两个领域调查的比较多 所以此文章只对图像分类和目标检测进行精读 若是对 中的论文感兴趣 到原论文中查阅参考文献即可 下图是综述内容涉及的计算机视觉十大领域 图像识别 目标检测 语义和实例
  • YOLOV5加速之TensorRT篇

    之前写过一篇Android版本yolov5s的博客 最近工作搞了下TensorRT 也遇到几个坑不过最终还是实现了 做一下小小的分享 这里直接上github上大牛的连接 我的代码是在他的基础上改的 里面有很多模型的加速直接看里面的yolov
  • YOLOv8改进开源

    大致介绍一下AI全栈技术社区的相关内容 主要涵盖了YOLO全系列模型的改进 量化 蒸馏 剪枝以及不同工具链的使用 同时也涵盖多目标跟踪 语义分割 3D目标检测 AI模型部署等内容 具体内容小伙伴们可以参考下面的目录部分 所有内容均有答疑服务
  • Faster Transformer

    背景 Transformer自2017年的 Attention is All you Need 提出以来 成为通用高效的特征提取器 虽然其在NLP TTS ASR CV等多个领域表现优异 但在推理部署阶段 其计算性能却存在巨大挑战 以BER
  • 二进制.bin文件切分、bintopng、write

    import numpy as np import cv2 import os Your file path file dep open r E data 3DHuman Detection withoutlabel 20180715 50
  • 全网最最最轻量级检测网络 yolo-fastest 快速上手

    文章目录 0x01 Yolo Fastest 0x02 Prepare step1 clone step2 make step3 run darknet 0x03 Train step1 获取权重文件 step2 准备数据集 step3 修
  • 目标检测之二(传统算法和深度学习的源码学习)

    目标检测之二 传统算法和深度学习的源码学习 本系列写一写关于目标检测的东西 包括传统算法和深度学习的方法都会涉及到 注重实验而不着重理论 理论相关的看论文去哈 主要依赖opencv 本文主要内容 简单分析下yolo9000的原理 然后使用o
  • CROSSFORMER: A VERSATILE VISION TRANSFORMER BASED ON CROSS-SCALE ATTENTION 论文阅读笔记

    CROSSFORMER A VERSATILE VISION TRANSFORMER BASED ON CROSS SCALE ATTENTION 论文阅读笔记 这是浙大 腾讯 哥伦比亚大学一起发表在ICCV的一篇文章 文章有三个贡献 一是
  • 基于ShuffleNetv2-YOLOv4模型的目标检测

    目录 1 引言 摘要 1 1 说明 1 2替换完成的工程请参考gitee 2 网络结构基础 2 1YOLOv3 2 1 YOLOv4算法 2 3 ShuffleNetv2 2 4 替换后的网络结构 3 实验结果 3 1实验环境配置及数据集介
  • FPN网络详解

    1 特征金字塔 特征金字塔 Feature Pyramid Networks FPN 的基本思想是通过构造一系列不同尺度的图像或特征图进行模型训练和测试 目的是提升检测算法对于不同尺寸检测目标的鲁棒性 但如果直接根据原始的定义进行FPN计算
  • BMVC 2022 (东京大学)仅需90K参数!实时完成低光增强, 曝光矫正的超轻量级Transformer网络IAT,已开源

    本文由 52CV 粉丝投稿 作者 信息门下奶狗 知乎地址 https zhuanlan zhihu com p 535695807 我们提出Illumination Adaptive Transformer IAT 网络 用来探索实时的暗光
  • SimMIM:一种更简单的MIM方法

    自从何恺明的MAE 点击蓝字查看文章详情 出来之后 基于MIM Masked Image Modeling 的无监督学习方法越来越受到关注 这里介绍一篇和MAE同期的工作 SimMIM A Simple Framework for Mask
  • 项目设计:基于YOLO目标检测算法的安全帽/口罩/汽车/行人/交通标志...检测

    本文将详细介绍YOLO目标检测算法 该算法支持各种目标检测 包括 安全帽 汽车 造价 交通标志 等 其他毕业设计题目推荐参考 毕业设计 电子 通信 计算机 物联网专业毕业设计选题参考 嵌入式linux 单片机STM32 web 图像 htt
  • 目标检测算法改进系列之添加SCConv空间和通道重构卷积

    SCConv 空间和通道重构卷积 SCConv 空间和通道重构卷积 的高效卷积模块 以减少卷积神经网络 CNN 中的空间和通道冗余 SCConv旨在通过优化特征提取过程 减少计算资源消耗并提高网络性能 该模块包括两个单元 1 空间重构单元
  • Far3D:直接干到150m,视觉3D目标检测新思路(AAAI2024)

    点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 gt gt 点击进入 自动驾驶之心 3D目标检测 技术交流群 论文作者 自动驾驶Daily 编辑 自动驾驶之心 近来在 Arxiv 读到一篇纯视觉环视感知的新工作 它延
  • 机器翻译:跨越语言边界的智能大使

    导言 机器翻译作为人工智能领域的瑰宝 正在以前所未有的速度和精度 为全球沟通拓展新的可能性 本文将深入研究机器翻译的技术原理 应用场景以及对语言交流未来的影响 1 简介 机器翻译是一项致力于通过计算机自动将一种语言的文本翻译成另一种语言的技
  • 深度学习目标检测全连接层什么意思

    在深度学习目标检测中 通常我们使用卷积神经网络 Convolutional Neural Network CNN 进行特征提取 CNN 的主要结构包括卷积层和池化层 用于从输入图像中提取特征 然而 为了最终输出目标的类别和位置信息 通常在网
  • 基于改进RoI Transformer的遥感图像多尺度旋转目标检测

    源自 应用光学 作者 刘敏豪 王堃 金睿蛟 卢天 李璋 人工智能技术与咨询 发布 摘 要 旋转目标检测是遥感图像处理领域中的重要任务 其存在的目标尺度变化大和目标方向任意等问题给自动目标检测带来了挑战 针对上述问题 提出了一种改进的RoI
  • 作物叶片病害识别系统

    介绍 由于植物疾病的检测在农业领域中起着重要作用 因为植物疾病是相当自然的现象 如果在这个领域不采取适当的护理措施 就会对植物产生严重影响 进而影响相关产品的质量 数量或产量 植物疾病会引起疾病的周期性爆发 导致大规模死亡 这些问题需要在初

随机推荐

  • [TFF学习]官方教程jupyter运行记录_联邦学习之图像分类任务_1

    chapter 1 检查系统环境和第三方库是否安装完毕 在Web服务器 gui应用程序和jupyter笔记本运行python程序时 出现 RuntimeError This event loop is already running 可能是
  • python“ModuleNotFoundError: No module named 模块名” 错误的一种情况

    跨目录导包 运行python脚本时 有时出现如题的错误 原因一般是用了os sys两个模块 而没有理解清楚两者的关系 os是关于本地系统的操作 sys是关于python环境的操作 如模块搜索路径配置 一种情况如下 import sys os
  • 又回老家了

    不愿意在朝阳区当天选打工人了 于是回老家了 找了份点云渲染的工作 月薪两万五 下月入职 本打算从小公司起步 做ue 没想到 现有的两套框架和十几个成熟项目不让碰 大概是提防着我吧 只让攻坚克难 做cesium for ue和热更新 想想也没
  • UE4.25 Slate源码解读

    优质资源分享 学习路线指引 点击解锁 知识定位 人群定位 Python实战微信订餐小程序 进阶级 本课程是python flask 微信小程序的完美结合 从项目搭建到腾讯云部署上线 打造一个全栈订餐系统 Python量化交易实战 入门级 手
  • echarts中的legend属性

    legend orient vertical right 0 top 15 icon circle 小圆点 itemWidth 8 itemHeight 8 itemGap 15 间隔 formatter function params l
  • 潜在结果框架(Potential outcomes)与工具变量(Instrumental variable)介绍

    Potential outcomes framework 什么是potential outcome呢 考虑在医学中 X 0表示不吃药 X 1表示吃药 那么很显然 一个人是没有办法同时吃药与不吃药的 所以我们只能够观测到其中的一个结果 即 Y
  • Javaweb学生信息管理系统(Mysql+JSP+MVC+CSS)

    目录 一 项目介绍 二 运行效果 1 登录界面 2 主界面 点击学号修改学生信息 3 增加学生界面 编辑 三 项目目录结构 四 代码展示 1 jsp及css代码 登录界面代码 login jsp 登录界面css login css 注册用户
  • js深拷贝

    js深拷贝的几种方式 概念介绍 深拷贝 在堆内存中重新开辟一个存储空间 完全克隆一个一模一样的对象 浅拷贝 不在堆内存中重新开辟空间 只复制栈内存中的引用地址 本质上两个对象 数组 依然指向同一块存储空间 一 递归方式 推荐 项目中最安全最
  • 4款超实用绘图软件

    对于新手来说 很多人认为绘图软件需要一定基础的设计功底 但其实也不完全是 在网上有很多非常实用的绘图软件可以迅速的帮助我们解决工作中的绘图问题 以下4款是这两年我的小伙伴们用的最多的 推荐给大家 亿图图示 亿图图示是我用的比较多的一个绘图软
  • windows的磁盘操作之九——区分本地磁盘与移动硬盘

    转载自 windows的磁盘操作之九 区分本地磁盘与移动硬盘 bunny技术坊的技术博客 51CTO博客 原文如下 最近碰到了个新问题 记录下来作为windows的磁盘操作那个系列的续篇吧 一些时候我们的程序需要区分本地存储设备和USB存储
  • JAVA毕设可能遇到的问题,老程序员来告诉你

    在进行JAVA毕设时 有一些常见问题需要考虑和解决 以下是几个可能遇到的问题和建议的解决方案 缺乏清晰的项目目标 在开始JAVA毕设之前 需要明确项目的目标和范围 如果没有清晰的目标 可能会导致项目无法顺利进行 或者最终无法达到预期的结果
  • 正大期货交易时间

    交易所及时间 上海期货交易所 上午是9点到10点15 以及10点半到11点半 下午是13点半到14点10 以及14点20到15点 夜盘是21点到次日凌晨的2点半 大连 郑州商品交易所 上午是9点到10点15 以及10点半到11点半 下午是1
  • C++ set容器使用方法

    set是STL中一种标准关联容器 它底层使用平衡的搜索树 红黑树实现 插入删除操作时仅仅需要指针操作节点即可完成 不涉及到内存移动和拷贝 所以效率比较高 在set中 每个元素都是唯一的 如果想要允许重复元素 可以使用multiset 1 s
  • 第一次使用Android Studio时你应该知道的一切配置

    文章来源 http www cnblogs com smyhvae p 4390905 html 系列 第一次使用Android Studio时你应该知道的一切配置 第一次使用Android Studio时你应该知道的一切配置 二 新建一个
  • Adapter的getView方法详解

    BaseAdapter就Android应用程序中经常用到的基础数据适配器 它的主要用途是将一组数据传到像ListView Spinner Gallery及GridView等UI显示组件 它是继承自接口类Adapter 我们经常使用的List
  • Intel威武全球第一座450毫米晶圆厂动工

    Intel今天确认 位于美国俄勒冈州的Fab 1DX二期工程已经破土动工 这也是全球第一座将会用来生产450毫米大尺寸晶圆的工厂 目前主流300毫米 Intel发言人Chuck Mulloy对媒体透露说 D1X二期工程的建设已经开始 Int
  • Java后台面试

    一 Nginx负载均衡 轮询 轮询是默认的 每一个请求按顺序逐一分配到不同的后端服务器 如果后端服务器down掉了 则能自动剔除 ip hash 请求按访问IP的hash结果分配 这样来自同一个IP的访客固定访问一个后端服务器 有效解决了动
  • 嵌入式c:进制、位、结构体、变量

    掌握 1 2进制 8进制 16进制的相互转换 2 位运算 或 与运算 异或 取反 左移 右移 3 结构体的使用及参数传递 了解 静态变量 static extern变量 关键字const 进制转换 二进制0B 十六进制0X 例如 十进制15
  • scikit-learn代码实现SVM分类与SVR回归以及调参

    分类 二分类 from sklearn model selection import train test split from sklearn svm import SVC import mglearn datasets import m
  • 【DETR】2、Deformable DETR

    文章目录 一 背景和动机 二 方法 三 效果 四 可视化 论文链接 Deformable DETR Deformable Transformers for End to End Object Detection 代码链接 https git