近年來,基於深度神經網絡的機器學習方法在計算機視覺上獲得的巨大的成功。我們現在應用的主流的深度神經網絡都基於對空間域信號的處理和分析,即圖像或視頻的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%)。
(a)
(b)
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.