<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一文看懂CV中的注意力機制

          共 5863字,需瀏覽 12分鐘

           ·

          2020-11-27 20:07

          ↑ 點擊藍字?關注極市平臺

          作者丨AdamLau@知乎
          來源丨h(huán)ttps://zhuanlan.zhihu.com/p/288758894
          編輯丨極市平臺

          極市導讀

          ?

          本文配合相關的論文,講述了多種CV注意力機制(Non-local Neural Networks、Squeeze-and-Excitation Networks、CBAM、DANet)的概念、特點以及相關實驗。>>加入極市CV技術交流群,走在計算機視覺的最前沿

          CV注意力機制

          Non-local ~ SE ~ CcNet ~ GC-Net ~ Gate ~ CBAM ~ Dual Attention ~ Spatial Attention ~ Channel Attention ~ ...

          【只要你能熟練的掌握加法、乘法、并行、串行四大法則,外加知道一點基本矩陣運算規(guī)則(如:HW * WH = HH)和sigmoid/softmax操作,那么你就能隨意的生成很多種注意力機制】

          • 空間注意力模塊?(look where)?對特征圖每個位置進行attention調(diào)整,(x,y)二維調(diào)整,使模型關注到值得更多關注的區(qū)域上。
          • 通道注意力模塊?(look what)?分配各個卷積通道上的資源,z軸的單維度調(diào)整。

          Non-local Neural Networks

          論文:https://arxiv.org/abs/1711.07971v1

          計算機視覺領域注意力機制的開篇之作。提出了non-local operations,使用自注意力機制建立遠程依賴。- local operations: 卷積(對局部領域)、recurrent(對當前/前一時刻)等操作。- non-local operations用于捕獲長距離依賴(long-range dependencies),即如何建立圖像上兩個有一定距離的像素之間的聯(lián)系,如何建立視頻里兩幀的聯(lián)系,如何建立一段話中不同詞的聯(lián)系等。Non-local operations 在計算某個位置的響應時,是考慮所有位置 features 的加權——所有位置可以是空間的,時間的,時空的。

          1. Non-local 定義

          其中x表示輸入信號(圖片,序列,視頻等,也可能是它們的features),y表示輸出信號,其size和x相同。f(xi,xj)用來計算i和所有可能關聯(lián)的位置j之間pairwise的關系,這個關系可以是比如i和j的位置距離越遠,f值越小,表示j位置對i影響越小。g(xj)用于計算輸入信號在j位置的特征值。C(x)是歸一化參數(shù)。理解:?i 代表的是當前位置的響應,j 代表全局響應,通過加權得到一個非局部的響應值。

          Non-Local的優(yōu)點是什么?

          • 提出的non-local operations通過計算任意兩個位置之間的交互直接捕捉遠程依賴,而不用局限于相鄰點,其相當于構造了一個和特征圖譜尺寸一樣大的卷積核, 從而可以維持更多信息。
          • non-local可以作為一個組件,和其它網(wǎng)絡結構結合,經(jīng)過作者實驗,證明了其可以應用于圖像分類、目標檢測、目標分割、姿態(tài)識別等視覺任務中,并且效果有不同程度的提升。
          • Non-local在視頻分類上效果很好,在視頻分類的任務中效果可觀。

          論文中給了通用公式,然后分別介紹f函數(shù)和g函數(shù)的實例化表示:

          • g函數(shù):可以看做一個線性轉化(Linear Embedding)公式如下:

          是需要學習的權重矩陣,可以通過空間上的1×1卷積實現(xiàn)(實現(xiàn)起來比較簡單)。

          • f函數(shù):這是一個用于計算i和j相似度的函數(shù),作者提出了四個具體的函數(shù)可以用作f函數(shù)。

          1.Gaussian function 2. Embedded Gaussian 3. Dot product 4. Concatenation

          2. Non-local block

          實際上是一個卷積操作,它的輸出channel數(shù)跟x一致。這樣以來,non-local操作就可以作為一個組件,組裝到任意卷積神經(jīng)網(wǎng)絡中。

          3. 實驗

          • 文中提出了四個計算相似度的模型,實驗對四個方法都進行了實驗,發(fā)現(xiàn)了這四個模型效果相差并不大,于是有一個結論:使用non-local對baseline結果是有提升的,但是不同相似度計算方法之間差距并不大,所以可以采用其中一個做實驗即可,文中用embedding gaussian作為默認的相似度計算方法。
          • 作者做了一系列消融實驗來證明non local NN的有效性:
          • 對比四個計算相似度模型,并無太大差異;
          • 以Resnet50為例:對比non-local模塊加在不同stage下的結果,在2,3,4stage處提高較大,可能由于第五層空間信息較少;
          • 對比加入non-local模塊數(shù)量的結果,越多性能越好,但速度越慢;作者認為這是因為更多的non-local block能夠捕獲長距離多次轉接的依賴。信息可以在時空域上距離較遠的位置上進行來回傳遞,這是通過local models無法實現(xiàn)的;
          • 時間、空間及時空域上做non-local,效果均有提升;
          • non-local VS 3D卷積,non-local更有效率,且性能更好;
          • non-local和3D conv是可以相互補充的;
          • 更長的輸入序列,所有模型在長序列上都表現(xiàn)得更好。

          Squeeze-and-Excitation Networks

          論文:https://arxiv.org/abs/1709.01507

          很多前面的工作都提出了以空間維度提升網(wǎng)絡的性能,比如inception結構獲取不同感受野信息、inside-outside結構更多考慮上下文信息、空間注意力機制等。是否有其他層面去提升性能??

          SENet是首個提出從channel-wise層面提出Squeeze-and-Excitation模塊的通道注意力機制,可以自適應調(diào)整各通道的特征響應值。

          網(wǎng)絡應用于分類,如何應用到分割上?

          1. SE模塊

          網(wǎng)絡結構如下所示:

          • Squeeze?使用全局平均池化(也可用其他方式)生成通道信息統(tǒng)計,實現(xiàn)通道描述;

          將全局空間信息壓縮為一個通道描述符;

          • Excitation?實現(xiàn)方式要靈活,且必須能學習一個非互斥的關系

          使用了sigmoid激活函數(shù)的門限機制來實現(xiàn),使權重在(0,1)上

          最后通過一個scale的操作將所求的權重乘上原來每個通道的二維特征上

          訓練全連接網(wǎng)絡學習到每個特征通道的權重,權重可以顯示地建模特征通道的相關性。

          2. 實驗

          SE模塊可以應用到inception、resblock等多種結構,非常靈活。

          消融實驗非常完備,實驗結果也是當時的STOA,奪得了ILSVRC2017的冠軍。(較為簡略,具體看論文)

          3. 結論

          SE模塊能夠動態(tài)自適應完成在通道維度上對原始特征進行重標定,首次關注了模型通道層面的依賴關系。另外,由SE塊產(chǎn)生的特征重要性值是否能用于網(wǎng)絡剪枝(模型壓縮)

          CBAM: Convolutional Block Attention Module

          論文:https://arxiv.org/pdf/1807.06521.pdf

          代碼:https://github.com/luuuyi/CBAM.PyTorch

          論文Introduction部分提出了影響卷積神經(jīng)網(wǎng)絡模型性能的三個因素:深度、寬度、基數(shù)。并且列舉了一些代表新的網(wǎng)絡結構,比如和深度相關的VGG和ResNet系列,和寬度相關的GoogLeNet和wide-ResNet系列,和基數(shù)相關的Xception和ResNeXt。

          除了這三個因素之外,還有一個模塊,也能影響網(wǎng)絡的性能,這就是attention——注意力機制。

          動機:所以文章提出了兩個注意力機制的模塊,分別是channel attention module和spatial attention module。通過級聯(lián)方式連接起來。模塊較為靈活,可以嵌入到ResBlock等。

          1. Channnel attetion module(通道注意力模塊)

          通道注意力模塊主要是探索不同通道之間的feature map的關系。每一個通道的feature map本身作為一個特征檢測出器(feature detetor),通過這個通道注意力模塊來告訴模型,我們更應該注意哪一部分特征。

          同時使用average-pooling和max-pooling聚合空間維度特征,產(chǎn)生兩個空間維度描述符。隨后經(jīng)MLP(fc+Relu+fc)+sigmoid層(和SE-Net相同,只是squeeze操作多了一步max pooling),為每個通道產(chǎn)生權重,最后將權重與原始未經(jīng)channel attention相乘。

          2. Spatial attention module(空間注意力模塊)

          利用空間注意力模塊來生成一個spatial attention map,用來利用不同特征圖之間的空間關系,以此來使模型注意特征圖的哪些特征空間位置。

          網(wǎng)絡應用于分類,如何應用到分割上?

          1. 這一次是在軸的方向上對不同特征圖上相同位置的像素值進行全局的MaxPooling和AvgPooling操作,分別得到兩個spatial attention map并將其concatenate,shape為[2, H, W]。
          2. 再利用一個7*7的卷積對這個feature map進行卷積。后接一個sigmoid函數(shù)。得到一個語言特征圖維數(shù)相同的加上空間注意力權重的空間矩陣。
          3. 最后把得到的空間注意力矩陣對應相乘的原特征圖上,得到的新的特征圖。

          3. 實驗

          • Comparison of different channel attention methods:

          用maxpooling與avgpooling一起比SENet(僅用avgpooling)效果更好。

          • Comparison of different spatial attention methods:

          使用7x7卷積核的原因是具有更大的感受野,還有個人認為小卷積核可能會造成一些特征圖的confusion。

          • Combining methods of channel and spatial attention:

          整體的消融實驗。

          Dual Attention Network for Scene Segmentation

          論文:https://arxiv.org/pdf/1809.02983.pdf

          雖然上下文融合有助于捕獲不同比例的對象,但卻無法利用全局視圖中對象之間的關系。容易忽略不顯眼的對象,或是沒有綜合考慮各個位置的聯(lián)系和相關性,致使分割的類內(nèi)不一致性,產(chǎn)生誤分割。對于語義分割,每個通道的map相當于是對每一類的響應,因此對于通道間的相關性也應著重考慮。

          為解決這一問題,提出了雙注意力網(wǎng)絡(DANet),基于自注意力機制來分別捕獲空間維度和通道維度中的特征依賴關系。具體而言,本文在dilated FCN上附加了2種注意力模塊,分別對空間維度和通道維度上的語義依賴關系進行建模。

          應用于分割的注意力網(wǎng)絡,空間注意力模塊與通道注意力模塊并聯(lián)連接,最終將兩個模塊的結果進行elementwise操作。在特征提取處,作者對ResNet做出以下改動,將最后的downsampling取消,采用空洞卷積來達到即擴大感受野又保持較高空間分辨率的目的,最終的特征圖擴大到了原圖的1/8。

          1. Position Attention Module(PAM)

          位置注意力模塊旨在利用任意兩點特征之間的關聯(lián),來相互增強各自特征的表達。

          2. Channel Attention Module(CAM)

          每個high level特征的通道圖都可以看作是一個特定于類的響應,通過挖掘通道圖之間的相互依賴關系,可以突出相互依賴的特征圖,提高特定語義的特征表示。

          為了進一步獲得全局依賴關系的特征,將兩個模塊的輸出結果進行相加融合,獲得最終的特征用于像素點的分類。

          3. 總結

          總的來說,DANet網(wǎng)絡主要思想是 CBAM 和 non-local 的融合變形。把deep feature map進行spatial-wise self-attention,同時也進行channel-wise self-attetnion,最后將兩個結果進行 element-wise sum 融合。

          在 CBAM 分別進行空間和通道 self-attention的思想上,直接使用了 non-local 的自相關矩陣 Matmul 的形式進行運算,避免了 CBAM 手工設計 pooling,多層感知器等復雜操作。

          參考:

          1. https://blog.csdn.net/elaine_bao/article/details/80821306
          2. https://zhuanlan.zhihu.com/p/102984842
          3. https://zhuanlan.zhihu.com/p/93228308
          4. https://zhuanlan.zhihu.com/p/106084464
          5. https://blog.csdn.net/wumenglu1018/article/details/95949039
          6. https://blog.csdn.net/xh_hit/article/details/88575853



          推薦閱讀




          添加極市小助手微信(ID : cvmart2),備注:姓名-學校/公司-研究方向-城市(如:小極-北大-目標檢測-深圳),即可申請加入極市目標檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學影像/3D/SLAM/自動駕駛/超分辨率/姿態(tài)估計/ReID/GAN/圖像增強/OCR/視頻理解等技術交流群:月大咖直播分享、真實項目需求對接、求職內(nèi)推、算法競賽、干貨資訊匯總、與?10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動交流~

          △長按添加極市小助手

          △長按關注極市平臺,獲取最新CV干貨

          覺得有用麻煩給個在看啦~??
          瀏覽 114
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  乱伦综合肉 | 91九九| 在线超碰91| 日韩一级片视频 | 欧美精品久久久久久久久 |