ViT面试知识点

文章目录

  • VIT
  • CLIP
  • SAM
  • YOLO系列问题


VIT

介绍一下Visual Transformer?
介绍一下自注意力机制?
介绍一下VIT的输出方式
介绍一下VIT做分割任务

VIT是将NLP的transformer迁移到cv领域,他的整个流程大概如下:将一张图片切成很多个patch,每个patch为16x16的大小,然后将这些patch拉直,并添加一个位置编码,然后将这个向量序列输入到标准的transformer encoder中,这里的transformer encoder由多个transformer 标准块构成,包括multi head attention 然后相加并进行层归一化,以及后面的FFN(前馈神经网络)

FFN层就是feed forward层。他本质上就是一个两层的MLP,第一层会将输入的向量升维,第二层将向量重新降维。这样子就可以学习到更加抽象的特征。

Transformer encoder 的输出和输入一样,有多个输出,我们应该拿哪个输出去做最后的分类呢?所以说再次借鉴BERT,用extra learnable embedding,也就是一个特殊字符叫cls,叫分类字符,它也有一个位置编码0,因为所有的token都在跟所有的token做交互信息,所以第一个class embedding 可以从别的embedding里面学到有用的信息,从而我们只需要根据它的输出做一个MLP Head,做最后的判断。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

CLIP

介绍一下CLIP
CLIP的网络结构
CLIP的损失函数
CLIP的优势
CLIP为什么可以做零样本学习

CLIP(Contrastive Language-Image Pre-Training)模型是一种多模态预训练神经网络,该模型的核心思想是使用大量图像和文本的配对数据进行预训练,以学习图像和文本之间的对齐关系,CLIP模型有两个模态,一个是文本模态,一个是视觉模态:

  1. Text Encoder:用于将文本转换为低维向量表示-Embeding。
  2. Image Encoder:用于将图像转换为类似的向量表示-Embedding。

在预测阶段,CLIP模型通过计算文本和图像向量之间的余弦相似度来生成预测。这种模型特别适用于零样本学习任务,即模型不需要看到新的图像或文本的训练示例就能进行预测。CLIP模型在多个领域表现出色,如图像文本检索、图文生成等。
在这里插入图片描述
模型中使用visual_embedding 叉乘 text_embedding,得到一个[N, N]的矩阵,那么对角线上的值便是成对特征内积得到的,如果visual_embedding和对应的text_embedding越相似,那么它的值便越大。

选取[N, N]矩阵中的第一行,代表第1个图片与N个文本的相似程度,其中第1个文本是正样本,将这一行的标签设置为1,那么就可以使用交叉熵进行训练,尽量把第1个图片和第一个文本的内积变得更大,那么它们就越相似。
[交叉熵]:一种用于衡量两个概率分布之间差异的度量方式。其定义为
在这里插入图片描述
,其中P(x)为实际概率分布,Q(x)为预测概率分布。
交叉熵刻画的是两个概率分布的距离,也就是说交叉熵值越小(相对熵的值越小),两个概率分布越接近

SAM

在NLP的领域中,存在一些被称为基础模型的模型,他们通过预测句子中的下一个词进行训练,称为顺序预测。通过这些基础的模型可以轻松地适应到其他的NLP的任务上,比如翻译或者是文本摘要,这种实现方式也可以称为是零样本迁移学习。其中比较著名的方法就是prompting,通过聊天的形式来进行交互。NLP有效的前提是网络上存在大量的文本,而对于序列的预测,比如说知道一些词然后预测后面的词是什么,这种不需要人工标注的标签就能完成训练。但是问题转化到计算机视觉的任务上,尽管网络上存在数十亿的图像,但是由于缺乏有效标注的mask的信息,所以在计算机视觉的任务上建立这样模型成为了挑战。开门见山,作者首先提出了三个问题。
在这里插入图片描述

针对上面提出的3个问题,作者给出的解决方案。作者的目标是通过引入三个相互关联的组件来构建一个分割的基础模型:一个可提示的分割任务、一个通过数据标注提供动力并能够通过提示工程实现一系列任务零样本迁移的分割模型(SAM),以及一个用于收集我们的数据集SA-1B(包含超过10亿个掩码)的数据引擎。

可提示的分割任务和实际使用目标对模型架构施加了约束。具体而言,模型必须支持灵活的提示,需要以分摊的实时方式计算掩码以允许交互式使用,并且必须具备处理歧义的能力。令人惊讶的是,我们发现一个简单的设计就能满足所有这三个约束条件:一个强大的图像编码器计算图像嵌入,一个提示编码器嵌入提示,然后将这两个信息源在一个轻量级的掩码解码器中结合起来,预测分割掩码。

图像的编码器:

图像编码器。出于可扩展性和强大的预训练方法的考虑,我们使用了一个经过最小调整以适应高分辨率输入的MAE预训练视觉Transformer(ViT)[33][62]。图像编码器每张图像运行一次,并可在提示模型之前应用,这里使用的mae来进行预训练。

提示词的编码器:

提示编码器。我们考虑两组提示:稀疏提示(点、框、文本)和密集提示(掩码)。我们用位置编码[95]来表示点和框,并将其与每种提示类型的学习嵌入和来自CLIP的现成文本编码器中的自由格式文本相加。密集提示(即掩码)使用卷积进行嵌入,并与图像嵌入进行逐元素相加。

掩码的解码器:

掩码解码器能够高效地将图像嵌入、提示嵌入和输出标记映射到一个掩码。采用了一个经过修改的Transformer解码器块,后面跟着一个动态掩码预测头。我们修改后的解码器块在两个方向上(从提示到图像嵌入和从图像嵌入到提示)使用提示自注意力和交叉注意力来更新所有嵌入。运行两个块之后,我们对图像嵌入进行上采样,并且一个多层感知机(MLP)将输出标记映射到一个动态线性分类器,然后该分类器计算图像每个位置的前景掩码概率。

解决歧义的问题:

解决歧义问题。如果给定一个模糊的提示,模型将平均多个有效的掩码作为一个输出。为了解决这个问题,我们修改了模型,使其能够针对单个提示预测多个输出掩码(见图3)。我们发现,3个掩码输出足以处理大多数常见情况(嵌套掩码通常最多有三层:整体、部分和子部分)。比如上面的剪刀的图像,其实由三个有效的掩码。

我们的数据引擎有三个阶段:辅助手动、半自动和全自动。在第一阶段,SAM辅助标注者标注掩码,类似于经典的交互式分割设置。在第二阶段,SAM可以通过提示可能的对象位置自动为一部分对象生成掩码,而标注者则专注于标注剩余的对象,这有助于增加掩码的多样性。在最后阶段,我们使用前景点的常规网格提示SAM,平均每张图像生成约100个高质量掩码。

介绍一下SAM模型?
SAM的创新性在哪里?
详细介绍一下SAM的网络结构
SAM的加速和量化你有了解吗?
SAM的应用场景

YOLO系列问题

前处理和后处理具体包括什么?
前处理你是如何加速的?
YOLOv8的改进点有哪些?

Yolov8换成了目前主流的解耦头结构(Decoupled-Head),将分类和检测头分离,同时也从Anchor-Based换成了Anchor-Free。

Yolov8使用C2f模块代替C3模块。具体改进如下:
第一个卷积层的Kernel size从6×6改为3x3。
所有的C3模块改为C2f模块,如下图所示,多了更多的跳层连接和额外Split操作。
Block数由C3模块3-6-9-3改为C2f模块的3-6-6-3。

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

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

相关文章

STM32之串口字库更新

1.串口通讯介绍 串口通讯(Serial Communications)是一种通过串口进行数据传输的通讯方式,通过串行口每次传输一个字节的数据,按照约定的协议进行数据的传输和接收。串口通讯的原理是利用串行口的发送和接收线路,将需要…

【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用

【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用 目录 文章目录 【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用目录摘要研究背景问题与挑战如何解决创新点算法模型1. 知识总结模块(Knowledge Summarization Module&…

第三十一章 单页与多页应用程序概念

目录 一、概述 ​二、单页与多页对比 一、概述 单页面应用(SPA): 所有功能在一个HTML页面上实现,如网易云音乐。 https://music.163.com/ 多页应用:通过多个HTML页面组合实现整个应用网站的功能。 二、单页与多页对比 单页面应用的主要场景&#xff1…

开源 AI 智能名片 2 + 1 链动模式 S2B2C 商城小程序中积分使用价值的拓展策略

摘要:本文围绕开源 AI 智能名片 2 1 链动模式 S2B2C 商城小程序,深入探讨其积分使用价值的丰富策略。详细分析积分兑换礼品、会员升级、积分抵现等方式在该特定商城小程序环境下的应用特点、存在问题及对用户和商城的影响,旨在为商城的优化运…

C++ | Leetcode C++题解之第526题优美的排列

题目&#xff1a; 题解&#xff1a; class Solution { public:int countArrangement(int n) {vector<int> f(1 << n);f[0] 1;for (int mask 1; mask < (1 << n); mask) {int num __builtin_popcount(mask);for (int i 0; i < n; i) {if (mask &am…

【Linux 25】网络套接字 socket 概念

文章目录 &#x1f308; 一、IP 地址概念⭐ 1. IP 地址的作用⭐ 2. 源 IP 地址和目的 IP 地址 &#x1f308; 二、端口号概念⭐ 1. 源端口号和目的端口号⭐ 2. 端口号范围划分⭐ 3. 端口号 VS 进程 ID⭐ 4. 套接字 socket 的概念 &#x1f308; 三、传输层的典型代表协议⭐ 1. …

利用Docker Compose构建微服务架构

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 利用Docker Compose构建微服务架构 引言 Docker Compose 简介 安装 Docker Compose 创建项目结构 编写 Dockerfile 前端 Dockerf…

【Vue】一个案例带你学会组件通信!!!(1)(父传子props+子传父$emit)

嘿&#xff0c;开发者们&#x1f44b;&#xff01;欢迎来到今天的Vue.js组件通信大冒险。你是否曾在父子组件间的数据同步问题上感到头疼&#xff1f;&#x1f92f; 今天&#xff0c;我们将一起揭开Vue.js父子通信的神秘面纱&#xff0c;学习如何让数据在父子组件间流畅地“跳舞…

在VS中安装chatGPT

2、在VSCode中打开插件窗口 3、输入ChatGPT 4、这里有个ChatGPT中文版&#xff0c;就它了 5、安装 6、这时候侧边栏多了一个chatGPT分页图标&#xff0c;点击它 7、打个招呼 8、好像不行 9、看一下细节描述 10、根据要求按下按下快捷键 Ctrl Shift P 11、切换成国内模式 12、…

3. keil + vscode 进行stm32协同开发

1. 为什么使用vscode 主要还是界面友好&#xff0c;使用习惯问题&#xff0c;vscode 从前端&#xff0c;js, c/c, qt, 仓颉&#xff0c;rust都有很好插件的支持&#xff0c;并且有romote&#xff0c; wsl 等很多插件可以提高效率&#xff0c; 唯一的问题就是要使用插件进行环境…

PostgreSQL 学习笔记:PostgreSQL 主从复制

PostgreSQL 笔记&#xff1a;PostgreSQL 主从复制 博客地址&#xff1a;TMDOG 的博客 在现代应用程序中&#xff0c;数据库的高可用性和扩展性是至关重要的。PostgreSQL 提供了主从复制功能&#xff0c;可以在多个数据库实例之间复制数据&#xff0c;以实现冗余和负载均衡。本…

433、315通信、ev1527、2262编码

目录 ASK介绍EV1527编码芯片介绍模块介绍无线发射芯片无线接收芯片解码程序发射电路原理图 ASK介绍 ASK是幅移键控&#xff0c;通过调幅将数据发送出去&#xff0c;所以发送与接收都是多位二进制数。 ASK如何区分0和1&#xff1f; 0&#xff1a;发送 433.92Mhz 无线波形&…

Python 5个数据容器

列表&#xff08;list&#xff09; 特点&#xff1a;可以被修改 列表的定义 定义空列表&#xff1a; 变量名 [] 或 变量名 list() 定义变量&#xff1a; 变量名 [元素1&#xff0c;元素2&#xff0c;元素3&#xff0c;... ] 取出列表元素 列表名 [下标索引] 从前向…

复习数据库(约束)上篇

目录 约束的分类 分类 注意 主键约束 添加主键约束 1 建表时&#xff0c;添加 1.1创建表&#xff1a;定义列时指定 1.2 创建表&#xff1a;定义列之后独立指定主键&#xff1a; 2 建表后使用alter 关键字添加 删除约束 在主键添加自动增长属性 疑问 1 建表时添加 …

国内短剧源码短剧系统搭建小程序部署H5、APP打造短剧平台

​在当今的互联网时代&#xff0c;短剧作为一种新兴的娱乐形式&#xff0c;受到了越来越多用户的喜爱。为了提供更好的用户体验和满足用户需求&#xff0c;一个好的短剧系统需要具备多元化的功能和优质的界面设计。 本文将介绍国内短剧源码短剧系统搭建小程序部署H5、APP所需的…

Python(数据结构2)

常见数据结构 队列 队列(Queue)&#xff0c;它是一种运算受限的线性表,先进先出(FIFO First In First Out) Python标准库中的queue模块提供了多种队列实现&#xff0c;包括普通队列、双端队列、优先队列等。 1 普通队列 queue.Queue 是 Python 标准库 queue 模块中的一个类…

QT 机器视觉 (3. 虚拟相机SDK、测试工具)

本专栏从实际需求场景出发详细还原、分别介绍大型工业化场景、专业实验室场景、自动化生产线场景、各种视觉检测物体场景介绍本专栏应用场景 更适合涉及到视觉相关工作者、包括但不限于一线操作人员、现场实施人员、项目相关维护人员&#xff0c;希望了解2D、3D相机视觉相关操作…

QT打包Macosx应用发布App Store简易流程

1、QC里编译工程&#xff0c;生成Release版的的app文件&#xff1b; 2、运行macdeployqt把需要的文件打包进app文件中&#xff1b; % ~/Qt/5.15.0/clang_64/bin/macdeployqt {编译的app文件所在路径}/Release/xxxx.app 3、使用codesign对app进行签名&#xff0c;如果要发App…

Android平台RTSP转RTMP推送之采集麦克风音频转发

技术背景 RTSP转RTMP推送&#xff0c;好多开发者第一想到的是采用ffmpeg命令行的形式&#xff0c;如果对ffmpeg比较熟&#xff0c;而且产品不要额外的定制和更高阶的要求&#xff0c;未尝不可&#xff0c;如果对产品稳定性、时延、断网重连等有更高的技术诉求&#xff0c;比较…

网络:ARP的具体过程和ARP欺骗

个人主页 &#xff1a; 个人主页 个人专栏 &#xff1a; 《数据结构》 《C语言》《C》《Linux》《网络》 《redis学习笔记》 文章目录 前言ARP具体过程ARP欺骗原理总结 前言 本文仅作为ARP具体过程和ARP欺骗的知识总结 硬件类型 &#xff1a;指定发送和接受ARP包的硬件类型&am…