Anchor DETR

2023-11-04

Anchor DETR: Query Design for Transformer-Based Detector

(2021.9)

1.DETR的object query是学习的,没有物理意义也不能解释每个query注意哪。作者认为学习出来的object query不能关注特定的区域。本文提出来,object query的是基于anchor point的,这种设计下,每个object query只关注anchor点周围的目标,另外,每个object query可以在一个位置上预测多个目标(多模式)。

2.设计了一种注意力变体,可以减少内存成本。

Introduction

本文基于DETR做改进,肯定得先说一下DETR的优点就是一个可学习的object query集合来推理目标物和全局图像的关系。然后转折,说DETR局限了,也就是学习到的object query难以解释,也不能关注特定位置。

 

这幅图来自DETR原文,每个图像代表一个object query,点代表最后预测到的目标的位置,可以看到,各个关注的区域很大。没有关注特定位置所以限制了效果。

Motivation

  1. 回顾了CNN-based检测器,anchors包含可解释的物理信息并且对位置高度关联。所以提出了基于anchor point的新颖的query设计。我们编码anchor point的坐标作为object query,这样object query就有明确的物理意义了。

  1. 让每个object query关注特定位置,会带来问题:一个object query只能预测一个目标,如果那个location有多个目标物呢?作者给出解答:可以让其他的object query协助预测啊,可以让每个object query负责较大区域啊。

所以object query设计,对每个anchor point添加了多个模式,使每个anchor point可以预测多个目标。上图中分别表示三种模式的预测结果分布,能看出关注在anchor point周围。

  1. 设计了一种注意力变体-- Row-Column Decouple Attention (RCDA)

它将2D的key feature解耦成1D的行特征和1D的列特征,然后依次进行行注意与列注意。RCDA可以在保障性能前提下减少内存成本。

相关工作

  1. Anchors in Object Detection

CNN-based的检测器可分为两种:anchor box与anchor point(anchor-free);

DETR两者都没有采用,而是一种直接预测目标的方式。

作者发现将anchor point引入object query更好。

  1. Transformer Detector
  2. Efficient Attention

Method

  1. Anchor Points
  1. Cnn-based检测器中,anchor point总是在feature map的相应位置。但在transformer-based检测器中更灵活,anchor point可以是被学习的点,均匀的网格点,或者其他人工划分的点。本文选择前两者。

 

  1. 均匀划分的点;(b)随机初始化,采用0-1的均匀分布并可以学习的点。
  1. 有了anchor point,预测边界框的中心位置(ˆCx,ˆCy)将被添加到相应的anchor point作为最终预测,就像在Deformable DETR中一样

  1. Attention Formulation

下标f表示特征,p表示position embedding。

DETR的decoder有两种:self-attention & cross-attention。

Self-attention中:KfVfQf相同;KpQp相同。

  1. Anchor Points to Object Query

(2)式中Qp是可学习的编码(in DETR),但是,本文提出了新的object query设计方式。

  1. Multiple Predictions for Each Anchor Point

  1. Row-Column Decoupled Attention

通过1-D全局平均池化,将wh*c的key-feature解耦成w*c 与 h*c。

Experiments

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

Anchor DETR 的相关文章

随机推荐

  • 谭传奇-individual_project_word_frequency

    首先 印证了闫导的一句话 一星期都在写软工作业 其实也没有那么夸张了 装Win7花了1天 装VS2012加熟悉Win7花了接近2天 真正写作业的时间也没有那么长 言归正传 我估计大概用5个小时左右 实际前前后后大大小小时间加起来6 7个小时
  • 2020年第十一届蓝桥杯决赛Python组(真题+解析+代码):阶乘约数

    1 真题 2 解析 难度系数 考察题型 数论 涉及知识点 约数定理 思路分析 一开始我是想着直接分解因数 结果100 的时间复杂度实在太大 所以这道题只能靠巧取解决 搬出适合本题的工具 质数 唯一分解公式 质数有2 3 5 7 11 13
  • 关于mongodb服务自动停止问题

    昨天发现系统宕机了 查了下原因是mongodb服务停了 看了下日志 2017 10 18T18 09 59 181 0800 I CONTROL signalProcessingThread got signal 1 Hangup will
  • RIDE元素定位简单用法二

    悬浮菜单 隐藏菜单定位和点击功能定位 鼠标移动到该位置时 菜单显示 先定位到鼠标停留位置 然后定位隐藏菜单或链接 定位方法 Mouse Over 我们的服务路径 Click Link 测试点击的链接 关于定位鼠标介绍 Mouse Over
  • PAT 5 凑算式(dfs)

    凑算式 这个算式中A I代表1 9的数字 不同的字母代表不同的数字 比如 6 8 3 952 714 就是一种解法 5 3 1 972 486 是另一种解法 这个算式一共有多少种解法 注意 你提交应该是个整数 不要填写任何多余的内容或说明性
  • 彻底解决Jetson Inference关于box.com连不上的问题

    jetson inference教程 国内镜像 1 安装git和cmake 并检出库到本地 sudo apt get install git cmake git clone GitHub dusty nv jetson inference
  • 2021 10-24

    let person name 张三 age 23 let p new Proxy person set target prpoName value Reflect set target prpoName value get target
  • 在物联网中应用机器学习

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由未来守护者发表于云 社区专栏 本项目探讨如何将机器学习 Machine learning 应用到物联网 IoT Internet of Things 中 我们将使用 Andro
  • 如何在windows下使用vscode畅快的调试bash shell

    前言 在linux随然有很多的可以调试的bash的工具 但是如果不用ubuntu或者其它linux系的桌面系统 只有命令行的情况下 还是很吃力的 当然了 大神级别可以畅快的书写并调试 但是对于我等小白 空格多一个少一个 只能望尘莫及了 所以
  • Python 安装dlib解决办法

    pypi python org pypi dlib 19 6 0 下载 dlib 19 6 0 cp36 cp36m win amd64 whl 成功安装 dlib 但是import 时候失败 尝试 pip install dlib 19
  • matlab实现神经网络算法,人工神经网络matlab代码

    求一段神经网络MATLAB代码 50 function presim ss net simnonlin y d n y 时间序列数据 列向量 d 时间延迟参数 正整数 n 用于训练的点的个数 正整数trainset gettrain y d
  • 新手学习python语言基础知识第四天

    语言基础 day4 循环 01 for循环 循环 让代码重复执行 代码写一遍 运行的时候可以执行多次 1 for循环 for循环如图 语法 for 变量 in 序列 循环体 说明 for in 关键字 固定写法 变量 写一个变量名 可以是已
  • JAVA ~ FFmpegFrameRecorder用H264编码封装mp4 有声音无图像

    1问题描述 最近公司做的关于摄像机录制视频保存的问题 发送录制了视频上传至服务器中在浏览器上播放有声音无图像 因为自己是这方面的小白 在自己也在前面博客中也分享了rtsp流媒体如何播放及在H5中嵌入vlc 帧抓取图片及录制视频等文章 希望对
  • 使用ai实现后端端口的调用

    一 创建flask框架 1 创建框架提示词 我需要一个flask框架的demo 把端口号改为8080 需要热加载功能 支持在线更改 请给我代码 导入一些依赖库 from flask import Flask render template
  • 视频播放设计测试用例

    功能测试 1 视频资源能否正常获取 无论从服务器后台或者客户端添加 播放是否正常 2 存在多个视频时 能否上下滑动 无论看完未看完 3 如果一个视频涉及另外一个 切换到相应视频能否正常播放 4 视频音量测试 在无声音播放是否 正常声音是否正
  • vue项目 代码中代理 部署后nginx请求代理

    vue项目 代码中代理 vue2 0 文件地址 config index js module exports dev Paths assetsSubDirectory static assetsPublicPath proxyTable 设
  • 金融时间序列分析:Python基于garch模型预测上证指数波动率、计算var和var穿透率、双尾检验

    目录 一 收益率波动效应的分析 1 1 收益率序列平稳性检验 1 2 建立AR p 模型 1 3 Ljung Box混成检验残差序列的相关性 判断是否有ARCH效应 1 4 建立ARCH模型 二 GARCH模型与波动率预测 2 1 建立GA
  • 后端Springboot框架搭建APi接口开发(第一章)

    本文章以IDEA为开发工具 使用SSM框架进行项目编写 第一节 设计并创建数据库 我们用一个简单的用户表进行操作演示 首先创建Data数据库 create database data 创建User数据表 表中包含用户邮箱 用户姓名 用户密码
  • C++ placement new使用

    placement new重载来原来的operator new 且placement new不能被即需重载 placement new是在原有的一块地址上继续创建一个对象 注意对象类型要一致 这样的操作的优势有两个 1 不用花时间在找合适的
  • Anchor DETR

    Anchor DETR Query Design for Transformer Based Detector 2021 9 1 DETR的object query是学习的 没有物理意义也不能解释每个query注意哪 作者认为学习出来的ob