論文閱讀:Learning in the Frequency Domain

  • 2020 年 8 月 9 日
  • AI

最近真的有點懶 漫無目的在家待了半年多了 沒有開學導致寒假連着暑假 但任務還是一個連着一個 今天打算簡要記錄一下一篇來自CVPR2020 新的論文 看到蠻多博客講得挺詳細明了 故不採取以前詳細的敘述過程 只簡單記錄自己的理解(實則懶)

論文題目:《Learning in the Frequency Domain》
論文地址://arxiv.org/pdf/2002.12416.pdf
論文翻譯參考:
CVPR2020:Learning in the Frequency Domain(翻譯)(一)
CVPR2020:Learning in the Frequency Domain(翻譯)(二)
論文閱讀參考:
CVPR2020- 頻域學習一半的數據輸入,提升MASK RCNN | Learning in the Frequency Domain頻域深度學習 Learning in the Frequency Domain

Background

Existing neural networks mainly operate in the spatial domain with fixed input sizes.For practical applications, images are usually large and
have to be downsampled to the predetermined input size of neural networks. Even though the downsampling operations reduce computation and the required communication bandwidth, it removes both redundant and salient information obliviously, which results in accuracy degradation
現有的神經網絡主要在固定輸入尺寸的空間域內運行。在實際應用中,圖像通常很大,必須向下採樣到預定的神經網絡輸入大小。儘管下行採樣操作減少了計算量和所需的通信帶寬,但它同時在不影響冗餘和顯著信息的前提下消除了冗餘和顯著信息,從而導致精度下。
也就是說,在實際應用上會因為需要對圖像進行下採樣而導致部分信息消失,對實驗的精度產生了一定的影響。
本文所提出的方法正是圍繞着這個弊端出發的。

Work

Do?
a.We propose a method of learning in the frequency domain (using DCT coefficients as input), which requires little modification to the existing CNN models that take RGB input.
b.We show that learning in the frequency domain better preserves image information in the pre-processing stage than the conventional spatial downsampling approach
c.We analyze the spectral bias from the frequency perspective and show that the CNN models are more sensitive to low-frequency channels than high-frequencychannels, similar to the human visual system (HVS)
d.We propose a learning-based dynamic channel selection method to identify the trivial frequency components for static removal during inference
• 我們提出了一種頻域學習方法(使用DCT係數作為輸入),它對現有的CNN模型幾乎不需要修改(這些模型採用RGB輸入)
• 我們發現,在頻域學習比傳統的空間下採樣方法更好地保留了前處理階段的圖像信息。
• 我們從頻率的角度分析了頻譜偏差,發現CNN模型對低頻頻道比對高頻頻道更敏感,類似於人類視覺系統(HVS)。
• 我們提出了一種基於學習的動態信道選擇方法來識別瑣碎的頻率成分,以便在推理過程中進行靜態去除。

Model

先來看幾個問題 通過問題來講模型
1.為什麼需要頻域?和傳統的方法對比區別在哪裡?
先上圖

上圖展示了空間域與頻域輸入模型的不同:
1.上圖的第一行為傳統的方法,即在空間域進行
在傳統方法中,通常在CPU上對高分辨率RGB圖像進行預處理,然後將其傳輸到GPU / AI加速器以進行實時推斷。 由於RGB格式的未壓縮圖像通常較大,因此對CPU和GPU / AI加速器之間的通信帶寬的要求通常很高。為了降低計算成本和通信帶寬需求,將高分辨率RGB圖像下採樣為較小的圖像,這通常會導致信息丟失和推理精度降低。
2.上圖的第二行為本文提出的方法,即在頻域進行
在本文提出的方法中,高分辨率RGB圖像仍在CPU上進行預處理。 但是,它們首先轉換到YCbCr顏色空間,然後轉換為頻域。 這與JPEG等最廣泛使用的圖像壓縮標準相吻合。 同一頻率的所有分量都被分組到一個channel中。 這樣,生成了多個channel。 某些channel對推理準確性的影響大於其他channel。 因此,建議僅保留最重要的頻道並將其傳輸到GPU / AI加速器進行推理。
與傳統方法相比,論文所提出的方法需要更少的通信帶寬並同時獲得更高的精度。

2.頻域的預處理過程是怎麼樣的?
繼續先上圖:

從圖片可以看出,整個預處理的過程包括六部分:
1.spatial resize and crop:
圖像變換大小、裁剪和翻轉與RGB空間域輸入相同
2.DCT transform:
將輸入圖像由RGB空間變換到YCbCr空間,然後由DCT變換到頻域
3.DCT reshape:
將相同頻率的二維DCT係數分組到一個信道,形成三維DCT立方體
4.DCT channel select:
選取影響較大的頻率通道子集
5.DCT concatenate:
將YCbCr顏色空間中選取的頻率通道拼接在一起,形成一個張量
6.DCT normalize:
利用訓練數據集計算的均值和方差對每個頻率通道進行歸一化處理

3.如何將空間域模型轉換為頻域模型呢?
論文證明了頻域中的輸入特徵可以以最小的修改應用於空間域中開發的所有現有CNN模型。具體來說,只需要刪除輸入的CNN層並保留剩餘的殘差block。第一個殘差層用作輸入層,並且需要修改輸入通道的數量以適合DCT係數輸入的尺寸。 這樣,修改後的模型可以保持與原始模型相似的參數計數和計算複雜度。
如下圖所示,為了便於理解,我們以ResNet-50作為基礎的圖像分類舉例。ResNet-50通常接受的圖片輸入尺寸為224×224. 在經過一次convolutional layer (stride=2)和pooling之後,此時網絡的feature map的尺寸為56×56,和我們產生的頻率信號的feature map尺寸吻合。我們可以將192個56×56的頻域feature map全部或者部分直接接在ResNet-50的第一個Residue Block之前,從而達到不改變ResNet-50的結構而實現從頻域做機器識別的目的。
如果我們從192個feature map中選取的64個,則和一個標準的ResNet-50在這一層的feature map個數相同,則網絡結構和ResNet-50達到了完全一致,即移除了傳統ResNet-50中的三個輸入層(灰色虛線框),以接受56×56×64 DCT輸入。 channel數值為64,該值可以根據通道選擇而變化。

值得注意的是,由於我們做了8×8的DCT變換,我們實際輸入的圖片大小為448×448,是標準ResNet-50輸入(224×224)的兩倍。正因為我們提高了輸入圖片在空間域的分辨率,我們在後續的實驗中可以得到更好的識別精度。

4.基於學習的通道選擇
由於輸入特徵的不同channel處於不同的頻率,作者推測某些頻率channel對後續任務(例如圖像分類,對象檢測和實例分割)更有益,並且刪除瑣碎的頻率channel不會導致性能下降。 因此,作者提出了一種基於學習的通道選擇機制。 這一功能的模塊叫dynamic gate model,實際上就是SE-Net中提出的SE-Block,該模塊為每個channel分配一個二進制分數。 分數為零的輸入channel從網絡中分離出來。 因此,減小了輸入數據的大小,從而降低了域變換和通信帶寬需求的計算複雜度。

上圖展示了利用gate來選擇重要的feature map的方法。原始所有頻率分量組成的feature map的尺寸為WxHxC,其中C代表了feature map的個數,在實驗中使用的是C=192(即圖中的Tensor1). 每個feautre map通過average pooling將會生成一個1x1xC的特徵向量(Tensor 2),其中每個數值代表了對應feature map。
每一對數字表示這個對應的feature map是否重要,如果index為0的數字比index為1的數字更大,那麼這個feature map被認為不重要,整個feature map將會被忽略而不參與後續DNN的計算;反過來說,如果index為1的數字比index為0的數字更大,那麼這個feature map被認為重要,將會參與後續DNN的計算。這個操作等效於使用了一個開關(gate)來控制每一個頻率信息組成的feature map是否流通到後續的計算中
(補充:Tensor3->Tensor4,由11C->112C,其中2是門控關或者開的概率。Tensor4的192個通道中的每一個通道的兩個數字都被歸一化,作為採樣為0或1的概率,然後點乘以輸入頻率通道,得到圖4中的Tensor5)
由於頻率分量對應的開關被選為通過的數量決定了輸入DNN的數據帶寬,我們把選擇為通過的開關的比例作為loss function中的一項,另一項就是對應機器學習任務中原始的loss。通過最小化loss function來實現機器學習任務精度和輸入DNN數據帶寬的平衡。
X_i是CNN模型在頻域(C = 192)中的輸入channel。 令F表示每個頻率信道X_i的gate model,損失函數如下:

L_{Acc}是與準確性相關的損失。 λ是一個超參數,表示調節項的相對權重.

Experiments

1.

1.與高頻頻道(索引較大的框)相比,低頻頻道(索引較小的框)的選擇頻率更高。 這表明對於視覺推理任務而言,低頻通道通常比高頻通道更具信息性
2.與色度分量Cb和Cr中的頻道相比,模型更頻繁地選擇亮度分量Y中的頻道。 這表明亮度分量對於視覺推理任務更具參考價值
3.熱圖在分類和分割任務之間共享一個公共模式。 這表明上述兩個觀察結果並非特定於一項任務,很可能對更高層次的視覺任務具有普遍性
4.這些觀察結果暗示CNN模型可能確實表現出與人類視覺類似的特徵,並且針對人眼的圖像壓縮標準(例如JPEG)也可能適用於CNN模型。

使用ImageNet作為數據集,其中包括大約128萬張訓練圖像和5萬張測試圖像,總共1000個類別。我們使用了ResNet-50 和MobilenetV2 作為DNN的網絡結構

實例分割(instance segmentation)結合了物體檢測(object detection) 和語義分割(semanticsegmentation)的需求,它的任務是檢測出圖像中的每個物體對應的像素點,同時將每一個檢測出的物體分類。如下圖所示,實例分割任務需要檢測出物體(例如,人,足球)的boundingbox,還需要在這個bounding box中將屬於該物體的像素標註出來。

使用了COCO的數據集,其中包含了約10萬張訓練圖像和5千張測試圖像。我們使用了Mask RCNN 作為深度神經網絡結構。Mask RCNN首先會檢測出物體的bounding box,然後在bounding box內部的每個像素做二分,確定其是否屬於該物體。

結果表明,與傳統的空間降採樣方法相比,頻域學習方法在預處理階段能更好地保存圖像信息,從而提高了圖像的精度。而基於學習的動態信道選擇方法,也通過實驗證明了CNN模型對低頻信道比對高頻信道更敏感。


今日偷懶完成 八月快樂!