主頁 >  其他 > 計算機視覺中的注意力機制理解

計算機視覺中的注意力機制理解

2021-07-29 08:36:52 其他

目錄

  • 一、attention定義
  • 二、Deep learning于CV的考量
  • 三、注意力機制中的各種"域"
    • 1. “軟注意力”與“硬注意力”
    • 2. 空間域(Spatial Domain)
    • 3. 通道域(Channel Domain)
    • 4. 混合域
    • 5.時間域注意力
  • 四、參考文獻

一、attention定義

注意力機制的基本原理很簡單:它認為,網路中每層不同的(可以是不同通道,也可以是不同位置,都可以)特征的重要性不同,后面的層應該更注重其中重要的資訊,抑制不重要的資訊,

attention機制可以它認為是一種資源分配的機制,可以理解為對于原本平均分配的資源根據attention物件的重要程度重新分配資源,重要的單位就多分一點,不重要或者不好的單位就少分一點,在深度神經網路的結構設計中,attention所要分配的資源基本上就是權重了,

比如,性別分類中,應該更注意人的頭發長短、胸部隆起情況這些和性別關系大的特征的抽取和判斷,而不是去注意人體和性別關系不大的,像腰部粗細、身高頭部比例,這些特征,

視覺注意力分為幾種,核心思想是基于原有的資料找到其之間的關聯性,然后突出其某些重要特征,有通道注意力,像素注意力,多階注意力等,也有把NLP中的自注意力引入,

二、Deep learning于CV的考量

在工程師和研究者設計新的網路的時候,為了提升網路的容量和性能,通常會從三個方面著手:

  1. 增加網路深度:例如,從開始的LeNet-5,到VGG-16,到ResNet-101,等等,網路的設計越來越深,性能也越來越好,網路深了,簡單地講,下一層的輸出是上一層的線性組合加激活,可以復合出更多更靈活的特征(其實就是更復雜的復合函式);

  2. 增加網路寬度:這里的網路寬度即特征圖的通道數,這里的典型例子可以從LeNet-5,到VGG-16,Wider ResNet,增加網路寬度,特征圖通道數多起來了,更多的卷積核可以得到更多更豐富的特征,網路的表達能力自然就強

  3. 豐富網路感受野:這里可以參考Inception中的不同解析度的卷積核組成的小網路,還有FPN,SSD里面的各種變種,都有增加感受野的多樣性來提升性能的路子,感受野不同,對不同大小的目標的特征提取和表達能力就不同,一般是特征圖上感受野大的像素更能代表大的目標上面提取的資訊,感受野小的像素,只能看到大目標的一部分;反過來想,感受野大的像素,看到的視野太大,對于小目標就摻雜了太多的冗余資訊和噪音,所以,使用不同解析度的感受野,豐富網路的感受野來提升網路,讓大感受野處理大目標,小感受野處理小目標,各司其職,來提升網路性能也就成了很多網路設計的自然手段了,

三、注意力機制中的各種"域"

1. “軟注意力”與“硬注意力”

近幾年來,深度學習與視覺注意力機制結合的研究作業,大多數是集中于使用**掩碼(mask)**來形成注意力機制,掩碼的原理在于通過另一層新的權重,將圖片資料中關鍵的特征標識出來,通過學習訓練,讓深度神經網路學到每一張新圖片中需要關注的區域,也就形成了注意力,

這種思想,進而演化成兩種不同型別的注意力,一種是軟注意力(soft attention),另一種則是強注意力(hard attention)

軟注意力的關鍵點在于,這種注意力更關注區域或者通道,而且軟注意力是確定性的注意力,學習完成后直接可以通過網路生成,最關鍵的地方是軟注意力是可微的,這是一個非常重要的地方,可以微分的注意力就可以通過神經網路算出梯度并且前向傳播和后向反饋來學習得到注意力的權重

強注意力與軟注意力不同點在于,首先強注意力是更加關注點,也就是影像中的每個點都有可能延伸出注意力,同時強注意力是一個隨機的預測程序,更強調動態變化,當然,最關鍵是強注意力是一個不可微的注意力,訓練程序往往是通過增強學習(reinforcement learning)來完成的,

為了更清楚地介紹計算機視覺中的注意力機制,這篇文章將從注意力域(attention domain)的角度來分析幾種注意力的實作方法,其中主要是三種注意力域,空間域(spatial domain),通道域(channel domain),混合域(mixed domain),

還有另一種比較特殊的強注意力實作的注意力域,時間域(time domain),但是因為強注意力是使用reinforcement learning來實作的,訓練起來有所不同,所以之后再詳細分析,

2. 空間域(Spatial Domain)

設計思路:

Spatial Transformer Networks(STN)模型是15年NIPS上的文章,這篇文章通過注意力機制,將原始圖片中的空間資訊變換到另一個空間中并保留了關鍵資訊,

這篇文章的思想非常巧妙,因為卷積神經網路中的池化層(pooling layer)直接用一些max pooling 或者average pooling 的方法,將圖片資訊壓縮,減少運算量提升準確率,

但是這篇文章認為之前pooling的方法太過于暴力,直接將資訊合并會導致關鍵資訊無法識別出來,所以提出了一個叫空間轉換器(spatial transformer)的模塊,將圖片中的的空間域資訊做對應的空間變換,從而能將關鍵的資訊提取出來,

在這里插入圖片描述
比如這個直觀的實驗圖:

(a)列是原始的圖片資訊,其中第一個手寫數字7沒有做任何變換,第二個手寫數字5,做了一定的旋轉變化,而第三個手寫數字6,加上了一些噪聲信號;

(b)列中的彩色邊框是學習到的spatial transformer的框盒(bounding box),每一個框盒其實就是對應圖片學習出來的一個spatial transformer;

?列中是通過spatial transformer轉換之后的特征圖,可以看出7的關鍵區域被選擇出來,5被旋轉成為了正向的圖片,6的噪聲資訊沒有被識別進入,

最終可以通過這些轉換后的特征圖來預測出(d)列中手寫數字的數值,

spatial transformer其實就是注意力機制的實作,因為訓練出的spatial transformer能夠找出圖片資訊中需要被關注的區域,同時這個transformer又能夠具有旋轉、縮放變換的功能,這樣圖片區域的重要資訊能夠通過變換而被框盒提取出來,

3. 通道域(Channel Domain)

設計思路:

通道域注意力機制原理很簡單,我們可以從基本的信號變換的角度去理解,信號系統分析里面,任何一個信號其實都可以寫成正弦波的線性組合,經過時頻變換之后,時域上連續的正弦波信號就可以用一個頻率信號數值代替了,

在這里插入圖片描述

信號時頻分解圖

在卷積神經網路中,每一張圖片初始會由(R,G,B)三通道表示出來,之后經過不同的卷積核之后,每一個通道又會生成新的信號,比如圖片特征的每個通道使用64核卷積,就會產生64個新通道的矩陣(H,W,64),H,W分別表示圖片特征的高度和寬度,

每個通道的特征其實就表示該圖片在不同卷積核上的分量,類似于時頻變換,而這里面用卷積核的卷積類似于信號做了傅里葉變換,從而能夠將這個特征一個通道的資訊給分解成64個卷積核上的信號分量,

圖片
既然每個信號都可以被分解成核函式上的分量,產生的新的64個通道對于關鍵資訊的貢獻肯定有多有少,如果我們給每個通道上的信號都增加一個權重,來代表該通道與關鍵資訊的相關度的話,這個權重越大,則表示相關度越高,也就是我們越需要去注意的通道了,

4. 混合域

了解前兩種注意力域的設計思路后,簡單對比一下,首先,空間域的注意力是忽略了通道域中的資訊,將每個通道中的圖片特征同等處理,這種做法會將空間域變換方法局限在原始圖片特征提取階段,應用在神經網路層其他層的可解釋性不強,

而通道域的注意力是對一個通道內的資訊直接全域平均池化,而忽略每一個通道內的區域資訊,這種做法其實也是比較暴力的行為,所以結合兩種思路,就可以設計出混合域的注意力機制模型[8],

設計思路:

這篇文章中提出的注意力機制是與深度殘差網路(Deep Residual Network)相關的方法,基本思路是能夠將注意力機制應用到ResNet中,并且使網路能夠訓練的比較深,

文章中注意力的機制是軟注意力基本的加掩碼(mask)機制,但是不同的是,這種注意力機制的mask借鑒了殘差網路的想法,不只根據當前網路層的資訊加上mask,還把上一層的資訊傳遞下來,這樣就防止mask之后的資訊量過少引起的網路層數不能堆疊很深的問題,

正如之前說的,中提出的注意力mask,不僅僅只是對空間域或者通道域注意,這種mask可以看作是每一個特征元素(element)的權重,通過給每個特征元素都找到其對應的注意力權重,就可以同時形成了空間域和通道域的注意力機制,

很多人看到這里就會有疑問,這種做法應該是從空間域或者通道域非常自然的一個過渡,怎么做單一域注意力的人都沒有想到呢?原因有:

如果你給每一個特征元素都賦予一個mask權重的話,mask之后的資訊就會非常少,可能直接就破壞了網路深層的特征資訊;

另外,如果你可以加上注意力機制之后,殘差單元(Residual Unit)的恒等映射(identical mapping)特性會被破壞,從而很難訓練,

所以該文章的注意力機制的創新點在于提出了殘差注意力學習(residual attention learning),不僅只把mask之后的特征張量作為下一層的輸入,同時也將mask之前的特征張量作為下一層的輸入,這時候可以得到的特征更為豐富,從而能夠更好的注意關鍵特征,

5.時間域注意力

這個概念其實比較大,因為計算機視覺只是單一識別圖片的話,并沒有時間域這個概念,但是這篇文章中,提出了一種基于遞回神經網路(Recurrent Neural Network,RNN)的注意力機制識別模型,

RNN模型比較適合的場景是資料具有時序特征,比如使用RNN產生注意力機制做的比較好的是在自然語言處理的問題上,因為自然語言處理的是文本分析,而文本產生的背后其實是有一個時序上的關聯性,比如一個詞之后還會跟著另外一個詞,這就是一個時序上的依賴關聯性,

而圖片資料本身,并不具有天然的時序特征,一張圖片往往是一個時間點下的采樣,但是在視頻資料中,RNN就是一個比較好的資料模型,從而能夠使用RNN來產生識別注意力

特意將RNN的模型稱之為時間域的注意力,是因為這種模型在前面介紹的空間域,通道域,以及混合域之上,又新增加了一個時間的維度,這個維度的產生,其實是基于采樣點的時序特征

Recurrent Attention Model 中將注意力機制看成對一張圖片上的一個區域點的采樣,這個采樣點就是需要注意的點,而這個模型中的注意力因為不再是一個可以微分的注意力資訊,因此這也是一個強注意力(hard attention)模型,這個模型的訓練是需要使用增強學習(reinforcementlearning)來訓練的,訓練的時間更長,

這個模型更需要了解的并不是RNN注意力模型,因為這個模型其實在自然語言處理中介紹的更詳細,更需要了解的是這個模型的如何將圖片資訊轉換成時序上的采樣信號的:

這個是模型中的關鍵點,叫Glimpse Sensor,有大佬翻譯為掃視器,這個sensor的關鍵點在于先確定好圖片中需要關注的點(像素),這時候這個sensor開始采集三種資訊,資訊量是相同的,一個是非常細節(最內層框)的資訊,一個是中等的區域資訊,一個是粗略的略縮圖資訊,

這三個采樣的資訊是在 l t ? 1 l_{t-1} lt?1?位置中產生的圖片資訊,而下一個時刻,隨著t的增加,采樣的位置又開始變化,至于l隨著t該怎么變化,這就是需要使用增強學習來訓練的東西了,

有關RNN做attention的,還是應該去了解自然語言處理,如機器翻譯中的做法,這里就不再繼續深入介紹,想深入了解的,推薦閱讀Attention模型方法綜述,

四、參考文獻

CV中的注意力機制https://zhuanlan.zhihu.com/p/83221558
計算機視覺中的注意力機制(Visual Attention)https://mp.weixin.qq.com/s/KKlmYOduXWqR74W03Kl-9A

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/290762.html

標籤:其他

上一篇:OpenCV筆記整理【影像梯度之Sobel & Scharr & Laplacian】

下一篇:OpenCV-Python相機標定(待更新)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more