ViT:1 从DETR说起

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调重新阅读。而最新科技(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.mzph.cn/pingmian/15534.shtml

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

相关文章

Pycharm在下载安装第三方库时速度慢或超时问题 / 切换国内镜像地址

pycharm下载第三方库速度极慢,搜索了一下,发现方法非常乱,稍作整理。这个问题一般都会出现,在我们开发中遇到的常见问题,根据以下解决方法,基本可以解决,但是不能100%保证 Installing packages …

打造一个增强版Kimi:可以生成图片、PPT、PDF文档、数据分析等

Kimi虽然在国内AI大模型中表现不错,但是和ChatGPT还是差不少功能。现在有一个很简单的方法,把kimi功能增强,使用效果大大改善,比如生成图片: 具体方法如下: 打开coze网站:https://www.coze.cn/…

Elementui里使用el-date-picker来选取指定时间段(时间段不超过31天)

需求描述&#xff1a; 1.禁止选择当前日期之后的所有日期2.选择的时间范围小于等于31天&#xff0c;其他日期禁用<el-date-picker v-model"historySubmitModel.historyDateTime" type"daterange" range-separator"- " start-placeholder"…

鸿蒙应用开发系列 篇四:鸿蒙系统应用开发基础

文章目录 系列文章概述ArkTS应用(Stage模型)示例应用示例代码使用模拟器运行应用使用真机运行应用应用程序包共享包应用配置文件(Stage模型)资源目录示例系列文章 鸿蒙应用开发系列 篇一:鸿蒙系统概述 鸿蒙应用开发系列 篇二:鸿蒙系统开发工具与环境

【c++基础】昆虫繁殖

说明 科学家在热带森林中发现了一种特殊的昆虫&#xff0c;这种昆虫的繁殖能力很强。每对成虫每过x个月产y对卵&#xff0c;每对卵要过两个月长成成虫。假设每个成虫不死&#xff0c;第一个月只有一对成虫&#xff0c;且卵长成成虫后的第一个月不产卵(过X个月产卵)&#xff0c…

C++容器之位集(std::bitset)

目录 1 概述2 使用实例3 接口使用3.1 constructor3.2 count_and_size3.3 test3.4 any3.5 none3.6 all3.7 set3.8 reset3.9 filp3.10 to_string3.11 to_ulong3.12 to_ullong3.13 operators1 概述 位集存储位(只有两个可能值的元素:0或1,true或false,…)。   该类模拟bool…

推荐一款自助分析的财务分析软件:奥威BI软件

奥威BI软件是一款支持多维度动态自助分析的软件&#xff0c;预设了智能财务分析方案&#xff0c;提供内存行列计算模型解决财务指标计算难题&#xff0c;界面简洁&#xff0c;以点击、拖曳操作为主&#xff0c;十分适合没有IT背景的财务人做财务分析。因此也经常有人说奥威BI软…

Spark搭建 Standalone模式详细步骤

Standalone模式概述&#xff1a; Standalone模式是Spark自带的一种集群模式&#xff08;本地集群&#xff0c;不依赖与外部集群&#xff0c;比如Yarn&#xff09;&#xff0c;可以真实地在多个机器之间搭建Spark集群的环境。 Standalone是完整的Spark运行环境,其中: Master角…

OpenFeign微服务调用组件使用

前言&#xff1a;OpenFeign是可以跨服务、跨进程的调用方式。 什么是Feign Feign是Netflix开发的声明式、模版化的HTTP客户端。 优势: Feign可以做到使用 HTTP 请求远程服务时就像调用本地方法一样的体验&#xff0c;开发者完全感知不到这是远程方法&#xff0c;更感知不到这…

【TB作品】stm32单片机读取DS2401程序

DS2401是由Analog Devices公司生产的一种硅序列号芯片&#xff0c;它提供了一个绝对唯一的64位ROM识别码&#xff0c;用于确保可追溯性。以下是对DS2401器件的分析&#xff1a; 特点和优势&#xff1a; 唯一性&#xff1a;每个DS2401芯片都有一个独一无二的64位注册码&#x…

PointPillars, CenterPoint,和TransFusion

PointPillars, CenterPoint, and TransFusion These models are primarily used for 3D object detection in autonomous driving. Here is a brief introduction to PointPillars, CenterPoint, and TransFusion: PointPillars 领域&#xff1a;计算机视觉&#xff0c;自动…

[less配置]vue2引入less

1、终端输入&#xff1a;npm install less less-loader --save-dev 2、在package.json查看是否安装less依赖 3、调用

vue2快速安装环境,从0-1创建vue2项目教程

vue2快速安装环境&#xff0c;从0-1创建vue2项目教程(windows) 一、node下载 1.如何查看node版本和npm版本 二、npm安装脚手架 1.注意事项 三、vue2选项解读 四、运行脚手架 一、node下载 1、(node.js中文网) 下载长期稳定版本就行 解释下node.js和npm的关系? 想象你在…

原始字面常量(C++11)

原始字面常量&#xff08;C11&#xff09; 文章目录 原始字面常量&#xff08;C11&#xff09;前言一、原始字面量二、代码示例总结 前言 字面量一般是指数值&#xff08;12、454等&#xff09;和字符串&#xff08;“Hw”、“h\t”&#xff09;&#xff0c;但是有时候我们想表…

leetcode题目274

H指数 中等 给你一个整数数组 citations &#xff0c;其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义&#xff1a;h 代表“高引用次数” &#xff0c;一名科研人员的 h 指数 是指他&#xff08;她&…

Android Studio 问题集锦

报 Plugin [id: ‘com.android.application’, version: ‘8.1.3’, apply: false] was not found in any of the following sources: 场景&#xff1a;在一个Android 11的项目中添加一个Android 9的项目作为其Module&#xff0c;结果导致原项目无法正常运行&#xff0c;且原项…

PyTorch安装与配置

前言 参考文档&#xff1a;https://github.com/TingsongYu/PyTorch-Tutorial-2nd 环境配置之Anaconda 解释器——python.exe&#xff0c;是人类与CPU之间的桥梁&#xff0c;需要配置系统环境变量 Anaconda&#xff1a;集成环境&#xff0c;包管理器 Conda 安装 Anaconda&am…

WXSS模板样式-全局样式和局部样式

一、WXSS 1.WXSS WXSS(WeiXin Style Sheets)是一套样式语言&#xff0c;用于美化WXML的组件样式&#xff0c;类似于网页开发中的CSS 2.WXSS和CSS的关系 WXSS具有CSS大部分特性&#xff0c;同时&#xff0c;WXSS还对CSS进行了扩充以及修改&#xff0c;以适应微信小程序的开发…

PropertyGrid显示嵌套对象

简介&#xff1a; 在C#中&#xff0c;使用PropertyGrid来显示多重变量&#xff0c;通常意味着你想要展示一个对象的属性&#xff0c;该对象包含子对象或者集合。以下是一个简单的例子&#xff0c;展示如何使用PropertyGrid来显示包含嵌套属性的对象。 使用&#xff1a; 嵌套对象…

CSDN 自动评论互动脚本

声明 该脚本的目的只是为了提升博客创作效率和博主互动效率&#xff0c;希望大家还是要尊重各位博主的劳动成果。 数据库设计 尽量我们要新建一个数据库csdn_article&#xff0c;再在其中建一个数据表article -- csdn_article-- article-- 需要进行自动评论的表格信息...CR…