優於MobileNet、YOLOv2:移動設備上的實時目標檢測系統Pelee

選自arXiv,作者:Robert J. Wang、Xiang Li、Shuang Ao、Charles X. Ling,機器之心編譯。

已有的在移動設備上執行的深度學習模型例如 MobileNet、 ShuffleNet 等都嚴重依賴於在深度上可分離的卷積運算,而缺乏有效的實現。在本文中,來自加拿大西安大略大學的研究者提出了稱為 PeleeNet 的有效架構,它沒有使用傳統的卷積來實現。PeleeNet 實現了比目前最先進的 MobileNet 更高的圖像分類準確率,並降低了計算成本。研究者進一步開發了實時目標檢測系統 Pelee,以更低的成本超越了 YOLOv2 的目標檢測性能,並能流暢地在 iPhone6s、iPhone8 上運行。

在具有嚴格的內存和計算預算的條件下運行高質量的 CNN 模型變得越來越吸引人。近年來人們已經提出了很多創新的網路,例如 MobileNets (Howard et al.(2017))、ShuffleNet (Zhang et al.(2017)),以及 ShuffleNet (Zhang et al.(2017))。然而,這些架構嚴重依賴於在深度上可分離的卷積運算 (Szegedy 等 (2015)),而這些卷積運算缺乏高效的實現。同時,將高效模型和快速目標檢測結合起來的研究也很少 (Huang 等 (2016b))。本研究嘗試探索可以用於圖像分類和目標檢測任務的高效 CNN 結構。本文的主要貢獻如下:

研究者提出了 DenseNet (Huang et al. (2016a)) 的一個變體,它被稱作 PeleeNet,專門用於移動設備。PeleeNet 遵循 DenseNet 的創新連接模式和一些關鍵設計原則。它也被設計來滿足嚴格的內存和計算預算。在 Stanford Dogs (Khosla et al. (2011)) 數據集上的實驗結果表明:PeleeNet 的準確率要比 DenseNet 的原始結構高 5.05%,比 MobileNet (Howard et al. (2017)) 高 6.53%。PeleeNet 在 ImageNet ILSVRC 2012 (Deng et al. (2009)) 上也有極具競爭力的結果。PeleeNet 的 top-1 準確率要比 MobileNet 高 0.6%。需要指出的是,PeleeNet 的模型大小是 MobileNet 的 66%。PeleeNet 的一些關鍵特點如下:

兩路稠密層:受 GoogLeNet (Szegedy et al. (2015)) 的兩路稠密層的激發,研究者使用了一個兩路密集層來得到不同尺度的感受野。其中一路使用一個 3×3 的較小卷積核,它能夠較好地捕捉小尺度的目標。另一路使用兩個 3×3 的卷積核來學習大尺度目標的視覺特徵。該結構如圖 1.a 所示:

圖 1: 兩路密集層和 stem 塊的結構

瓶頸層通道的動態數量:另一個亮點就是瓶頸層通道數目會隨著輸入維度的變化而變化,以保證輸出通道的數目不會超過輸出通道。與原始的 DenseNet 結構相比,實驗表明這種方法在節省 28.5% 的計算資源的同時僅僅會對準確率有很小的影響。

沒有壓縮的轉換層:實驗表明,DenseNet 提出的壓縮因子會損壞特徵表達,PeleeNet 在轉換層中也維持了與輸入通道相同的輸出通道數目。

複合函數:為了提升實際的速度,採用後激活的傳統智慧(Convolution - Batch Normalization (Ioffe & Szegedy (2015)) - Relu))作為我們的複合函數,而不是 DenseNet 中所用的預激活。對於後激活而言,所有的批正則化層可以在推理階段與卷積層相結合,這可以很好地加快速度。為了補償這種變化給準確率帶來的不良影響,研究者使用一個淺層的、較寬的網路結構。在最後一個密集塊之後還增加了一個 1×1 的卷積層,以得到更強的表徵能力。

研究者優化了單樣本多邊框檢測器(Single Shot MultiBox Detector,SSD)的網路結構,以加速並將其與 PeleeNet 相結合。該系統,也就是 Pelee,在 PASCAL VOC (Everingham et al. (2010)) 2007 數據集上達到了 76.4% 的準確率,在 COCO 數據集上達到了 22.4% 的準確率。在準確率、速度和模型大小方面,Pelee 系統都優於 YOLOv2 (Redmon & Farhadi (2016))。為了平衡速度和準確率所做的增強設置如下:

特徵圖選擇:以不同於原始 SSD 的方式構建目標檢測網路,原始 SSD 仔細地選擇了 5 個尺度的特徵圖 (19 x 19、10 x 10、5 x 5、3 x 3、1 x 1)。為了減少計算成本,沒有使用 38×38 的特徵圖。

殘差預測塊:遵循 Lee 等人提出的設計思想(2017),即:使特徵沿著特徵提取網路傳遞。對於每一個用於檢測的特徵圖,在實施預測之前構建了一個殘差 (He et al. (2016)) 塊(ResBlock)。ResBlock 的結構如圖 2 所示:

圖 2:殘差預測塊

用於預測的小型卷積核:殘差預測塊讓我們應用 1×1 的卷積核來預測類別分數和邊界框設置成為可能。實驗表明:使用 1×1 卷積核的模型的準確率和使用 3×3 的卷積核所達到的準確率幾乎相同。然而,1x1 的核將計算成本減少了 21.5%。

研究者在 iOS 上提供了 SSD 演算法的實現。他們已經成功地將 SSD 移植到了 iOS 上,並且提供了優化的代碼實現。該系統在 iPhone 6s 上以 17.1 FPS 的速度運行,在 iPhone8 上以 23.6 FPS 的速度運行。在 iPhone 6s(2015 年發布的手機)上的速度要比在 Intel i7-6700K@4.00GHz CPU 上的官方演算法實現還要快 2.6 倍。

論文:Pelee: A Real-Time Object Detection System on Mobile Devices

論文鏈接:arxiv.org/pdf/1804.0688

摘要:在具有有限的計算力和內存資源的移動設備上運行卷積神經網路模型的與日俱增的需求激勵著高效模型設計的研究。近年來已經出現了很多高效的結構,例如 MobileNet、 ShuffleNet 和 NASNet-A。然而,所有的這些模型都嚴重依賴於在深度上可分離的卷積運算,這些運算在絕大多數深度學習框架中都缺乏有效的實現。在本論文的研究中,我們提出了一個叫做 PeleeNet 的有效結構,它沒有使用傳統的卷積來實現。在 ImageNet ILSVRC 2012 數據集上,PeleeNet 實現了比目前最先進的 MobileNet 高 0.6% 的準確率 (71.3% vs. 70.7%),並且將計算成本降低了 11%。然後,我們通過將單樣本多邊框檢測器(Single Shot MultiBox Detector,SSD)方法與 PeleeNet 相結合,並為了加速而進行結構優化,提出了一個實時目標檢測系統。我們的實時系統 Pelee 在 PASCAL VOC2007 數據集上達到了 76.4% 的 mAP(平均準確率),在 COCO 數據集上達到了 22.4 的 mAP,在 iPhone 6s 上的運行速度是 17.1 FPS,在 iPhone 8 上的運行速度是 23.6 FPS。在 COCO 數據集上的結果以更高的準確率、13.6 倍的計算資源節省以及小 11.3 倍模型大小優於 YOLOv2。

表 1:PeleeNet 架構概覽

表 2: 不同的設計選擇的效果得到的性能

表 3: 在 Stanford Dogs 數據集上的結果。MACs:乘法累加的次數,用於度量融合乘法和加法運算次數

表 4:在 ImageNet ILSVRC 2012 數據集上的結果

表 5: 不同設計選擇上的性能結果

表 6:在 PASCAL VOC 2007 數據集上的結果。數據:07+12,VOC2007 和 VOC2012 聯合訓練;07+12+COCO,先在 COOC 數據集上訓練 35000 次,然後在 07+12 上繼續微調。

表 7: 實際設備上的速度

表 8: COCO test-dev2015 數據集上的結果


推薦閱讀:

綜述:3D目標檢測於RGB-D(Object detection in RGB-D images)
【目標檢測簡史】進擊的YOLOv3,目標檢測網路的巔峰之作
《Detecting and Recognition Human-Object Interactions》論文筆記
YOLO9000(v2)論文翻譯
基於深度學習的「目標檢測」演算法綜述

TAG:目標檢測 | 人工智慧 | 深度學習DeepLearning |