DETR【论文阅读】

news2024/11/26 20:47:17

End-to-End Object Detection with Transformers

1. Introduction

  • 发表:ECCV 2020
  • 影响:在目标检测上使用了一种全新的架构,是里程碑式的工作。简单优雅统一的结构,不再依赖于人的先验知识(anchor生成,nms),只需CNN和transformer。
  • 解决问题:正如标题所说的,使用transformer做端到端的目标检测。之前的方法并不是端到端的,需要proposal或anchor 以及后处理(nms:非极大值抑制来去除冗余框),导致训练和部署困难。
  • 方法:将目标检测(预测框的位置及类别)看成一个集合预测的问题, 本质上这些boxes是一个集合,不同的图像对应的集合是不同的,而目标检测的任务就是预测给定图片对应的集合。1)提出了一种新的损失函数,通过二分图匹配的方式并行地输出一组独一无二的预测,这样就不存在冗余的框,也不需要nms;2)使用transformer encoder-decoder的架构,在encoder部分引入learned object query(有点类似anchor的意思)对全局信息进行学习,且预测每个object对应的框是并行的,因为这些框的预测并不依赖于其他框(即没有顺序结构)
  • 优点:简单,只需支持CNN和transformer,代码也很短。很容易扩展到其他任务上,例如在全景分割任务上就能取得很好的效果。
  • 结果:能够和基线模型差不多。

2. Method

框架

在这里插入图片描述
图像首先输入CNN中提取特征,将其拉直输入到encoder中去学习全局信息。然后将学习到的特征输入到decoder中生成预测框

  • CNN:个人觉得是为了学习局部特征。因为object总是在一块区域。
  • encoder:主要是为了学习全局信息,每个点都能看到图像中的其他点(有一定的交互),这样对于一个object大概率就只会出现一个框。这样的全局特征有利于移除全局的框。感觉前面的CNN+encoder就是为了对局部特征和全局特征进行建模。
  • decoder:这里的输入除了encoder的特征还有一组qurey,与特征进行交互。query的数量限定了decoder会输出多少个框(在论文中设置的是100)。因此每张图像都会输出100个框。
  • 对于100个框,作者将选择框的任务看成集合预测的问题,在训练的时候使用二分图匹配的方式得到匹配的框,在此基础上计算loss。在测试的时候使用阈值进行选择,置信度高于阈值则视为object,否则为背景类。

结果

  • 在COCO数据集上取得了与Faster R-CNN competitive的结果;
  • 优点:但是DETR在大物体的表现上很好,归功于transformer对全局建模的能力,而基于anchor的方法受限于anchor的大小;且DETR可以看成一种框架,可以较容易地扩展到别的任务上,例如全景分割
  • 不足:DETR在小物体上的表现并不好,需要改进。且训练慢(是之前训练时长的10倍)

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

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

相关文章

二叉树_详解

目录 1. 树型结构 1.1 概念 1.2 概念 1.3 树的表示形式 1.4 树的应用 2. 二叉树 2.1 概念 2.2 两种特殊的二叉树 2.3 二叉树的性质 2.4 二叉树的存储 2.5 二叉树的基本操作 2.5.1 前置说明 2.5.2 二叉树的遍历 2.5.3 二叉树的基本操作 1. 树型结构 1.1 概念 …

k8s集群上安装Velero,用Velero备份K8S的数据

前提条件: 需要有一个K8S集群! 一、概述 Velero是一个开源工具,可以安全地备份和还原,执行灾难恢复以及迁移Kubernetes集群资源和持久卷。 二、docker安装minio mkdir -p /home/minio docker run -p 9000:9000 -p 9090:9090 …

Win11去掉桌面图标快捷方式(2)----Dism++

1.Dism介绍 Dism,也许是最强的实用工具全球第一款基于 CBS 的 Dism GUI 实现。 兼容 Windows Vista/7/8/8.1/10 Dism可以说是一个Dism的GUI版,但是并不依赖Dism,直接基于更底层的CBS(Component Based Servicing Reference&…

第1章 如何听起来像数据科学家

第1章 如何听起来像数据科学家 文章目录第1章 如何听起来像数据科学家1.1.1 基本的专业术语1.1.3 案例:西格玛公司1.2.3 为什么是Python1.4.2 案例:市场营销费用1.4.3 案例:数据科学家的岗位描述我们拥有如此多的数据,而且正在生产…

山西省税务汇总申报流程

1、国家税务总局山西省电子税务局 企业登录:填写社会信用代码、密码、手机号、获取验证码,即可登录成功。 2、登录成功后,按下图 第一步进行数据更新、第二步点击“我要办税”->税费申报及缴纳 3、先填写报表->增值税及附加税 4、…

每日学术速递4.11

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.InstantBooth: Personalized Text-to-Image Generation without Test-Time Finetuning 标题:InstantBooth:无需测试时间微调的个性化文本到图像生成 作者&a…

九耶丨钛伦特-用深度学习实现垃圾图像分类(一)

在这个项目中我们将结合我们的日常生活,让计算机帮助我们进行垃圾分类。比如让计算机能够正确将如下三张包含不同垃圾的图像进行分类。 我们希望计算机能够识别出三张图像依次是玻璃(玻璃瓶),纸张(信封)和塑…

Kafka学习记录

阅读前请看一下:我是一个热衷于记录的人,每次写博客会反复研读,尽量不断提升博客质量。文章设置为仅粉丝可见,是因为写博客确实花了不少精力。希望互相进步谢谢!! 文章目录阅读前请看一下:我是一…

“商量”翻车了?网友质疑搬运C站

在ChatGPT大热的当下,各大互联网和AI大厂陆续开始推出国内版本的大模型产品了,最近发布的有:商汤版ChatGPT发布千亿参数大模型:商量!第一个真正实现智能涌现的国产大语言模型,内测即将开启阿里版 ChatGPT 突…

ICLR 2023 | 基于视觉语言预训练模型的医疗图像小样本学习及零样本推理性能研究

近两年,视觉语言模型 (VLM) 逐渐兴起,并在小样本学习 (Few-shot Learning) 和零样本推理 (Zero-shot Inference) 上取得了令人注目的成果。那么这些在自然图像上取得成功的大规模预训练视觉语言模型,是否能成功应用到医疗领域呢?抱…

springboot项目中的mysql用国产数据库达梦替换的相关说明

一、 用“DM管理工具”的“管理用户”创建你需要用户,也是达梦的模式。 用户的权限问题可以直接角色授权,方便一些。 二、借用达梦的“DM数据迁移工具”做数据库的表内容转移。 1. 新建工程、新建迁移 编辑mysql的数据库源 编辑达梦的目的端数据库 选择之…

力扣119杨辉三角 II:代码实现 + 方法总结(数学规律法 记忆法/备忘录)

文章目录第一部分:题目第二部分:解法①-数学规律法2.1 规律分析2.2 代码实现2.3 需要思考第三部分:解法②-记忆法(备忘录)第四部分:对比总结第一部分:题目 🏠 链接:119.…

工业路由器IO远程控制使用说明(智联物联)

工业路由器IO控制是指路由系统已开发支持对用户DI(数字输入)/DO(数字输出)/Relay(继电器)类型的设备控制操作,目前各支持1路设备类型。 IO控制目前支持2种方式进行控制操作,即通过工…

C/C++每日一练(20230417)

目录 1. 字母异位词分组 🌟🌟 2. 计算右侧小于当前元素的个数 🌟🌟🌟 3. 加一 🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 J…

【JavaScript】3.JavaScript预解析

JavaScript 预解析 1. 变量预解析 和 函数预解析 js引擎运行js 分为两步: 预解析 代码执行 预解析 js引擎会把js 里面所有的 var 还有 function 提升到当前作用域的最前面代码执行 按照代码书写的顺序从上往下执行 预解析分为 变量预解析(变量提升&…

0101壳-手写springboot-springboot系列

文章目录1 前言1 创建我们自己的pringboot模块1.1 引入相关依赖1.1 启动类注解1.2 启动类2 测试模块3 启动测试结语1 前言 springboot有以下作用: 简化配置:Spring Boot提供了一组预定义的自动配置选项,可以快速地配置应用程序,…

2023年虚拟数字人行业研究报告

第一章 行业概况 虚拟数字人指存在于非物理世界中,由计算机图形学、图形渲染、动作捕捉、深度学习、语音合成等计算机手段创造及使用,并具有多种人类特征(外貌特征、人类表演能力、人类交互能力等)的综合产物。虚拟人可分为服务型…

[Python工匠]输出① 变量与注释

变量(variable)是用来从内存找到某个东西的标记 #去掉s两边的空格,再处理 value process(s.strip()) s " hello World " value1 len(s) value2 len(s.strip())print(value1) print(value2) #用户输入可能会有空格&#x…

【云原生】k8s集群命令行工具kubectl之应用部署命令详解

kubectl应用部署命令详解一、准备工作1.1、Replication Controller1.2、Deployment1.3、DaemonSet1.4、查看创建的svc和pod1.5、kubectl 命令自动补全设置二、应用部署命令2.1、diff2.2、apply2.3、replace2.4、rollout2.4.1、history2.4.2、pause2.4.3、resume2.4.4、restart2…

Ubuntu20.04安装matlab2022b

Ubuntu20.04安装matlab2022b 1.系统要求 Ubuntu 22.04 LTSUbuntu 20.04 LTSUbuntu 18.04 LTSDebian 11Debian 10Red Hat Enterprise Linux 9Red Hat Enterprise Linux 8 (minimum 8.4)Red Hat Enterprise Linux 7 (minimum 7.9)SUSE Linux Enterprise Desktop 15SUSE Linux E…