超越 MobileNet,谷歌提出 MobileDets:移动端目标检测新标杆
原文鏈接:超越 MobileNet,谷歌提出 MobileDets:移動端目標檢測新標桿
導讀:在移動端上的目標檢測架構,目前比較流行的三大派系分別為:谷歌出品的MobileNet系列(v1-v3)、曠視科技產品的ShuffleNet系列(v1-v2)、Facebook出品的FBNet(v1-v3)系列。最近移動端的目標檢測通過結合神經網絡架構搜索,又新出了三篇移動端目標檢測SOTA模型:一篇出自谷歌大牛Quoc V. Le的MixNet;另一篇出自Facebook 出品的FBNet 的升級版本 FBNetV2,就在6月3日,Facebook又推出了FBNetV3。
而今天,我們介紹的是來自谷歌和威斯康辛麥迪遜分校合作的一篇重量級論文—MobileDets,該論文可以說有著史上最強豪華作者陣營,包括了DARTS的作者-HanXiao Liu、Tan Mingxing(MixNet、MobileNetV3、MnasNet、EfficientNet、EfficientDet都出自他之手)。不得不說,谷歌真的是大牛云集啊!還有該論文一出,也可以說是目前移動端目標檢測結合NAS的另一新標桿。
MobileDets
論文地址:
https://arxiv.org/abs/2004.14525
論文摘要:
Inverted bottleneck layers, IBN已成為終端設備SOTA目標檢測方法的主要模塊。而在這篇文章里,作者通過重新分析研究終端芯片加速下的常規卷積而對“IBN主導的網絡架構是否最優”提出了質疑。作者通過將常規卷積納入搜索空間取得了延遲-精度均衡下的性能提升,得到了一類目標檢測模型:MobileDets。在COCO目標檢測任務上,基于同等終端CPU推理延遲,MobileDets以1.7mAP性能優于MobileNetV3+SSDLite,以1.9mAP性能優于MobileNetV2+SSDLite;在EdgeTPU平臺上,以3.7mAP性能優于MobileNetV2+SSDLite且推理更快;在DSP平臺上,以3.4mAP性能優于MobileNetV2+SSDLite且推理更快。與此同時,在不采用FPN的情況下,在終端CPU平臺,MobileDets取得了媲美MnasFPN的性能;在EdgeTPU與DSP平臺具有更優的mAP指標,同時推理速度快2倍。
Motivation與創新點
本文的Motivation 是關于 depthwise conv 在移動端使用的必要性。由于NAS已成功了搜索到大量具有高性能且適合于特定硬件平臺的的模型,比如MobileNetV3、MixNet、EfficientNet、FALSR等等,其中分類模型往往以Inverted bottleneck作為核心關鍵模塊。又因為inverted bottlenecks (IBN) 廣泛采用了 depthwise conv + 1x1 pointwise conv 的結構,所以IBN可以減少參數量與FLOPS,同時深度分離卷積極為適合于終端CPU。
盡管如此,深度分離卷積對于當前終端芯片的適配性往往并非最優,比如在EdgeTPU與高通DSP上,具有特定形狀的Tensor與核維度的常規卷積往往具有比深度分離卷積更快的速度(甚至高達3倍),盡管具有更多的FLOPS(理論計算復雜度與實際推理速度不成正比)。
因此作者提出一個擴大的搜索空間:包含IBN與受啟發于Tensor Decomposition的全卷積序列,稱之為Tensor Decomposition Based Search Space(TBD),它可以跨不同終端芯片應用。作者以CPU、EdgeTPU、DSP硬件平臺為藍本,在目標檢測任務上采用NAS方式進行網絡架構設計。僅僅采用一種簡單的SSDLite進行目標檢測架構組成,所設計的網絡架構稱之為MobileDets,在同等推理延遲約束下,它以1.9mAP@CPU、3.7mAP@EdgeTPU、3.4mAP@DSP優于MobileNetV2,同時它以1.7mAP@CPU優于MobileNetV3。與此同時,在未采用NAS-FPN的條件下,取得了媲美此前終端SOTA方法MnasFPN的性能且具有更快的推理速度(在EdgeTPU、DSP上快2倍)。
本文的貢獻主要包含以下幾點:
-
廣泛采用IBN-only的搜索空間對于EdgeTPU、DSP等終端加速芯片平臺是次優的;
-
作者提出一種新穎的搜索空間–TBD,它通過研究了常規卷積的作用可以適用于不同的終端加速芯片;
-
通過學習利用網絡中選定位置的常規卷積,驗證了采用NAS工具可以為不同的加速硬件平臺挖掘具有高性能的網絡架構;
-
提出來一類可以在多個終端加速芯片平臺上達到SOTA性能的方法:MobileDets。
Revisiting Full Convs in Mobile Search Spaces
在這里,我們首先對IBN模塊進行了介紹,并且解釋了為什么IBN層可能不足以適用于除終端CPU以外的其它終端加速平臺。盡管常規卷積可能會具有更多的FLOPS,但有時候,在某些終端加速平臺中(比如 EdgeTPU 和 DSPs),常規卷積會比深度分離卷積快3x。因此,我們基于常規卷積提出了兩種新的blocks,以豐富我們的搜索空間。最后,我們討論了這些構件的布局與Tucker / CP分解的線性結構之間的關系。
Inverted bottlenecks (IBN)。如下圖 Fig.2 所示,輸入的 shape 為 (N, C1, H1, W1),先過一個 1 * 1 pointwise conv,和 input expansion ratio s, 變成 (N,s * C1, H1, W1)。隨后過一個 K * K 的 depthwise conv 變成 (N, s * C1, H2, W2);最后過 1 * 1 的 pointwise conv 變成 (N, C2, H2, W2)。IBN 里面用到了兩次 pointwise conv 和一次 depthwise conv。在上述的參數中,C1, s, K, C2 都是可以搜的參數。
IBN的優缺點:
IBN模塊旨在降低參數量與減少FLOPS,雖然利用深度分離卷積可以實現在終端CPU平臺的推理加速。然而,在其他終端加速器(如EdgeTPU、DSP)上,盡管具有更多的FLOPS,常規卷積往往比深度分離卷積更快(3x)。這就意味著,對于現代移動加速器而言,廣泛使用的IBN-only搜索空間可能不是最佳選擇。鑒于此,作者提出另外兩種用于通道擴展和壓縮的靈活層。
第一種:Fused Inverted Bottleneck Layers (Expansion)
由于深度分離卷積是IBN的重要組成成分,其背后核心思想:采用深度卷積+1x1point卷積替換expensive的全卷積(即常規卷積)。但是這種expensive的定義大多源自于FLOPS或者參數量,而非實際硬件平臺的推理速度。因此在這里,我們直接通過一個 K * K 的普通的卷積在 spatial 維度上計算,加上一個 1* 1 的 pointwise conv 改變 channel。這樣就可以直接不要 depthwise conv了。具體形式如下圖所示:
第二種:Tucker layer(Generalized Bottleneck Layers)
它是比 inverted bottlenecks 更泛化的形式,如下圖 Fig.3,Bottleneck首次是由ResNet引入并用于降低高維特征的計算量,它采用兩個1x1卷積進行通道降維與升維。Bottleneck有助于在更細粒度層面控制通道大小(通道大小將直接影響推理延遲),在此基礎上,作者引入兩個壓縮比例系數對其進行了擴展,整體架構見下圖。作者將這種改進后的模塊稱之為Tucker Convolution。
由于 depthwise conv 的輸入和輸出 channel 要求是一樣的,作者這里把它替換成了 K * K 的普通 conv, 輸出 channel 變成了 e * S1。這樣就多了一個可以搜的參數 e 。
Search Space Definition
-
IBN:僅包含IBN的最小搜索空間。kernel size在(3,5)中選擇, expansion factors在(4,8)中選擇。
-
IBN + Fused:擴大的搜索空間,不僅包含上述所有IBN變體,而且還包含融合卷積層以及可搜索的kernel size(3,5)和expansion factors(4,8)。
-
IBN + Fused + Tucker:進一步擴大的搜索空間,其中另外包含Tucker(壓縮)層。每個Tucker層都允許在(0.25,0.75)之內搜索輸入和輸出壓縮比。
對于上述所有搜索空間變體,我們還將在(0.5,0.625,0.75,1.0,1.25,1.5,2.0)乘以基本通道大小(通常為8的倍數,這樣對硬件設備比較好)之間搜索每一層的輸出通道大小。同一block中的層共享相同的基本通道大小,盡管它們最終可能會得到
不同的通道數。所有block的基本通道大小為32-16-32-48-96-96-160-192-192。乘法器和基本通道的大小的設計類似參考文獻中的幾種代表性架構,例如MobileNetV2和MnasNet。
Search Space Ablation
針對三種不同的硬件平臺(CPU,EdgeTPU和DSP),我們利用上述三種不同的搜索空間進行架構搜索,并通過從頭開始訓練得到的模型來評估搜索的模型。目的是在與NAS算法配對時驗證每個搜索空間的有效性。使用完美的架構搜索算法,可以確保最大的搜索空間勝過較小的搜索空間,因為它包含了后者的解決方案。但是,實際上并不一定是這種情況,因為該算法可能會獲得次優的解決方案,尤其是在搜索空間較大的情況下。 因此,如果搜索空間使NAS方法能夠識別足夠好的架構,即使它們不是最佳的,它也被認為是有價值的。
最后在三個搜索空間上搜出來的結構如下圖 Fig. 8。結果也驗證了之前的 motivation,包含普通的卷積的 Tucker layer 和 Fused convolution layer 在 EdgeTPU 和 DSP 上被廣泛使用。
實驗結果展示
作者在COCO數據集上將之前最先進的移動檢測模型和文章中通過搜索得到的網絡架構在終端平臺進行性能測試對比,見下表。從上表中可以看到:
1. 終端CPU:
-
在同等推理延遲下,MobileDet以1.7mAP指標優于MobileNetV3+SSDLite;
-
在不采用NAS-FPN中的head情況下,取得了媲美MnasFPN的性能。因此哦我們可以得出:IBN確實是可以適用于終端CPU平臺的模塊。
2. EdgeTPU:
- 在同等推理延遲下,MobileDet以3.7mAP指標優于MobileNetV2+SSDLite。這種性能增益源自:域相關NAS、全卷積序列模塊(Fused、Tucker)。
3. DSP:
-
MobileDet取得28.5mAP@12.ms的性能,以3.2mAP指標優于MobileNetV2+SSDLite;
-
以2.4mAP指標優于MnasFPN,同時具有更快的推理速度。
最后,作者還進行了跨硬件平臺網絡架構可移植性的性能測試, 圖9比較了使用不同硬件平臺的MobileDets(通過針對不同的加速器獲得)。我們的結果表明,在EdgeTPU和DSP上搜索的體系結構可以相互移植。實際上,這兩種搜索架構都充分利用了常規卷積。另一方面,專用于EdgeTPU或DSP的體系結構(往往是FLOP密集型)無法很好地傳輸到終端CPU。
Conclusion
本文,作者對以“IBN主導的網絡架構是否最優”提出了質疑,以目標檢測任務作為基礎,重新分析研究了不同終端芯片加速下的常規卷積的有效性。這里主要列舉了三種終端加速平臺(CPU、EdgeTPU、DSP)。通過一系列的實驗結果表明,在不同終端設備加速平臺,在網絡中合適的位置嵌入常規卷積可以取得精度-推理方面的性能提升。由此產生得到的新架構MobileDets可以在不同硬件平臺下取得比以往更優異的檢測結果。
◎作者檔案
Murufeng,一個緊跟前沿、樂于分享最新技術干貨的DLer!
個人公眾號:深度學習技術前沿
歡迎大家聯系極市小編(微信ID:fengcall19)加入極市原創作者行列
關注極市平臺公眾號(ID:extrememart),獲取計算機視覺前沿資訊/技術干貨/招聘面經等
總結
以上是生活随笔為你收集整理的超越 MobileNet,谷歌提出 MobileDets:移动端目标检测新标杆的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Facebook 最新力作 FBNetV
- 下一篇: 300米远程深度估计:港科大重磅开源自动