ViT:1 从DETR说起

news2025/3/18 23:51:13

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调重新阅读。而最新科技(Mamba,xLSTM,KAN)则提供了大模型领域最新技术跟踪。若对于构建生产级别架构则可以关注AI架构设计专栏。技术宅麻烦死磕LLM背后的基础模型。

卷积神经网络目前在不同的计算机视觉图像识别任务中处于领先地位。而Transformer模型已成为自然语言处理 (NLP) 中的翘楚。GPT-4o,Gemini和Llama3都是基于Transformer架构的大语言模型,主要都是依托于Transformer架构中的注意力机制。

Vision Transformers (ViT) 最近成为卷积神经网络 (CNN) 的有力替代品。在计算效率和准确性方面,ViT模型的表现几乎比目前最先进的CNN高出 4 倍。

Vision Transformer

Vision Transformer (ViT) 是一种突破性的神经网络架构,它重新构想了我们处理和理解图像的方式。Vision Transformer (ViT) 模型于 2021 年在 ICLR 2021 上发表的一篇会议研究论文“An Image is Worth 16*16 Words: Transformers for Image Recognition at Scale”中引入。

受Transformers 在自然语言处理中成功的启发,ViT 通过将图像划分为更小的块并利用自注意力机制,引入了一种分析图像的新方法。这使模型能够捕获图像中的局部和全局关系,从而在各种计算机视觉任务中取得令人印象深刻的性能。

我们表明,这种对 CNN 的依赖是不必要的,直接应用于图像块序列的纯 Transformer可以在图像分类任务中表现得非常好。当对大量数据进行预训练并转移到多个中型或小型图像识别基准(ImageNet、CIFAR-100、VTAB 等)时,Vision Transformer (ViT) 与最先进的卷积网络相比取得了出色的结果,同时训练所需的计算资源却少得多。

虽然 Transformer 架构已成为涉及自然语言处理 (NLP)的任务的标配,但其与计算机视觉 (CV)相关的用例仍然很少。在许多计算机视觉任务中,注意力机制要么与卷积神经网络(CNN) 结合使用,要么用于替代卷积网络的某些方面。流行的图像识别算法包括ResNet、VGG、YOLOv3、YOLOv7或YOLOv8以及Segment Anything (SAM)。

传统的CNN架构

ViT最近在图像分类、对象检测和语义图像分割等多个计算机视觉应用的基准测试中取得了极具竞争力的性能。CSWin Transformer已经超越了 Swin Transformer等先前最先进的方法。

在基准测试任务中,CSWIN 取得了优异的性能,包括在 ImageNet-1K上 85.4%的Top-1准确率、在COCO检测任务上53.9 box AP and 46.4 masks AP,以及在ADE20K语义分割任务上52.2 mIOU。

ViT与卷积神经网络 (CNN) 在的关键不同点在于:

  • 输入表示:CNN直接处理原始像素值,但ViT将输入图像分成多个块(patch)并将其转换为Token。

  • 处理机制:CNN使用卷积层和池化层的堆叠来捕获不同空间尺度的特征。ViT主要是采用自注意力机制来考虑所有块(patch)之间的关系。

  • 全局把控:ViT本质上通过自我注意力来捕捉全局背景,有助于识别远距离Patch之间的关系。CNN依靠池化层来获取粗略的全局信息。

  • 数据依赖:CNN通常需要大量标记数据进行训练,而ViT可以从对大数据集进行预训练然后对特定任务进行微调。

DETR

2020年5月的DETR是一种最先进的深度学习框架,利用Transformer网络进行端到端对象检测。DETR背后的关键思想是将目标检测视为预测问题。DETR不单独预测图像中对象的边界框和类标签,而是将对象检测视为二分匹配问题,它同时预测固定数量的物体及其位置。然后使用Hungarian Algorithm将这些预测与地面真实物体进行匹配进行损失计算。

对于一张图像,DETR首先用预训练的CNN网络(例如ResNet50)提取图像的特征,再把由CNN网络得到的多通道特征图转化为Transformer接收的Token序列。输入序列的每个Token都会带上位置编码。

上述得到的Token序列先进入encoder模块,encoder模块主要通过自注意力机制进一步学习图像的特征。Transformer具有强大的特征提取能力,在encoder中每个token可以学习到其和所有token的相关性。

可以说经过encoder的每个token注意到了图像的全局信息。上图展现某个token序列的注意力地图,其中黄色代表高权重,蓝色代表低权重。通过观察到,encoder还是学习到了图像中各个实例的大致分割。

DETR输出的内容是固定的,假设为M个槽口。它是Decoder输出再接FFN网络进行固定的集合预测。

每个槽口由两个组件组成:

  • 一个边界框拥有的坐标来标识边界框。

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

在DETR中,注意到蓝色,橙色,绿色和红色的方块,它们是Object Queries(对象查询)。这些Query是固定数量的在训练过程中学习到的向量。这些向量没有先验的空间信息,即它们最初不包含任何位置信息。相反,它们通过与输入图像特征和位置编码进行交互来学习空间信息和语义信息。这些查询向量在训练过程中通过反向传播逐步学习到关于目标对象的位置和类别的信息。

初始化时,Object Queries是N个固定长度的可学习向量(通常为256维)。N是超参数,预设定的检测框数量。

DETR把目标检测做成了一个集合预测的问题,并利用匈牙利匹配算法来解决decoder输出的对象和真实对象之间的匹配问题,进而计算结果差异以便更新参数。下图展示了两次训练步骤中,不同参数对应的物体会动态变化,因此损失函数的设计就尤为重要。

DETR是首个将Transformer框架用于目标检测任务的模型。其将目标检测视作一个集合预测问题。近年来涌现了许多对于DETR模型的改进工作,如Deformable-DETR、DAB-DETR、DN-DETR等,使得DETR类模型的效率和性能不断提高。2023年4月的论文“DETRS Beat YoLos on Real-time Object Detection”中提出的RT-DETR模型,其性能超过了YoLov8,进一步展现了DETR类模型在目标检测任务上的潜力和优势。

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

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

相关文章

东哥一句兄弟,你还当真了?

关注卢松松,会经常给你分享一些我的经验和观点。 你还真把自己当刘强东兄弟了?谁跟你是兄弟了?你在国外的房子又不给我住,你出去旅游也不带上我!都成人年了,东哥一句客套话,别当真! 今天,东哥在高管会上直言&…

存储+调优:存储-IP-SAN-EXTENSION

存储调优:存储-IP-SAN-EXTENSION 文件系统的锁标记 GFS(锁表空间) ----------- ------------ ------------- 节点 | ndoe1 | | node2 | | node3 | ---------- ------…

C++成员函数 - 析构函数

析构函数 析构函数 是特殊的成员函数,其 特征 如下: 1. 析构函数名是在类名前加上字符 ~ 。 2. 无参数无返回值类型。 3. 一个类只能有一个析构函数。若未显式定义,系统会自动生成默认的析构函数。注意:析构函数不能重 载 …

K8S认证|CKA题库+答案| 17. 节点维护

17、节点维护 CKA v1.29.0模拟系统免费下载试用: 百度网盘:https://pan.baidu.com/s/1vVR_AK6MVK2Jrz0n0R2GoQ?pwdwbki 题目: 您必须在以下Cluster/Node上完成此考题: Cluster Ma…

图论(三)(最小生成树)

一、图的表示(简要概述) 对于图G(V,E)( V 为节点的集合,E 为边的集合 V*V 的子集)有两种表示方法:邻接链表和邻接矩阵,两种表示方法既可以表示有向图&#x…

输入输出(3)——C++的标准输入流

目录 一、cin 流 二、成员函数 get 获取一个字符 (一)无参数的get函数。 (二)有一个参数的get函数。 (三)有3个参数的get函数 (四)用成员函数 getline 函数读取一行字符 (五)用成员函数 read 读取一串字符 (六)istream 类…

[机缘参悟-187] - 《道家-水木然人间清醒1》读书笔记 - 真相本质 -10- 关系界限 - 一个人只有放下自我,才能看清世界的真相

目录 一、现实生活中,每个人都是盲人摸象 二、一个人认知的本质是神经网络的模型训练 三、每个人的认知具有局限 四、放下自我,就是跳出自我的认知局限 五、站在上帝的视角,俯瞰不同众生的千差万别的大脑认知系统 六、个体的独特性&…

汇编实现的操作系统

掌握X86汇编语言和GDB程序调试工具对于程序员来说是非常重要的_gdb 查看x86汇编-CSDN博客 掌握编译器和虚拟机的开发有哪些方面的好处-CSDN博客 Ville Mikael Turjanmaan开发的一个操作系统MenuetOS可运行在IA-32, x86-64平台上,完全用 64 位汇编语言编写。功能包…

三、ESP32-IDF之LED

实现 ESP32-S3 的 IO 作为输出功能,实现LED灯以500毫秒闪烁一次 1、GPIO&LED简介 1.1、GPIO简介 GPIO 是负责控制或采集外部器件信息的外设,主要负责输入输出功能。 1.2、LED简介 LED,即发光二极管。 2、硬件设计 (1)原理图 LED 接…

模块化程序设计(函数的定义、调用、参数传递、局部变量、全局变量)

函数的引入: 我们曾经学习了程序设计中的三种基本控制结构(顺序、分支、循环)。用它们可以组成任何程序。但在应用中,还经常用到子程序结构。 通常,在程序设计中,我们会发现一些程序段在程序的不同地方反复…

[数据集][目标检测]痤疮检测数据集VOC+YOLO格式915张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):915 标注数量(xml文件个数):915 标注数量(txt文件个数):915 标注类别…

qmt量化教程4----订阅全推数据

文章链接 qmt量化教程4----订阅全推数据 (qq.com) 上次写了订阅单股数据的教程 量化教程3---miniqmt当作第三方库设置,提供源代码 全推就主动推送,当行情有变化就会触发回调函数,推送实时数据,可以理解为数据驱动类型&#xff0…

有趣的css - 圆形背景动效多选框

大家好,我是 Just,这里是「设计师工作日常」,今天分享的是用 css 实现一个圆形背景动效多选框,适用提醒用户勾选场景,突出多选框选项,可以有效增加用户识别度。 最新文章通过公众号「设计师工作日常」发布…

【完整解析】2024电工杯数学建模A题论文与代码

园区微电网风光储协调优化配置 1 论文2 代码分享2.1 第三题第一问 3 数据与代码 1 论文 2 代码分享 2.1 第三题第一问 function anssq3w1ObjFun(ttt,id); %ttttt(1); tt[750,0,0,1000,600,500]; limttt(1)*200; limmttt(2)*500*0.9-ttt(2)*500*0.1; t1ttt(3)*1000;t2ttt(4)*1…

【spring】@RequestMapping注解学习

RequestMapping介绍 官网地址:Mapping Requests :: Spring Framework RequestMapping 是Spring框架中的一个核心注解,主要用于处理HTTP请求的地址映射。它属于Spring MVC框架的一部分,用于将接收到的Web请求映射到特定的处理器类或处理器方…

MySQL存储过程for循环处理查询结果

在MySQL数据库中,存储过程是一种预编译的SQL语句集,可以被多次调用。在MySQL中使用存储过程查询到结果后,有时候需要对这些结果进行循环处理。 1. 创建表 CREATE TABLE t_job (job_id int(11) unsigned NOT NULL AUTO_INCREMENT,job_name v…

手写tomcat(Ⅰ)——tomcat原理

Tomcat简介 众所周知,动态web项目基本就是使用了tomcat作为服务端 动态web项目的目录结构 Tomcat是一个轻量级的服务器,其实就是一个Java程序,能够作为一个服务端去接收客户端的请求,并返回给客户端响应 Tomcat本身是一个容器…

基于Keras的手写数字识别(附源码)

目录 引言 为什么要创建虚拟环境,好处在哪里? 源码 我修改的部分 调用本地数据 修改第二层卷积层 引言 本文是博主为了记录一个好的开源代码而写,下面是代码出处!强烈建议收藏!【深度学习实战—1】&#xff1a…

5、sqlmap注入post类型+os-shell

题目:青少年:Easy_SQLi 1、打开网页,是一个登入表单 2、判断注入类型,是一个字符注入,使用or直接绕过密码进去了 3、上bp抓取数据包,sqlmmap用post注入走一遍,找到数据库,账号密码&…

【Linux】TCP协议【中】{确认应答机制/超时重传机制/连接管理机制}

文章目录 1.确认应答机制2.超时重传机制:超时不一定是真超时了3.连接管理机制 1.确认应答机制 TCP协议中的确认应答机制是确保数据可靠传输的关键部分。以下是该机制的主要步骤和特点的详细解释: 数据分段与发送: 发送方将要发送的数据分成一…