比當前SOTA小4倍、計算量少9倍,谷歌最新目標檢測器EfficientDet

杜佳豪發表於2019-11-29
在計算機視覺領域,模型效率的重要性越來越高。近日,谷歌大腦團隊 Quoc V. Le 等人系統研究了多種目標檢測神經網路架構設計,提出了能夠提升模型效率的幾項關鍵最佳化。首先,他們提出加權雙向特徵金字塔網路(weighted bi-directional feature pyramid network,BiFPN),從而輕鬆、快速地實現多尺度特徵融合;其次,他們提出一種複合縮放(compound scaling)方法,同時對所有主幹網路、特徵網路和邊界框/類別預測網路的解析度、深度和寬度執行統一縮放。

論文連結:https://arxiv.org/abs/1911.09070


基於這些最佳化,研究者開發了新型目標檢測器 EfficientDet。在廣泛的資源限制下,這類模型的效率仍比之前最優模型高出一個數量級。具體來看,結構簡潔只使用了 52M 引數、326B FLOPS 的 EfficientDet-D7 在 COCO 資料集上實現了當前最優的 51.0 mAP,準確率超越之前最優檢測器(+0.3% mAP),其規模僅為之前最優檢測器的 1/4,而後者的 FLOPS 更是 EfficientDet-D7 的 9.3 倍。


我們可以先看看效果


圖 1 和圖 4 展示了多個模型在 COCO 資料集上的效能對比情況。在類似的準確率限制下,EfficientDet 的 FLOPS 僅為 YOLOv3 的 1/28、RetinaNet 的 1/30、NASFPN 的 1/19。

比當前SOTA小4倍、計算量少9倍,谷歌最新目標檢測器EfficientDet

圖 1:模型 FLOPS vs COCO 資料集準確率,所有數字均為單個模型在單一尺度下所得。EfficientDet 的計算量較其他檢測器少,但準確率優於後者,其中 EfficientDet-D7 獲得了當前最優效能。


具體而言,在都使用單個模型和單一測試時間尺度的前提下,EfficientDet-D7 以 52M 的引數量和 326B FLOPS,獲得了當前最優效能 51.0 mAP,超出之前最優模型 0.3%,而且其規模和 FLOPS 分別是之前最優模型的 1/4 和 10.8%。此外,EfficientDet 模型在 GPU 和 CPU 上的計算速度分別是之前檢測器的 3.2 倍和 8.1 倍,參見圖 4 和表 2。

比當前SOTA小4倍、計算量少9倍,谷歌最新目標檢測器EfficientDet

圖 4:模型大小和推斷延遲對比。延遲均為使用批大小 1 在同樣的機器上測量得到(這些計算機均配備一塊 Titan V GPU 和 Xeon CPU)。AN 表示使用自增強訓練得到的 AmoebaNet + NAS-FPN。


目標檢測能夠既準確又快速嗎?


我們常常有一個概念,SSD 等單階段目標檢測器很快,但準確性比不上 Mask R-CNN 等兩階段目標檢測器,儘管兩階段目標檢測推斷速度要慢許多。那麼有沒有一種兼顧兩者的目標檢測器?設計這樣的檢測器又會出現什麼挑戰?這就是該論文作者所關心的。


近年來,在實現更準確的目標檢測方面出現了大量進展,然而當前最優目標檢測器的成本也越來越高昂。例如,近期提出的基於 AmoebaNet 的 NASFPN 檢測器需要 167M 引數和 3045B FLOPS(是 RetinaNet 的 30 倍)才能獲得當前最優準確率。大模型規模和昂貴的計算成本阻礙了它們在一些現實世界應用中的部署,例如模型規模和延遲高度受限的機器人、自動駕駛汽車等應用。由於這些現實世界的資源限制,模型效率對於目標檢測的重要性越來越高。


已經有很多研究試圖開發更高效的檢測器架構,如單階段檢測器和 anchor-free 檢測器,或者壓縮現有模型。儘管這些方法可以實現更優的效率,但這通常是以準確率為代價的。此外,大部分之前研究僅關注某個或某些特定的資源要求,而大量現實應用(從移動裝置到資料中心)通常具備不同的資源限制。


那麼問題來了:在面對廣泛的資源約束時(如 3B 到 300B FLOPS),構建兼具準確率和效率的可擴充套件檢測架構是否可行?


谷歌大腦的這篇論文系統性地研究了多種檢測器架構設計,試圖解決該問題。基於單階段檢測器正規化,研究者檢視了主幹網路、特徵融合和邊界框/類別預測網路的設計選擇,發現了兩大主要挑戰:


  • 挑戰 1:高效的多尺度特徵融合。儘管大部分之前工作融合了不同的輸入特徵,但它們僅僅是不加區分地將其彙總起來。而由於這些輸入特徵的解析度不盡相同,它們對輸出特徵的貢獻也不相等。

  • 挑戰 2:模型縮放。儘管之前研究主要依賴大型主幹網路或者較大的輸入影像規模,但研究者發現,在同時考慮準確率和效率的情況下,擴大特徵網路和邊界框/類別預測網路非常關鍵。


既快又準的 EfficientDet


針對這兩項挑戰,研究者提出了應對方法。


  • 挑戰 1:高效的多尺度特徵融合。研究者提出一種簡單高效的加權雙向特徵金字塔網路(BiFPN),該模型引入了可學習的權重來學習不同輸入特徵的重要性,同時重複應用自上而下和自下而上的多尺度特徵融合。

  • 挑戰 2:模型縮放。受近期研究 [31] 的啟發,研究者提出一種目標檢測器複合縮放方法,即統一擴大所有主幹網路、特徵網路、邊界框/類別預測網路的解析度/深度/寬度。


最後,研究者觀察到,近期出現的 EfficientNets [31] 效率超過之前常用的主幹網路。於是研究者將 EfficientNet 主幹網路和 BiFPN、複合縮放結合起來,開發出新型目標檢測器 EfficientDet,其準確率優於之前的目標檢測器,同時引數量和 FLOPS 比它們少了一個數量級。


BiFPN


作者首先將多尺度特徵融合問題公式化,然後為 BiFPN 引入兩個主要想法:高效的雙向跨尺度連線和加權特徵融合。


跨尺度連線


多尺度特徵融合旨在聚合不同解析度的特徵。圖 2a 展示了傳統自上而下的 FPN。它使用 level 3-7 作為輸入特徵,如果輸入解析度是 640x640,則 level 3 輸入特徵是 640/2^3 = 80,解析度為 80x80。依此類推,特徵 level 7 的解析度為 5x5。


傳統 FPN 以自上而下的方式聚合多尺度特徵:


比當前SOTA小4倍、計算量少9倍,谷歌最新目標檢測器EfficientDet


其中 Resize 通常表示解析度匹配時的上取樣或者下采樣,Conv 通常表示特徵處理時的卷積網路。

比當前SOTA小4倍、計算量少9倍,谷歌最新目標檢測器EfficientDet

圖 2:特徵網路設計圖。a)FPN 使用自上而下的路徑來融合多尺度特徵 level 3-7(P3 - P7);b)PANet 在 FPN 的基礎上額外新增了自下而上的路徑;c)NAS-FPN 使用神經架構搜尋找出不規則特徵網路拓撲;(d)-(f) 展示了該論文研究的三種替代方法。d 在所有輸入特徵和輸出特徵之間新增成本高昂的連線;e 移除只有一個輸入邊的節點,從而簡化 PANet;f 是兼顧準確和效率的 BiFPN。


為了提高模型效率,谷歌大腦研究者提出了針對跨尺度連線的幾項最佳化:


首先,移除僅具備一個輸入邊的節點。其背後的想法很簡單:如果一個節點只有一個輸入邊沒有特徵融合,則它對特徵網路的貢獻較小。這樣就得到了簡化版 PANet(見圖 2e)。


然後,研究者為同級原始輸入到輸出節點新增額外的邊,從而在不增加大量成本的情況下融合更多特徵(見圖 2f)。


最後,與只有一條自上而下和自下而上路徑的 PANet 不同,研究者將每個雙向路徑(自上而下和自下而上)作為一個特徵網路層,並多次重複同一個層,以實現更高階的特徵融合。


加權特徵融合


在融合不同解析度的輸入特徵時,常見的方法是先將其解析度調整至一致再相加。金字塔注意力網路(pyramid attention network)引入了全域性自注意力上取樣來恢復畫素定位,這在 [5] 中有進一步研究。


之前的特徵融合方法對所有輸入特徵一視同仁,不加區分同等看待。但是,研究者觀察到,由於不同輸入特徵的解析度不同,它們對輸出特徵的貢獻也不相等。為解決該問題,研究者提出在特徵融合過程中為每一個輸入新增額外的權重,再讓網路學習每個輸入特徵的重要性。


EfficientDet


基於 BiFPN,研究者開發了新型檢測模型 EfficientDet。下圖 3 展示了 EfficientDet 的整體架構,大致遵循單階段檢測器正規化。研究者將在 ImageNet 資料集上預訓練的 EfficientNet 作為主幹網路,將 BiFPN 作為特徵網路,接受來自主幹網路的 level 3-7 特徵 {P3, P4, P5, P6, P7},並重復應用自上而下和自下而上的雙向特徵融合。然後將融合後的特徵輸入邊界框/類別預測網路,分別輸出目標類別和邊界框預測結果。

比當前SOTA小4倍、計算量少9倍,谷歌最新目標檢測器EfficientDet

圖 3:EfficientDet 架構。它使用 EfficientNet 作為主幹網路,使用 BiFPN 作為特徵網路,並使用共享的邊界框/類別預測網路。


為了最佳化準確率和效率,研究者試圖開發出能夠滿足廣泛資源約束的模型。這裡的重要挑戰在於,如何擴大基線 EfficientDet 模型。


受近期研究 [5, 31] 的啟發,研究者提出一種目標檢測複合縮放方法,它使用簡單的複合係數 φ 統一擴大主幹網路、BiFPN 網路、邊界框/類別預測網路的所有維度。


實驗


研究者在 COCO 2017 檢測資料集上對 EfficientDet 進行評估。EfficientDet 模型是使用批大小 128 在 32 塊 TPUv3 晶片上訓練而成的。


下表 2 在單個模型單一尺度且沒有測試時間增強的設定下,對比了 EfficientDet 和其他目標檢測器。在大量準確率或資源限制下,EfficientDet 的準確率和效率均優於之前的檢測器。


比當前SOTA小4倍、計算量少9倍,谷歌最新目標檢測器EfficientDet

表 2:EfficientDet 在 COCO 資料集上的效能。#Params 和 #FLOPS 表示引數量和 multiply-add 次數。LAT 表示在批大小為 1 時的推斷延遲。AA 表示自增強。研究者將準確率類似的模型歸類在一起,並對比了每一組中 EfficientDet 與其他檢測器的比例或加速。


由於 EfficientDet 既使用了強大的主幹網路又應用了新型 BiFPN,研究者想了解這兩個網路對準確率和效率提升的貢獻。表 3 即對比了二者對模型效能的影響。

比當前SOTA小4倍、計算量少9倍,谷歌最新目標檢測器EfficientDet
表 3:主幹網路和 BiFPN 對模型效能的影響。第一行是標準的 RetinaNet (ResNet50+FPN),研究者首先將其主幹網路替換為 EfficientNet-B3(第二行),然後將基線 FPN 替換成 BiFPN(第三行)。


表 4 展示了當特徵網路具備圖 2 列舉的不同跨尺度連線時模型的準確率和複雜度。

比當前SOTA小4倍、計算量少9倍,谷歌最新目標檢測器EfficientDet

表 4:不同特徵網路的對比情況。加權 BiFPN 以更少的引數和 FLOPS 取得了最好的準確率。


研究者使用複合縮放方法,統一擴大主幹網路、BiFPN 和邊界框/類別預測網路的所有維度——深度/寬度/解析度。圖 6 對比了該複合縮放方法和其他僅擴大其中一個維度的方法。

比當前SOTA小4倍、計算量少9倍,谷歌最新目標檢測器EfficientDet

圖 6:不同縮放方法的對比。所有方法都能提升準確率,但研究者提出的複合縮放方法實現了更好的準確率和效率的平衡。

相關文章