Transformer(二)(VIT,TNT)(基于视觉CV)

目录

1.视觉中的Attention

 2.VIT框架(图像分类,不需要decoder)

2.1整体框架

2.2.CNN和Transformer遇到的问题

2.3.1CNN

2.3.2Transformer

2.3.3二者对比

2.4.公式理解

3TNT

参考文献


1.视觉中的Attention

      对于人类而言看到一幅图可以立即区分背景和主体,我们希望计算机也可以清楚区分背景和主体,这样就可以专注在主体上提取特征。 

 2.VIT框架(图像分类,不需要decoder)

2.1整体框架

      如下图所示,transformer框架需要输入为序列形式,但图像是高维的,所以首先要对图像预处理,简单理解,假设下图是一个30*30*3的输入,将其分为9块,每块大小为10*10*3,再对其做一个卷积处理,变成300*1。 

      同样图像处理也要考虑到位置编码(Position Embedding),有两种方式,一种是直接再一维空间用1,2,3,4....,一种是在二维空间用(1,1),(1,2)...。一维,二维对结果影响不大(仅图像分类)。但编码方式,也是一个创新点。

      下图框架为分类任务,多加了一部分,简单理解,目的在于整合所有输入量,最后用其进行分类

       和文本处理,区别在于多了一个图像的数据处理,要将高维变成序列形式,

       最后说下下图右的框架,Norm是归一化处理,Multi-Head Attention是多头注意力机制,MLP是全连接层。

2.2.CNN和Transformer遇到的问题

2.3.1CNN

      以Resnet50为例,首先回忆一下感受野的概念,即当前层神经元(特征图)可以看到的原图的区域,我们假设conv1,conv6,conv11,conv16,此时我们想做一个分类任务,区分这个女生好不好看,对于conv1它的感受野为红色小框,显然特征过小,conv4为绿色小框,此时已经能看到眼睛,但还是不足以做出判断,conv11为黄色框,此时已经能看到较多的局部特征,但还不足以准确判断,最后来到conv16,此时足以看到整个脸,可以进行判别,但我们发现想要得到一个全局信息这个过程需要多层嵌套才能实现,比较麻烦。 

      对比一下,CNN通常第一层卷积用3*3的核也就是说只能看到原图3*3大小的区域,可能要最后一层才能看到全局,而transformer可以实现第一层就看到全局。

2.3.2Transformer

transformer对于CNN需要极大数据集才能得到好的结果。

2.3.3二者对比

2.4.公式理解

      E为全连接层,目的是对输入数据进行预处理,就是将高维图像变成序列形式,假设P*P=196,就是图像分割的块数,像上面将图分为9块的意思,C=256是每一块含有的向量,D=512,目的是将256映射成512,N=196是位置信息编码,+1是因为图像分类任务要多一个输入,LN是归一化处理,MSA是多头自注意力机制,MLP是全连接层。类似于残差链接 。可以对比流程图理解。

3TNT

假设VIT每一个patch是16*16.TNT希望这个patch更小。

     

      基于这个思想,TNT将数据预处理,分为外部和内部两块,外部和VIT一样,内部就是对外部的信息再次细分,比方说外部一个patch是16*16,内部就用4*4的块进行分割,下面超像素的概念就是不想按照1*1大小进行分割,多选择几个像素点分割。

      在实际应用中,如下图所示,将一个图分为4块(外部),VIT中是直接预处理后变成一个4维向量输入了,而在TNT中,假设第3块(外部),进行了一个内部分割,然后重构后也变成一个4维向量,将其加入外部的4维向量。同样内外部都做位置编码时效果最好。

      从可视化角度看,TNT在不同层下得到的结果更好,从T-SNE看,TNT更集中,效果更好。

参考文献

1.【VIT算法模型源码解读】1-项目配置说明1.mp4_哔哩哔哩_bilibili

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

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

相关文章

【设计模式——学习笔记】23种设计模式——解释器模式Interpreter(原理讲解+应用场景介绍+案例介绍+Java代码实现)

案例引入 通过解释器模式来实现四则运算,如计算ab-c的值,具体要求 先输入表达式的形式,比如abc-de,要求表达式的字母不能重复在分别输入a,b,c,d,e的值最后求出结果 传统方案 编写一个方法,接收表达式的形式&#xf…

请解释一下CSS中的rem和em单位有什么不同,分别如何使用?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ CSS中的rem和em单位的区别和使用⭐ em单位使用示例: ⭐ rem 单位使用示例: ⭐ 区别和适用场景⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何…

Nginx常见的三个漏洞

目录 $uri导致的CRLF注入漏洞 两种常见场景 表示uri的三个变量 案例 目录穿越漏洞 案例 Http Header被覆盖的问题 案例 $uri导致的CRLF注入漏洞 两种常见场景 用户访问http://example.com/aabbcc,自动跳转到https://example.com/aabbcc 用户访问http://exa…

MySQL存储过程 、存储函数、以及优缺点

存储过程 VS 存储函数(函数) | | 关键字 |调用语法 | 返回值 | 应用场景 | |-存储过程-|-procedure-|-call 存储过程()-|-理解为0个或多个-|-一般用于更新-| | 存储函数 | function | select 函数() | 只能是一个 | 一般用于查询结构为一个值并返回时| …

讯飞星火、文心一言和通义千问同时编“贪吃蛇”游戏,谁会胜出?

同时向讯飞星火、文心一言和通义千问三个国产AI模型提个相同的问题: “python 写一个贪吃蛇的游戏代码” 看哪一家AI写的程序直接能用,谁就胜出! 讯飞星火 讯飞星火给出的代码: import pygame import sys import random# 初…

步入React正殿 - React组件设计模式

目录 扩展学习资料 高阶组件 /src/components/hoc/withTooltip.js /src/components/hoc/itemA.jsx /src/components/hoc/itemB.jsx /src/App.js 函数作为子组件【Render pprops】 函数作为子组件 /src/components/rp/itemC.jsx【父组件】 /src/components/rp/withToo…

214、仿真-基于51单片机温度甲醛一氧化碳(co)电机净化报警Proteus仿真设计(程序+Proteus仿真+配套资料等)

毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、程序源码 资料包括: 需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选择 方案一&a…

Qt+Pyhton实现麒麟V10系统下word文档读写功能

目录 前言1.C调用python1.1 安装Python开发环境1.2 修改Qt工程配置1.3 初始化Python环境1.4 C 调用Python 函数1.5 常用的Python接口 2.python虚拟环境2.1Python虚拟环境简介2.2 virtualenv 安装及使用2.3 在C程序中配置virtualenv 虚拟环境 3.python-docx库的应用4.总结 前言 …

网络安全 Day29-运维安全项目-iptables防火墙

iptables防火墙 1. 防火墙概述2. 防火墙2.1 防火墙种类及使用说明2.2 必须熟悉的名词2.3 iptables 执行过程※※※※※2.4 表与链※※※※※2.4.1 简介2.4.2 每个表说明2.4.2.1 filter表 :star::star::star::star::star:2.4.2.2 nat表 2.5 环境准备及命令2.6 案例01&#xff1a…

ChatGLM2-6B安装部署(详尽版)

1、环境部署 安装Anaconda3 安装GIT 安装GUDA 11.8 安装NVIDIA 图形化驱动 522.25版本,如果电脑本身是更高版本则不用更新 1.1、检查CUDA 运行cmd或者Anaconda,运行以下命令 nvidia-smi CUDA Version是版本信息,Dricer Version是图形化…

LeetCode 160.相交链表

文章目录 💡题目分析💡解题思路🚩步骤一:找尾节点🚩步骤二:判断尾节点是否相等🚩步骤三:找交点🍄思路1🍄思路2 🔔接口源码 题目链接👉…

C++之map的emplace与pair插入键值对用例(一百七十四)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

213、仿真-基于51单片机智能电表电能表用电量电费报警Proteus仿真设计(程序+Proteus仿真+原理图+配套资料等)

毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、原理图 五、程序源码 资料包括: 需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选…

java-JVM内存区域JVM运行时内存

一. JVM 内存区域 JVM 内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【JAVA 堆、方法区】、直接内存。线程私有数据区域生命周期与线程相同, 依赖用户线程的启动/结束 而 创建/销毁(在 HotspotVM 内, 每个线程都与操作系统的本地线程直接映…

SwiftUI 动画进阶:实现行星绕圆周轨道运动

0. 概览 SwiftUI 动画对于优秀 App 可以说是布帛菽粟。利用美妙的动画我们不仅可以活跃界面元素,更可以单独打造出一整套生动有机的世界,激活无限可能。 如上图所示,我们用动画粗略实现了一个小太阳系:8大行星围绕太阳旋转,而卫星们围绕各个行星旋转。 在本篇博文中,您将…

【第二讲---初识SLAM】

SLAM简介 视觉SLAM,主要指的是利用相机完成建图和定位问题。如果传感器是激光,那么就称为激光SLAM。 定位(明白自身状态(即位置))建图(了解外在环境)。 视觉SLAM中使用的相机与常见…

Flink之Task解析

Flink之Task解析 对Flink的Task进行解析前,我们首先要清楚几个角色TaskManager、Slot、Task、Subtask、TaskChain分别是什么 角色注释TaskManager在Flink中TaskManager就是一个管理task的进程,每个节点只有一个TaskManagerSlotSlot就是TaskManager中的槽位,一个TaskManager中可…

数据结构单链表

单链表 1 链表的概念及结构 概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链 接次序实现的 。 在我们开始讲链表之前,我们是写了顺序表,顺序表就是类似一个数组的东西&#xff0…

上海虚拟展厅制作平台怎么选,蛙色3DVR 助力行业发展

引言: 在数字化时代,虚拟展厅成为了企业宣传的重要手段。而作为一家位于上海的实力平台,上海蛙色3DVR凭借其卓越的功能和创新的技术,成为了企业展示和宣传的首选。 一、虚拟展厅的优势 虚拟展厅的崛起是指随着科技的进步&#x…

手机商城网站的分析与设计(论文+源码)_kaic

目录 摘 要 1 1 绪论 2 1.1选题背景意义 2 1.2国内外研究现状 2 1.2.1国内研究现状 2 1.2.2国外研究现状 3 1.3研究内容 3 2 网上手机商城网站相关技术 4 2.1.NET框架 4 2.2Access数据库 4 2.3 JavaScript技术 4 3网上手机商城网站分析与设…