目標檢測中的注意力機制

weixin_34320159發表於2018-12-03

在計算機視覺中,使用特徵圖金子塔,融合上文特徵,增加深度,增加廣度使用複雜的特徵圖處理手段已經是常態,最近對注意力機制的使用也愈演愈烈。

結合最近的注意力機制學習:

  1. 空間位置軟注意力機制:使用sigmoid對map進行操作,之後再與原來的map進行元素相加,相乘,concat。
  2. 通道注意力機制:一般是參照SEnet,對通道進行加權操作。
  3. 結合位置空間和通道注意力機制:1和2並行,1和2序列,1和2同時應用。
  4. 與GAN結合的注意力機制。
  5. 與RNN結合的注意力機制。
  6. 各種手段的注意力機制:在領域, RPN分佈上進行注意力機制調節。

@2018年是注意力機制提到最多的一年,每篇論文都會提一下。

SENet

SENet 提出了通道間的注意力機制,通過兩個全連線層計算通道之間的重要程度。從而過濾掉不重要的通道值。

12486617-4e29db1d62116c9a.png

使用:

  1. global average pooling 。把二維特徵圖變成實數
  2. 使用兩個壓縮的全連線層進行通道權重的學習
  3. 使用門控sigmoid或者softmax
  4. 進行sclae,把每個權重加到特徵圖上

github

重要程式碼段:


    def Squeeze_excitation_layer(self, input_x, out_dim, ratio, layer_name):
        with tf.name_scope(layer_name) :
            squeeze = Global_Average_Pooling(input_x) 
            # 進行全域性池化

            excitation = Fully_connected(squeeze, units=out_dim / ratio, layer_name=layer_name+'_fully_connected1')
            # 學習通道權重
            excitation = Relu(excitation)
            excitation = Fully_connected(excitation, units=out_dim, layer_name=layer_name+'_fully_connected2')
            # 學習通道權重
            excitation = Sigmoid(excitation)
            # 閾值調節
            excitation = tf.reshape(excitation, [-1,1,1,out_dim])
           
            scale = input_x * excitation
            # 把權重賦給各個通道
            return scale

參考:
1 , 2 , 3 , 4, 5

相關文章