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.pswp.cn/news/40776.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40776.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40776.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

區塊鏈系統探索之路:私鑰的壓縮和WIF格式詳解

在前面章節中,我們詳細介紹了公鑰的壓縮,在比特幣網絡中,一個私鑰可以對應兩個地址,一個地址是由未壓縮公鑰所生成的地址,另一個就是由壓縮公鑰所創建的地址,從公鑰到區塊鏈地址的轉換算法,我們…

【設計模式——學習筆記】23種設計模式——解釋器模式Interpreter(原理講解+應用場景介紹+案例介紹+Java代碼實現)

案例引入 通過解釋器模式來實現四則運算,如計算ab-c的值,具體要求 先輸入表達式的形式,比如abc-de,要求表達式的字母不能重復在分別輸入a,b,c,d,e的值最后求出結果 傳統方案 編寫一個方法,接收表達式的形式&#xf…

基于Pan-Tompkins的實時QRS檢測算法:便攜式ANSI-C實現深入解析

引言 隨著醫學工程和移動設備技術的進步,實時QRS檢測算法在心電圖分析中變得越來越重要。其中,Pan-Tompkins算法由于其高效性和準確度,在許多應用中都受到廣泛認可。本文將深入探討此算法的ANSI-C實現,并提供詳細的代碼實例。 1…

【kubernetes】配置資源管理

目錄 Secret 創建 Secret 1、用kubectl create secret命令創建Secret 2、內容用 base64 編碼,創建Secret 使用方式 1、將 Secret 掛載到 Volume 中,以 Volume 的形式掛載到 Pod 的某個目錄下 2、將 Secret 導出到環境變量中 ConfigMap 創建 Co…

請解釋一下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…

[英語單詞] compat; compatibility;compact;entry_SYSENTER_compat

簡介 這個詞compat,馬上就會被簡寫形式所替代。所以一定不要和compact混淆。第一次看到還以為是個新詞來,后來發現是一個縮寫形式。就是兼容的意思,就如同兼容以往的就有事物。 syscall: 32bit: 兼容 entry_SYSENTER_compat 這個是32位程序…

MySQL存儲過程 、存儲函數、以及優缺點

存儲過程 VS 存儲函數(函數) | | 關鍵字 |調用語法 | 返回值 | 應用場景 | |-存儲過程-|-procedure-|-call 存儲過程()-|-理解為0個或多個-|-一般用于更新-| | 存儲函數 | function | select 函數() | 只能是一個 | 一般用于查詢結構為一個值并返回時| …

三、python Django ORM postgresql[數據定時備份、數據恢復]

一、數據定時備份 解釋:備份指定數據庫,能有效在發生錯誤時,預防錯誤,進行恢復 1.基本備份 #!/bin/bash sudo -u postgres pg_dump -U postgres -d dbname -Fc > /home/postgres/backup/backup.dump # sudo -u postgres&…

訊飛星火、文心一言和通義千問同時編“貪吃蛇”游戲,誰會勝出?

同時向訊飛星火、文心一言和通義千問三個國產AI模型提個相同的問題: “python 寫一個貪吃蛇的游戲代碼” 看哪一家AI寫的程序直接能用,誰就勝出! 訊飛星火 訊飛星火給出的代碼: import pygame import sys import random# 初…

Android 13 開啟關閉飛行模式

一.背景 由于客戶定制的Settings里面需要開啟和關閉飛行模式,所以需要實現此功能。 二.前提條件 首先應用肯定要是系統應用,并且導入framework.jar包,具體可以參考: Android 應用自動開啟輔助(無障礙)功能并使用輔助(無障礙)功能_android 自動開啟無障礙服務_龔禮鵬的博客…

步入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…

C#調用C++ DLL傳參byte[]數組字節值大于127時會變為0x3f的問題解決

最近做了一個網絡編程的DLL給C#調用,DLL中封裝了一個TCP Client的函數接口,如下所示 //C TCP報文發送接口 int TcpClient_send(unsigned char* buffSend, unsigned int nLen) {unsigned char buff[1024];int len StringToHex(buffSend, buff);int nRet…

stable diffusion安裝包和超火使用文檔,數字人制作網址

一:文生圖、圖生圖 1:stable diffusion:對喜歡二次元、美女小姐姐、大眼萌妹的人及其友好哈哈(o^^o) 1):秋葉大神安裝包和模型包: 鏈接:https://pan.baidu.com/s/11_kguofh76gwhTBPUipepw 提…

機器學習 | Python實現GBDT梯度提升樹模型設計

機器學習 | Python實現GBDT梯度提升樹模型設計 目錄 機器學習 | Python實現GBDT梯度提升樹模型設計基本介紹模型描述模型使用參考資料基本介紹 機器學習 | Python實現GBDT梯度提升樹模型設計。梯度提升樹(Grandient Boosting)是提升樹(Boosting Tree)的一種改進算法,GBDT也…

Java System.arraycopy() 對比 C++ memcpy()

System.arraycopy() java.lang.System類為標準輸入和輸出、加載文件和庫或訪問外部定義的屬性提供了有用的方法。 java.lang.System.arraycopy()方法將源數組從特定的起始位置復制到上述位置的目標數組。要復制的參數的數量由一個參數決定。 source_Pos…

前端文件下載通用方法

zip文件和xlsx文件 import axios from axios import { getToken } from /utils/authconst mimeMap {xlsx: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,zip: application/zip }const baseUrl process.env.VUE_APP_BASE_API // zip下載 export functi…

214、仿真-基于51單片機溫度甲醛一氧化碳(co)電機凈化報警Proteus仿真設計(程序+Proteus仿真+配套資料等)

畢設幫助、開題指導、技術解答(有償)見文未 目錄 一、硬件設計 二、設計功能 三、Proteus仿真圖 四、程序源碼 資料包括: 需要完整的資料可以點擊下面的名片加下我,找我要資源壓縮包的百度網盤下載地址及提取碼。 方案選擇 單片機的選擇 方案一&a…

It‘s likely that neither a Result Type nor a Result Map was specified.

問題: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were 原因: 由于傳遞參數給 mapper 映射文件,所以必須要指定參數數據格式 如…

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.總結 前言 …