基于Transformer的经典目标检测之DETR

背景

DETR,即DEtection TRansformer,是由尼古拉斯·卡里翁及其团队于2020年在Facebook AI Research首次提出的,它在目标检测领域开创了一种新的波潮。

虽然目前并未保持最先进(State Of The Art)的地位,但DETR对目标检测任务的创新重新定义显著影响了后续的模型,例如CO-DETR,它是当前LVIS上目标检测和实例分割的最先进技术。

摆脱传统的一对多问题情景,其中每个地面真实值对应着大量的锚点候选框,DETR通过将目标检测视为一个集合预测问题,使预测和地面真实值之间实现一对一的对应关系,从而消除了对某些后处理技术的需求。

目标检测回顾

目标检测是计算机视觉领域的一个子领域,专注于在图像或视频帧中识别和定位对象。它不仅仅对对象进行分类,还提供了一个边界框,指示对象在图像中的位置,从而使系统能够理解各个识别对象的空间上下文和位置。

afa0765ebd26d089f6554605c4a6f586.gif

Yolo5视频分割

目标检测本身非常有用,例如在自动驾驶中,但它也是实例分割的预备任务,其中我们试图寻找对象的更精确轮廓,同时能够区分不同实例(与语义分割不同)。

2c5324f428f8fca54d34fe5480975c29.jpeg揭秘非最大抑制

非最大抑制(NMS)长期以来一直是目标检测算法中的基石,在后处理中执行不可或缺的角色,以精炼预测输出。在传统的目标检测框架中,模型在潜在对象区域周围提出了大量边界框,其中一些不可避免地表现出重叠度很大(如上图所示)。

NMS通过保留具有最大预测目标分数的边界框,同时抑制表现出高度重叠的相邻边界框来解决这个问题,其重叠程度由IoU(交并比)度量量化。具体而言,给定一个预先设定的IoU阈值,NMS迭代地选择具有最高置信度分数的边界框,并使IoU超过此阈值的边界框失效,确保每个对象有唯一的、高度自信的预测。尽管NMS无处不在,DETR(DEtection TRansformer)大胆地回避了传统的NMS,通过将其重新定义为一个集合预测问题,重塑了目标检测。

通过利用Transformer,DETR直接预测了一个固定大小的边界框集,并消除了传统NMS的必要性,显著简化了目标检测流程,同时保留,甚至提高了模型性能。

深入了解DETR架构

在高层次上,DETR是:

  •  图像编码器(实际上是双图像编码器,因为首先有一个CNN骨干,然后是一个用于更具表达力的Transformer编码器)。

  •  产生图像编码的Transformer解码器。

753682de88451e6f18652be30baa849b.jpeg
DETR结构

让我们更详细地了解每个部分:

1.骨干:

我们从一个具有3个彩色通道的初始图像开始:

9604e8abc77b0aa1e5e9fad7f0b7ddb7.png

然后,将此图像馈送到骨干,即卷积神经网络。

9eadd03d376cec5a61e8da7dbb787b03.png

我们使用的典型值是C = 2048和H = W = H0 = W0 = 32。

2. Transformer编码器:

Transformer编码器理论上不是必需的,但它为骨干增加了更多的表达力,消融研究显示性能有所提高。首先,1x1卷积将高级激活图f的通道维度从C减小到较小的维度d。

f3a519d188909c090b83fcf209b30daa.png

但正如您所知,Transformer将输入序列的向量映射到输出序列的向量,因此我们需要折叠空间维度:

6ae887c8b96ddd03643445c29d63391c.png

现在我们准备将其馈送到Transformer编码器。重要的是要注意,Transformer编码器仅使用自注意机制。

aa527d4fcd80e4b146f958ef50cab908.jpeg

3. Transformer解码器:

这部分是最难理解的部分,坚持一下,如果你理解了这部分,你就理解了文章的大部分内容。解码器使用自注意和交叉注意机制的组合。它接收N个对象查询,并将每个查询转换为输出框和类别。

边界框预测是什么样子的呢?实际上由两个组件组成:

  • 一个边界框有一些坐标(x1,y1,x2,y2)来标识边界框。

  • 一个类别(例如海鸥,但也可以是空的)

重要的是N是固定的。这意味着DETR始终准确预测N个边界框。但其中一些可以是空的。我们只需要确保N足够大,以覆盖图像中的足够多的对象。然后,交叉注意机制可以关注由编码部分(骨干+Transformer编码器)产生的图像特征。

95c1e59ec412036535861de923b6eea2.jpeg详细的注意力机制

在原始的Transformer架构中,我们生成一个令牌,然后使用自注意力和交叉注意力的组合来生成下一个令牌,然后重复。但在这里,我们不需要这种递归的形式,我们可以一次性生成所有输出,以便利用并行性。

主要创新:二分图匹配损失

如前所述,DETR精确地产生N个输出(边界框+类别)。但每个输出仅对应一个地面真实值。如果您记得的话,这正是重点所在,我们不想应用任何后处理来过滤重叠的边界框。

9cdfaf31511f7e591954996bf465906d.jpeg

我们基本上希望将每个预测与最接近的地面真实值关联起来。实际上,我们正在寻找预测集和地面真实值集之间的双射,最小化总损失。

那么我们如何定义这个损失呢?

1. 匹配损失(成对损失

首先,我们需要定义一个匹配损失,它对应于一个预测框和一个地面真实框之间的损失,并且这个损失需要考虑两个组成部分:

  • 分类损失(预测边界框内的类别是否与地面真实值相同)

  • 边界框损失(边界框是否接近地面真实值)

c0e68894dabb2a746cbea0c1c7f70e8f.jpeg匹配损失

更确切地说,对于边界框组件,有两个子组件:

  • 交并比损失(IOU)

  • L1损失(坐标之间的绝对差异)

    c1d14e134333819312c508a4c6f33b59.jpeg

2. 双射的总损失

要计算总损失,我们只需对N个实例求和:

98db2d8547e9e243b1e6166721a98af2.jpeg

因此,我们的问题基本上是找到最小化总损失的双射:

4cfb6a5465e312eb8403b13f4a40909b.jpeg

性能见解

05645938315fc091f3bc04e144428518.jpegDETR与Faster RCNN的性能

  • DETR:这是指原始模型,它使用Transformer进行目标检测,并使用ResNet-50作为骨干。

  • DETR-R101:这是DETR的变体,使用ResNet-101作为骨干,而不是ResNet-50。这里,“R101”代表“ResNet-101”。

  • DETR-DC5:这个版本的DETR在其ResNet-50骨干中使用了修改后的扩张C5阶段,通过增加特征分辨率,提高了模型对较小对象的性能。

  • DETR-DC5-R101:这个变体结合了这两个修改。它使用ResNet-101骨干,并包含扩张的C5阶段,从而既受益于更深的网络,又受益于增加的特征分辨率。

DETR在大型对象上明显优于基线,这很可能是由Transformer允许的非局部计算所致。但有趣的是,DETR在小型对象上的性能较低。

为什么在这种情况下注意力机制如此强大?

74f9dd8b17b887bf148e1efb4d46fa95.jpeg

重叠实例上的注意力

非常有趣的是,我们可以观察到在重叠实例的情况下,注意力机制能够正确分离单个实例,如上图所示。

965053eb72e5e0607127308f016ad159.jpeg

在极端位置上的注意力机制

还很有趣的是,注意力集中在对象的极端位置上,以生成边界框,这正是我们期望的。

总结

DETR不仅仅是一个模型;它是一种范 Paradigm 转变,将目标检测从一对多的问题转变为一个集合预测问题,有效利用Transformer架构的进步。自提出以来,已经出现了一些增强型模型,如DETR++和CO-DETR,它们现在在LVIS数据集上引领着实例分割和目标检测的最新技术。

·  END  ·

HAPPY LIFE

13a8449e8d205757448c3da8c2eca107.png

本文仅供学习交流使用,如有侵权请联系作者删除

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

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

相关文章

vr虚拟现实游戏世界介绍|数字文化展览|VR元宇宙文旅

虚拟现实(VR)游戏世界是一种通过虚拟现实技术创建的沉浸式游戏体验,玩家可以穿上VR头显,仿佛置身于游戏中的虚拟世界中。这种技术让玩家能够全方位、身临其境地体验游戏,与游戏中的环境、角色和物体互动。 在虚拟现实游…

IP在网络通信中的重要作用

IP,全称Internet Protocol,即网际互连协议,是TCP/IP体系中的网络层协议。IP作为整个TCP/IP协议族的核心,是构成互联网的基础。它的作用重大且深远,下面将详细阐述IP的定义及其在网络通信中的重要作用。 首先&#xff0…

SpringBoot中的配置文件优先级、bootstrap和application的区别

SpringBoot中的配置文件优先级 SpringBoot项目当中支持的三类配置文件: application.properties application.yml application.yaml 在SpringBoot项目当中,我们要想配置一个属性,可以通过这三种方式当中的任意一种来配置都可以&#xff0…

Elastic Agent 的安装及使用

概述 Elastic Agent是Elastic Stack中的一个全新组件,旨在简化和统一监控和集成管理流程。它是一个轻量级的代理,可以部署到各种不同类型的主机和容器中,用于收集系统指标、日志和事件数据,并将其发送到Elasticsearch进行存储和分…

SpringBoot(自定义转换器+处理Json+内容协商)

文章目录 1.自定义转换器1.代码实例1.save.html2.编写两个bean1.Car.java2.Monster.java 3.WebConfig.java 配置类来自定义转换器4.测试 2.注意事项和细节1.debug查看转换器总数1.打断点2.执行到断点后,选左边的1923.可以看出,加上自定义的转换器一共125…

分类预测 | Matlab实现GSWOA-KELM混合策略改进的鲸鱼优化算法优化核极限学习机的数据分类预测

分类预测 | Matlab实现GSWOA-KELM混合策略改进的鲸鱼优化算法优化核极限学习机的数据分类预测 目录 分类预测 | Matlab实现GSWOA-KELM混合策略改进的鲸鱼优化算法优化核极限学习机的数据分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 GSWOA-KELM分类&#xff0…

react04- mvc 、 mvvm

MVC与MVVM stackoverflow论坛网站 react前端框架 使用框架前: 操作dom > js获取dom元素,事件侦听,修改数据,设置样式。。。 操作dom问题: 直接操作dom,会造成大量的回流、重绘,消耗大量性能操作起来也…

论文阅读——RingMo

RingMo: A Remote Sensing Foundation Model With Masked Image Modeling 与自然场景相比,RS图像存在以下困难。 1)分辨率和方位范围大:受遥感传感器的影响,图像具有多种空间分辨率。此外,与自然图像的实例通常由于重…

尚硅谷SpringBoot3笔记 (二) Web开发

Servlet,SpringMVC视频推荐:53_尚硅谷_servlet3.0-简介&测试_哔哩哔哩_bilibili HttpServlet 是Java Servlet API 的一个抽象类,用于处理来自客户端的HTTP请求并生成HTTP响应。开发人员可以通过继承HttpServlet类并重写其中的doGet()、do…

【图论】计算图的n-hop邻居个数,并绘制频率分布直方图

计算图的n-hop邻居个数,并绘制频率分布直方图 在图论中,n-hop邻居(或称为K-hop邻居)是指从某个顶点出发,通过最短路径(即最少的边数)可以到达的所有顶点的集合,其中n(或…

JVM及垃圾回收算法

一、JVM 1、jvm的内存组成 五大内存区域,分1.7和1.8 1.堆内存:引用类型的数据,内部组成:1.新生代(伊甸区和幸存者区)2.老年代。该区域经常发生垃圾回收的操作 堆是JVM中最大的一块内存区域,用…

【爬虫】requests.post请求中的data和json使用区别

请求体是键值对形式(无花括号),请求时需要使用data参数处理。 代码: data {...} ret requests.post(url, headersheaders, datadata)请求体是字典形式(有花括号),请求时需要使用json参数处理。…

派对游戏2024年新局面:二超多强,市场细分

2023年末,《元梦之星》上线迎战《蛋仔派对》,网腾大战打响。 这场战役从开局就进入到了白热化,双方投入真金白银来拉拢玩家,于春节这一亲朋相聚最适合派对游戏的时段集中发力,互有胜负。 目前《元梦之星》略处下风&a…

Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4

Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4 相关链接:arxiv 关键字:Questioning LLaMA、GPT-3.5/4、guiding principles、prompting、large language models 摘要 本文介绍了26个旨在简化查询和提示大型语言模型&…

自然语言处理NLP:tf-idf原理、参数及实战

大家好,tf-idf作为文体特征提取的常用统计方法之一,适合用于文本分类任务,本文将从原理、参数详解和实际处理方面介绍tf-idf,助力tf-idf用于文本数据分类。 1.tf-idf原理 tf 表示词频,即某单词在某文本中的出现次数与…

力扣 322 零钱兑换

题目描述 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 你可以认为每种硬币的数量是无限的。 示例 1: 输入:coins [1, 2, 5…

x6.js 从流程图组件库中拖拽组件到画布dnd使用

上一篇已经了解到了x6.js常用功能以及使用方法。但我们使用流程图的时候还少不了一个非常重要的功能那就是拖拽组件库里的组件进来。如下图: 首先是布局这块,拖拽组件库的视图中布局无需我们去写,我们只需把界面搭建好。 添加组件库 1.搭建布…

Python 基于 OpenCV 视觉图像处理实战 之 图像相关的基本概念,以及图像的基础操作 二

Python 基于 OpenCV 视觉图像处理实战 之 图像相关的基本概念,以及图像的基础操作 二 目录 Python 基于 OpenCV 视觉图像处理实战 之 图像相关的基本概念,以及图像的基础操作 二 一、简单介绍 二、图像的几何变换 三、插值算法 1、最近邻插值算法 …

java kafka客户端何时设置的kafka消费者默认值

kafka为什么有些属性没有配置却能正常工作,那是因为kafka-clients对有些消费者设置了默认值,具体看下ConsumerConfig类的静态模块,具体如下所示: kafka为什么有些属性没有配置却能正常工作,那是因为kafka-clients对有…

AJAX 02 案例、Bootstrap框架

AJAX 学习 AJAX 2 综合案例黑马 API01 图书管理Bootstrap 官网Bootstrap 弹框图书管理-渲染列表图书管理-添加图书图书管理-删除图书图书管理 - 编辑图书 02 图片上传03 更换图片04 个人信息设置信息渲染头像修改补充知识点:label扩大表单的范围 AJAX 2 综合案例 黑…