1. 程式人生 > >ESPNet/ESPNetV2:空洞卷積金字塔 | 輕量級網路

ESPNet/ESPNetV2:空洞卷積金字塔 | 輕量級網路

> ESPNet系列的核心在於空洞卷積金字塔,每層具有不同的dilation rate,在引數量不增加的情況下,能夠融合多尺度特徵,相對於深度可分離卷積,深度可分離空洞卷積金字塔價效比更高。另外,HFF的多尺度特徵融合方法也很值得借鑑   來源:曉飛的演算法工程筆記 公眾號 # ESPNet *** **論文: ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation** ![](https://upload-images.jianshu.io/upload_images/20428708-1ba470beda87d0ac.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) * **論文地址:[https://arxiv.org/abs/1803.06815](https://arxiv.org/abs/1803.06815)** * **論文程式碼:[https://github.com/sacmehta/ESPNet](https://github.com/sacmehta/ESPNet)** ### Introduction   ESPNet是用於語義分割的輕量級網路,核心在於ESP模組,該模組包含point-wise卷積和空洞卷積金字塔,分別用於降低計算複雜度以及重取樣各有效感受域的特徵。ESP模組比其它卷積分解方法(mobilenet/shufflenet)更高效,ESPNet能在GPU/筆記本/終端裝置上達到112FPS/21FPS/9FPS。 ### ESP module ![](https://upload-images.jianshu.io/upload_images/20428708-4cb0ebed597c9abb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   ESP模組將標準卷積分解成point-wise卷積和空洞卷積金字塔(spatial pyramid of dilated convolutions),point-wise卷積將輸入對映到低維特徵空間,空洞卷積金字塔使用$K$組$n\times n$空洞卷積同時重取樣低維特徵,每個空洞卷積的dilation rate為$2^{k-1}$,$k=\{1, \cdots, K\}$。這種分解方法能夠大量減少ESP模組的引數量和記憶體,並且保持較大的有效感受域。 * ##### Width divider K   對於輸入輸出維度為$M$和$N$,卷積核大小為$n\times n$的標準卷積,需要學習的引數量為$n^2MN$,有效感受域為$n^2$。超引數$K$用來調節ESP模組的計算複雜度,首先使用point-wise卷積將輸入維度從$M$降為$\frac{N}{K}$(reduce),然後將低維特徵分別使用上述的空洞卷積金字塔進行處理(split and transform),最後將K組空洞卷積的輸出合併(merge)。ESP模組包含$\frac{MN}{K}+\frac{(nN)^2}{K}$引數,有效感受域為$[(n-1)2^{K-1} + 1]^2$,在引數和感受域方面都有一定的提升。 * ##### Hierarchical feature fusion (HFF) for de-gridding ![](https://upload-images.jianshu.io/upload_images/20428708-8dc92d80fc6766f6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   論文發現,儘管空洞卷積金字塔帶來更大的感受域,但直接concate輸出卻會帶來奇怪網格紋路,如圖2所示。為了解決這個問題,在concate之前先將輸出進行層級相加,相對於新增額外的卷積來進行後處理,HFF能夠有效地解決網格紋路而不帶來過多的計算量。另外,為了保證網路的梯度傳遞,在ESP模組添加了一條從輸入到輸出的shortcut連線。 ### Relationship with other CNN modules ![](https://upload-images.jianshu.io/upload_images/20428708-3543dd8131a071aa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   論文列舉了部分輕量級網路的核心模組進行了對比,可以看到ESP模組在引數量/記憶體/感受域方面都有很不錯的數值。 ### ESPNet ![](https://upload-images.jianshu.io/upload_images/20428708-18b1478450a453fd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   圖4為ESPNet的演進過程,$l$為特徵圖大小,相同$l$的模組具有相同大小的特徵圖,紅色和綠色模組分別為下采樣和上取樣模組,一般無說明即$\alpha_2=2$、$\alpha_3=8$。 ### Experiments   這裡只列舉了部分實驗,具體的其它實驗可以去看看論文。 ![](https://upload-images.jianshu.io/upload_images/20428708-677f6e90782eeaad.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   替換圖4d中的ESP模組進行實驗對比。 ![](https://upload-images.jianshu.io/upload_images/20428708-26f9111400400454.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   與其它語義分割模型進行對比。 ### Conclusion   ESPNet是語義分割的輕量級網路,在保證輕量化的同時,針對語義分割的場景進行了核心模組的設計,使用空洞卷積金字塔進行多感受域的特徵提取以及引數量的減少,並且使用HFF來巧妙消除網格紋路,十分值得借鑑。 # ESPNetV2 *** **論文: ESPNetv2: A Light-weight, Power Efficient, and General Purpose Convolutional Neural Network** ![](https://upload-images.jianshu.io/upload_images/20428708-aaa81e20c6f4f388.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) * **論文地址:[https://arxiv.org/abs/1811.11431](https://arxiv.org/abs/1811.11431)** * **論文程式碼:[https://github.com/sacmehta/ESPNetv2](https://github.com/sacmehta/ESPNetv2)** ### Introduction   模型輕量化共包含3種方法,分別為模型壓縮,模型量化以及輕量化設計。論文設計了輕量級網路ESPNetv2,主要貢獻如下: * 通用的輕量化網路結構,能夠支援視覺資料以及序列化資料,即能支援視覺任務和自然語言處理任務。 * 在ESPNet基礎上,加入深度可分離空洞卷積進行拓展,相對於ESPNet擁有更好的精度以及更少的引數。 * 從實驗來看,ESPNetv2在多個視覺任務上有較好的準確率和較低的引數量,任務包括影象分類、語義分割、目標檢測。 * 設計了cyclic learning rate scheduler,比一般的固定學習率的scheduler要好。 ### Depth-wise dilated separable convolution ![](https://upload-images.jianshu.io/upload_images/20428708-dbedf8a156f5dce2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   假設輸入為$X\in \mathbb{R}^{W\times H\times c}$,卷積核為$X\in \mathbb{K}^{n\times n\times c \times \hat{c}}$,輸出為$Y\in \mathbb{R}^{W\times H\times \hat{c}}$,標準卷積、分組卷積,深度分離卷積以及深度可分離空洞卷積的引數量和有效感受域如表1所示。 ### EESP unit ![](https://upload-images.jianshu.io/upload_images/20428708-dfaf6efb64885f05.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   論文基於深度可分離空洞卷積以及分組point-wise卷積改進ESP模組,提出了EESP(Extremely Efficient Spatial Pyramid)模組。原始的ESP模組結構如圖1a所示,論文首先將point-wise卷積替換為分組point-wise卷積,然後將計算量較大的空洞卷積替換為深度可分離空洞卷積,最後依然使用HFF來消除網格紋路,結構如圖1b所示,能夠降低$\frac{Md+n^2d^2K}{\frac{Md}{g}+(n^2+d)dK}$倍計算複雜度,$K$為空洞卷積金字塔層數。考慮到單獨計算$K$個point-wise卷積等同於單個分組數為$K$的point-wise分組卷積,而分組卷積的在實現上更高效,於是改進為圖1c的最終結構。 ![](https://upload-images.jianshu.io/upload_images/20428708-da45c82fbd92176d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   為了更高效地學習多尺度特徵,論文提出下采樣版本的EESP模組(Strided EESP with shortcut connection to an input image),主要進行以下改進: * 修改深度可分離空洞卷積為stride=2的版本。 * 為模組原本的shortcut新增平均池化操作。 * 將element-wise相加操作替換為concate操作,這樣能增加輸出的特徵維度。 * 為防止隨著下采樣產生的資訊丟失,新增一條連線輸入影象的shortcut,該路徑使用多個池化操作來使其空間大小與模組輸出的特徵圖一致,然後使用兩個卷積來提取特徵並調整維度,最後進行element-wise相加。 ### Network architecture ![](https://upload-images.jianshu.io/upload_images/20428708-5d5cffa68e244129.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   ESPNetv2的網路結構如表2所示,ESSP模組的每個卷積後面都接BN層以及PReLU,模組最後的分組卷積的PReLU在element-wise相加後進行,$g=K=4$,其它與ESPNet類似。 ### Cyclic learning rate scheduler   在影象分類的訓練中,論文設計了迴圈學習率排程器,在每個週期$t$,學習率的計算為: ![](https://upload-images.jianshu.io/upload_images/20428708-25d80f8c545ad3b3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   $\eta_{max}$和$\eta_{min}$分別為最大和最小學習率,$T$為迴圈週期。 ![](https://upload-images.jianshu.io/upload_images/20428708-30af4b06ccb7a7b6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   迴圈學習率排程器的視覺化如圖4所示。 ### Experiments ![](https://upload-images.jianshu.io/upload_images/20428708-b612195563581152.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   影象分類效能對比。 ![](https://upload-images.jianshu.io/upload_images/20428708-702d19f2743b6be4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   語義分割效能對比。 ![](https://upload-images.jianshu.io/upload_images/20428708-25e7552bd1bf18a0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   目標檢測效能對比。 ![](https://upload-images.jianshu.io/upload_images/20428708-855d6024d97adb2e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   文字生成效能對比。 ### Conclusion   ESPNetv2在ESPNet的基礎上結合深度分離卷積的設計方法,進行了進一步的模型輕量化,結合了更豐富的特徵融合,模型能夠拓展到多種任務中,具有很不錯的效能。 # CONCLUSION ***   ESPNet系列的核心在於空洞卷積金字塔,每層具有不同的dilation rate,在引數量不增加的情況下,能夠融合多尺度特徵,相對於深度可分離卷積,深度可分離空洞卷積金字塔價效比更高。另外,HFF的多尺度特徵融合方法也很值得借鑑。       > 如果本文對你有幫助,麻煩點個贊或在看唄~ 更多內容請關注 微信公眾號【曉飛的演算法工程筆記】 ![work-life balance.](https://upload-images.jianshu.io/upload_images/20428708-7156c0e4a2f49bd6.png?imageMogr2/auto-orient/strip%7CimageView2/2