天天看點

計算機如何“看懂”圖檔?達摩院提出新的研究方法

近年來,基于深度神經網絡的機器學習方法在計算機視覺上獲得的巨大的成功。我們現在應用的主流的深度神經網絡都基于對空間域信号的處理和分析,即圖像或視訊的RGB信号。我們知道,現有的圖像視訊分析系統由多個子產品組成。例如,實時圖像分析系統由圖像擷取(capture),圖像壓縮(compression),圖像傳輸(transmission),圖像解壓縮(decompression),圖像推理(inference)組成。而對于非實時的圖像分析系統,這些儲存在存儲中的圖像已經經過壓縮,是以需要經過解壓縮和圖像推理的子產品。以實時圖像分析系統為例,這個系統整體的性能(包括延時,功耗,精度等)取決于其中每一個子產品的性能。以往的瓶頸來自于圖像推理引擎,因為其中包含了非常大規模的計算量。由于這些計算具有結構性和并行度的特征,近年來在GPU和人工智能專用晶片的幫助下,圖像推理引擎的性能得到了極大的提升。

是以,圖像壓縮/解壓縮在整個系統中的占比會越來越大。例如在Figure 1中,我們看到在一個GPU的系統中圖像處理的時間占比已經大約為圖像推理(inference)的兩倍之多[1]。這篇文章介紹圖像分析系統的基本組成,以及我們如何利用頻域特征來進行圖像推理,進而省略頻域到空間域的轉換,因為這個轉換是圖像壓縮/解壓縮中計算量最大的步驟。同時我們可以在頻域選擇重要的資訊,進一步減少系統中子產品之間的資料傳輸量。因為子產品之間的資料帶寬往往遠小于子產品内部的資料帶寬,減小子產品間的資料傳輸量便可以提升整個系統的性能。

計算機如何“看懂”圖檔?達摩院提出新的研究方法

Figure 1. Latency breakdown in a single inference

本文的主要貢獻如下:

第一,我們提出了一種系統方法可以在基本不改變現有的卷積神經網絡(如ResNet,MobileNet等)的前提下做基于頻域的機器識别。

第二,由于基于頻域的機器識别可以在不增加計算量的前提下,接受空間域尺寸更大的圖檔,是以提高了圖像識别的精度。

第三,我們提出了一種系統方法來區分每個頻域分量對于機器學習的重要性,并且發現僅有很少部分的頻域分量實際上對機器學習有貢獻。

第四,之前基于頻域的機器學習隻完成了單一物體的圖像分類 (single object recognition),我們首次将基于頻域的機器學習擴充到了圖像的物體檢測(object detection)和語義/執行個體分割(instance segmentation)任務中,通常物體檢測和語義/執行個體分割被定義為進階視覺(High level vision) 任務。

本文的概要如下:

第一部分我們介紹了一個傳統圖像分析系統的基本架構,并分析的這個系統中計算量的瓶頸位置。

第二部分我們介紹了在頻域實作機器學習的系統方法,以及我們提出了一種基于Gumbel softmax開關的選擇頻率資訊重要性的方法。

第三部分我們介紹了利用我們提出的方法在頻率域做圖像分類(image classification)和執行個體分割(instancesegmentation)的結果。

1. 圖像傳輸/存儲/分析系統的基本架構

計算機如何“看懂”圖檔?達摩院提出新的研究方法

Figure 2. A framework for image transmission and analysis

Figure 2描述了一個實時圖像分析系統的架構。圖像輸入(In)通常是RGB的空間域信号,在編碼端經過RGB-to-YCbCr的轉化,離散餘弦變換(DCT),量化(Quantization), 以及熵編碼(Entropy coding),得到壓縮後用來傳輸的信号。這個信号傳輸到解碼端,經過對應的熵解碼(Entropy decoding),反量化(dequantization),逆離散餘弦變換(IDCT),YCbCr-to-RGB轉化得到原圖像的重建圖像。這個基于RGB空間域的重建圖像作為深度神經網絡的輸入,經過分析可以得到所需要的結果。以下我們簡要介紹以上這些操作,并分析它們的計算複雜度。

1.1 YCbCr-RGB conversion

YCbCr(有時也稱YUV)是一系清單示圖像/視訊的色彩空間(color space)。通常RGB color space中三個通道的信号強相關,同時很難說明其中哪一個通道的信号更重要。YCbCr信号是RGB信号的一個點對點的可逆線性變換,其中Y信号表示的是亮度(luma)資訊,而Cb和Cr表示的是色彩(chroma)資訊(seeFigure 3)。對于人類的視覺系統,亮度資訊比色彩資訊更重要,是以我們可以通過不同的壓縮方法來達到最佳的壓縮性能。例如對Cb和Cr通道進行降采樣。由于YCbCr和RGB信号的轉換是point-wise linear,是以所需的計算量相對較小。

計算機如何“看懂”圖檔?達摩院提出新的研究方法

Figure 3. Conversion from RGB to YCbCr

1.2 Discrete cosine transform(DCT) and inverse discrete cosine transform (IDCT)

離散餘弦變換是一種二維的可逆線性變換,它将呈現出圖像不同的頻率資訊。以一個8x8的圖像為例,它的二維DCT信号矩陣包含了直流分量(通常是(0,0)号元素), 低頻信号分量,以及高頻信号分量。從Figure 4中可以看到,直流分量衡量了這個信号整體的幅度,而兩個方向上不同的分量分别衡量了這個二維信号在x方向和y方向上不同的震蕩頻率。由于DCT(以及IDCT)是矩陣變換,而通常的圖像壓縮标準使用的是8x8的DCT變換,所需的計算量占據的整個壓縮系統中的大部分。

計算機如何“看懂”圖檔?達摩院提出新的研究方法

Figure 4. Coefficients in a discrete cosine transform

1.3 Quantization

量化子產品将信号由浮點數floating-point轉換為整型表示。它對DCT變換後的對應位置的信号進行point-wise的量化。量化子產品所需的計算量是以也相對較小,和矩陣的尺寸成正比。由于人類視覺系統對低頻信号比較敏感,是以量化矩陣的左上角數字相對比較小。Figure 5展示了一個量化矩陣的例子。由于量化的操作是不可逆的操作,是以量化子產品是圖像壓縮傳輸系統中有損的操作。

計算機如何“看懂”圖檔?達摩院提出新的研究方法

Figure 5. A quantization table for JPEG

1.4 Entropy coding

傳輸所需的信号是一維信号,而我們經過量化的信号是二維信号,是以我們首先通過Zig-zag的方式将二維信号轉換為一位信号(see Figure 6)。由于量化矩陣中高頻信号的量化間隔較大,是以許多信号矩陣中對應高頻,也就是對應一維信号中靠後位置的信号将被量化為0. 這個一維信号經過Run length coding [2](see Figure 7)和Huffman coding [3](在視訊壓縮中會有更複雜的Arithmetic coding [4] 以及Context-adaptive binaryarithmetic coding [5])被壓縮成為用來傳輸/存儲的信号. Entropy coding基于很成熟的算法和加速結構,所需的計算量也較小,和圖像矩陣的尺寸稱正比。由于Zig-zag轉換和Entropy coding都是可逆的,是以這個子產品也是無損的。

計算機如何“看懂”圖檔?達摩院提出新的研究方法

Figure 6. A zig-zag serialization from 2D to 1D

計算機如何“看懂”圖檔?達摩院提出新的研究方法

Figure 7. An example of run-length coding

以上各個子產品在解碼端都可以用對應的逆子產品(inverse module)來實作,同時這些逆子產品的計算複雜度和編碼端對應的子產品基本一緻。

通過以上的介紹我們可以看出,在整個圖像分析系統中,除去最後的圖像推理(inference)引擎,前期的壓縮,傳輸,解壓縮的瓶頸在于其中的DCT和IDCT子產品,因為這兩個變換是矩陣變換,而其他的操作基本都是point-wise的操作。我們知道矩陣變換的計算複雜度遠大于點變換的計算複雜度,是以如果我們能夠減少,甚至省略這兩個子產品,将會對圖像分析系統的前半部分帶來極大的性能提升。

2. 基于頻域資訊的機器學習

在解碼端,傳統的圖像傳輸系統使用IDCT将頻域信号轉換為空間域信号的目的是為了讓人類視覺系統服務的。然而,在機器學習任務中,我們可以思考是否需要做IDCT這個對計算量需求較大的操作。如果我們可以省略IDCT的子產品,我們就可以減少解碼端的延時和功耗(see Figure 8)。

計算機如何“看懂”圖檔?達摩院提出新的研究方法

Figure 8. A framework of image transmission and analysis directly from the frequency domain.

我們面臨兩個問題,第一,我們如何利用頻域的資訊來進行機器學習,即如何将重建出的DCT的信号接入合适的深度神經網絡。第二,我們如何利用不同頻域信号的重要性來節省從解碼端到圖像推理引擎所需的帶寬(see Figure 9)

計算機如何“看懂”圖檔?達摩院提出新的研究方法

Figure 9. A framework of image transmission and analysis from selected frequency component to reduce memory bandwidth between decoder and AI engine.

2.1 如何利用頻域的資訊來進行機器學習

首先考慮亮度通道(Y channel)。假設我們使用圖像壓縮标準中預設的8x8作為塊的尺寸(blocksize)。對于每一個塊(block),我們會得到64個DCT的信号,對應了64個不同的頻率分量。如果我們原始的圖像的尺寸是W x H, 那麼我們将會有W/8 x H/8 個DCT信号組成的塊。每個塊中相同位置的頻率分量可以組成一個尺寸為W/8 x H/8的特征圖檔(feature map),這樣我們會産生8x8=64個feature map。同樣的對于Cb和Cr通道,我們也可以各自産生64個feature map。總共産生了64x3=192個feature map,這個過程如Figure 10(a)所示。假設W=H=448, 那麼現有的基于頻域的feature map的尺寸為56x56x192。現在的問題是如何将這些feature map合理的輸入到一個已有的DNN網絡結構中,使得feature map的尺寸和已有DNN網絡的尺寸吻合。

計算機如何“看懂”圖檔?達摩院提出新的研究方法

Figure 10 (a). The data pre-processing pipeline for learning in the frequency domain

為了便于了解,我們以ResNet-50作為基礎的圖像分類舉例。ResNet-50通常接受的圖檔輸入尺寸為224x224. 在經過一次convolutional layer (stride=2)和pooling之後,此時網絡的feature map的尺寸為56x56,和我們産生的頻率信号的feature map尺寸吻合。我們可以将192個56x56的頻域feature map全部或者部分直接接在ResNet-50的第一個Residue Block之前,進而達到不改變ResNet-50的結構而實作從頻域做機器識别的目的。如果我們從192個feature map中選取的64個,則和一個标準的ResNet-50在這一層的feature map個數相同,則網絡結構和ResNet-50達到了完全一緻。這個過程如Figure10(b)所示。值得注意的是,由于我們做了8x8的DCT變換,我們實際輸入的圖檔大小為448x448,是标準ResNet-50輸入(224x224)的兩倍。正因為我們提高了輸入圖檔在空間域的分辨率,我們在後續的實驗中可以得到更好的識别精度。

計算機如何“看懂”圖檔?達摩院提出新的研究方法

Figure 10 (b). Connecting the pre-processed input features in the frequency domain to ResNet-50. The three input layers (the dashed gray blocks) in a vanilla ResNet-50 are removed to admit the 56×56×64 DCT inputs.

2.2. 頻域資訊重要性提取

圖像壓縮理論的基礎是人眼對于不同色彩空間和頻率分量有不同的敏感度,是以我們可以對Cb,Cr通道降采樣,也可以對每個DCT信号中高頻分量設定更大的量化區間。然而,我們對于這些頻率分量對于機器學習的重要性并不了解。如果我們可以忽略掉其中不重要的feature map,就可以不用将這部分資料從圖像解碼子產品傳輸到圖像推理引擎中,進而節省這部分可能成為瓶頸的帶寬。

我們現在面臨的問題是如何在這192個feature map中做出選擇。類比人類視覺系統,在這192個feature map中,我們能否猜想Y通道和低頻分量對應的feature map似乎更重要?如果是這樣的話,我們如何确定Y通道中應該選擇多少個feature map,而CbCr通道有應當選擇多少個feature map?在這一部分,我們提出了利用機器學習中添加gate的方法來學習每一個feature map的重要性。在訓練中,不僅圖像推理的DNN中的weights被訓練出來,同時每一個feature map的重要性也被确定。

計算機如何“看懂”圖檔?達摩院提出新的研究方法

FIgure 11. A gating method to select important frequency components

Figure 11展示了利用gate來選擇重要的feature map的方法。原始所有頻率分量組成的feature map的尺寸為WxHxC,其中C代表了feature map的個數,正如我們前面介紹的那樣,在實驗中使用的是C=192. 每個feautre map通過average pooling将會生成一個1x1xC的特征向量,其中每個數值代表了對應feature map。這個特征向量通過一個fully connected layer生成一個1x1xCx2的特征向量對。每一對數字表示這個對應的feature map是否重要,如果index為0的數字比index為1的數字更大,那麼這個feature map被認為不重要,整個feature map将會被忽略而不參與後續DNN的計算;反過來說,如果index為1的數字比index為0的數字更大,那麼這個feature map被認為重要,将會參與後續DNN的計算。這個操作等效于使用了一個開關(gate)來控制每一個頻率資訊組成的feature map是否流通到後續的計算中。

具體而言,由于我們使用了argmax函數來選擇更大的index進而表示feature map是否被選擇參與計算,我們需要一種特殊的方法在訓練中将gradient傳播到這C個開關的控制網絡中。這種方法名為Gumbel-softmax [7]。

由于頻率分量對應的開關被選為通過的數量決定了輸入DNN的資料帶寬,我們把選擇為通過的開關的比例作為loss function中的一項,另一項就是對應機器學習任務中原始的loss。通過最小化loss function來實作機器學習任務精度和輸入DNN資料帶寬的平衡。

現在我們擁有了選擇重要的feature map的方式,我們有兩種方案來減少從圖像解碼子產品到圖像推理引擎的資料帶寬,這兩種方式我們稱之為動态(Dynamic)方式和靜态(Static)方式。

所謂動态方式,就是每一個頻率分量的選擇開關由目前輸入的圖像決定,這種方法可以自适應每一次圖像推理(inference)的不同輸入。由于選擇開關的網絡十分簡單,我們可以将其放在圖像解碼子產品中。這樣從圖像解碼子產品到圖像推理引擎之間隻需要對被選擇的頻率分量對應的feature map進行資料傳輸,可以極大的減少這兩個子產品之間的帶寬需求(see 3rdrow in Figure 12)。

所謂靜态方式,就是我們通過訓練(training)得到最重要的一些頻率分量。在做圖像推理(inference)的時候,我們事先就确定隻用這些事先确定好的頻率分量對應的featuremap,而不會根據不同的圖像進行自适應選擇。這種靜态方式在inference的時候無需選擇開關的網絡。這種方式不僅可以節省圖像解碼子產品到圖像推理引擎的帶寬,還可以在編碼子產品中忽略不重要的頻率分量,進而減少圖像編碼的計算量,延時,以及網絡傳輸的帶寬(see 4th row in Figure 12)。值得一提的是,通常網絡傳輸的帶寬遠小于機器内部元件之間的帶寬。

計算機如何“看懂”圖檔?達摩院提出新的研究方法

Figure 12. Comparisons of image transmission and analysis system

3. 結果展示

為了示範基于頻率分量的機器學習系統和方法,我們選取了兩個有代表性的機器學習任務,即圖像分類(image classification)和執行個體分割(instancesegmentation)。

3.1 Image Classification

圖像分類的任務是對給定的圖像進行類别的區分。我們使用ImageNet作為資料集,其中包括大約128萬張訓練圖像和5萬張測試圖像,總共1000個類别。我們使用了ResNet-50 [8] 和MobilenetV2 [9]作為DNN的網絡結構。MobilenetV2使用了depth-wise convolution的方式,極大的減少了深度神經網絡的計算量和網絡的參數量。是以MobilenetV2有很大的潛力作為移動端圖像推理引擎。

經過我們的訓練,我們得到了一張不同頻率分量重要性的Heat map。Figure 13描述了對應192個頻率分量的重要性程度。我們可以看出,和我們直覺一緻的是,Y通道的重要性高于Cb和Cr通道,同時低頻分量的重要性高于高頻分量。利用我們提出的gated方法,我們可以通過一次訓練就了解該如何配置設定帶寬資源。以Figure 13為例,我們可以使用14個Y通道,5個Cb通道5個Cr通道,共計24個feature map來做圖像分類的任務,而不用将最初的192個feature map的資料都從圖像解碼子產品傳輸到圖像推理引擎中。這樣我們的傳輸帶寬需求降低為原來的八分之一,而推理的精度(accuracy)反而從标準ResNet-50的75.78%提升至77.196% (see DCT-24 in Table 14 (a))。同樣的,在MobileNetV2的實驗中,我們通過選取最重要的24個頻率分量,得到的識别精度從标準MobileNetV2的71.702%提升至72.364% (see DCT-24 in Table 14(b) ). 其它的結果,例如選取64,48,12,6個頻率分量的精度也展現在Table14中。值得一提的是,根據Figure 13的展示,我們發現低頻分量在識别中相對重要,是以我們也嘗試了使用heuristic的方式,選取了一個上三角的區域。例如對于DCT-24,我們直覺選取的是Y channel的[0-13],Cb和Cr channel的[0-4]編号的頻率分量。這些頻率分量和Figure 13中的heatmap略有不同,但是識别的精度幾乎沒有差別 (See DCT-64T, DCT-48T, and DCT-24T in Table 14(a) )。這說明我們并不需要對于每個不同的任務都嘗試首先獲得heatmap,然後嚴格的按照heatmap來選取頻率分量。我們直覺上可以選擇低頻分量(例如這些上三角得到區域),達到和嚴格按照heatmap選擇相同的精度。

計算機如何“看懂”圖檔?達摩院提出新的研究方法

Figure 13. A heat map of different frequency components being used in image classification tasks (a) and instance segmentation tasks (b)

(a)

計算機如何“看懂”圖檔?達摩院提出新的研究方法

(b)

計算機如何“看懂”圖檔?達摩院提出新的研究方法

Table 14. Accuracy comparison for image classification from RGB and DCT domain using ResNet-50 (a) and MobileNetV2 (b)

3.2 Instance segmentation

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

計算機如何“看懂”圖檔?達摩院提出新的研究方法

Figure 15. An example of instance segmentation (from selected frequency domain)

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

Table 16展示了我們在DCT頻域做物體識别和執行個體分割的精度對比。可以看到,從頻域做這兩個任務,我們可以提升大約0.8%的精度(37.3%到38.1% 以及 34.2%到35.0%)。

計算機如何“看懂”圖檔?達摩院提出新的研究方法
計算機如何“看懂”圖檔?達摩院提出新的研究方法

Table 16. Accuracy comparison from RGB and DCT domain on object detection (a) and instance segmentation (b)

以下是另外幾個利用在頻域選擇重要的feature map做執行個體分割的visual demo。

計算機如何“看懂”圖檔?達摩院提出新的研究方法
計算機如何“看懂”圖檔?達摩院提出新的研究方法
計算機如何“看懂”圖檔?達摩院提出新的研究方法
計算機如何“看懂”圖檔?達摩院提出新的研究方法

4. 未完成的工作以及思考

4.1 Figure 12展示了Dynamic和Static兩種選取頻率分量feature map的方式,現階段我們使用的是dynamic的方式,主要考慮的因素是static的方式需要對壓縮編碼端進行修改才能實作編碼端的性能提升和信道帶寬節省。這部分改變将會需要視訊擷取裝置的改動,而這通常不是我們集團可以控制的部分。我們相信作為這個方向有很大的研究價值,它可以對圖像編碼标準進行優化。

4.2 現有的實驗均基于圖像的壓縮傳輸系統。下一步我們的目标是對視訊壓縮系統做類似的嘗試。由于視訊壓縮标準中包含了幀間運動預測/補償和幀内預測,對應的頻域資訊也會有比較大的差别。

4.3 通過我們利用頻域資訊來做機器學習的研究,我們的思考是:機器學習的目标和人眼觀測圖像/視訊的方式不同,什麼樣的資訊才是對于機器學習更友好,更有用的資訊呢?傳統的機器學習算法的輸入都是空間域的RGB圖像,然而我們是否可以設計更适合機器學習的特征來過濾掉空間域備援的資訊,進而真正做到節省解碼端到推理引擎間的資料帶寬。

Acknowledgement

本文的工作基于實習生Kai Xu在阿裡巴巴達摩院實習期間的研究以及和Prof. Fengbo Ren (Arizona State University)的合作。在這個工作中,我們十分感謝來自于計算技術實驗室其他同學許多重要的建議和意見。

Reference

[1] Jussi Hanhirova, Teemu Kämäräinen, Sipi Seppälä, Matti Siekkinen, Vesa Hirvisalo, Antti Ylä-Jääski, Latency and throughput characterization of convolutionalneural networks for mobile computer vision, In Proceedings of the 9th ACM Multimedia Systems Conference,MMSys ’18, pages 204–215, New York, NY, USA, 2018. ACM.

[2] Robinson, A.H.; Cherry, C. (1967). "Results of a prototype television bandwidthcompression scheme". Proceedings of the IEEE. IEEE. 55 (3): 356–364. doi:10.1109/PROC.1967.5493

[3]Huffman, D. (1952). "A Method for the Construction ofMinimum-Redundancy Codes" (PDF). Proceedings of the IRE. 40 (9): 1098–1101. doi:10.1109/JRPROC.1952.273898.

[4]MacKay, David J.C. (September 2003). "Chapter6: Stream Codes". Information Theory, Inference, and LearningAlgorithms.Cambridge University Press. ISBN0-521-64298-1. Archived from the original (PDF/PostScript/DjVu/LaTeX)on 22 December 2007. Retrieved 30 December 2007.

[5]Marpe, D., Schwarz, H., and Wiegand, T., Context-Based Adaptive Binary ArithmeticCoding in the H.264/AVC Video Compression Standard, IEEE Trans. Circuits andSystems

[6]Lionel Gueguen, Alex Sergeev, Ben Kadlec, Rosanne Liu, and Jason Yosinski. Fasterneural networks straight from JPEG. In S. Bengio, H. Wallach, H.Larochelle, K. Grauman, N. Cesa-Bianchi, and R. Garnett, editors, Advances inNeural Information Processing Systems 31, pages 3933–3944. Curran Associates,Inc., 2018

[7]E. Jang, S. Gu, and B. Poole. Categorical reparameterization withgumbel-softmax. arXiv preprint arXiv:1611.01144, 2016.

[8]K. He, X. Zhang, S. Ren, J.Sun, Deep Residual Learning for ImageRecognition, arXiv:1512.03385, 2015

[9]M. Sandler, A. Howard, M. Zhu, A. Zhmoginov, and L.-C. Chen. Mobilenetv2:Inverted residuals and linear bottlenecks. CVPR, 2018.

[10]K. He, G. Gkioxari, P. Dollar, and R. Girshick. Mask R-CNN. arXiv:1703.06870, 2017.

繼續閱讀