EfficientDet框架詳解 | 目前最高最快最小模型,可擴縮且高效的目標檢測(附源碼下載)


計算機視覺研究院專欄
作者:Edison_G
疫情以來,已經被研究出很多高效高精度的框架,在深度學習領域,模型效率也是越來越重的一個研究課題。不僅僅停留在訓練的提速,現在推理應用的速度更加關鍵。因此,現在很多研究趨勢朝着 更高效更小型化發展!
今天應粉絲同學們的要求,再次以詳細說說 EfficientDet框架。
近年來,在更精確的目標檢測方面取得了巨大的進展;同時,最先進的物體探測器也變得越來越昂貴(消耗)。例如,最新的基於AmoebaNet-based NAS-FPN檢測器[Barret Zoph, Ekin D. Cubuk, Golnaz Ghiasi, Tsung-Yi Lin, Jonathon Shlens, and Quoc V. Le. Learning data aug- mentation strategies for object detection. arXiv preprint arXiv:1804.02767, 2019]需要167M參數和3045B FLOPs(比RetinaNet多30倍)才能達到最先進的精度。大型的模型尺寸和昂貴的計算成本阻止了他們在許多現實世界的應用,如機器人和自動駕駛,其中模型大小和延遲受到高度限制。鑒於這些現實世界的資源約束,模型效率對於目標檢測變得越來越重要。
一個自然的問題是:是否有可能在廣泛的資源約束(例如從3B到300B FLOP)中建立一個具有更高精度和更高效率的可伸縮檢測體系結構? 作者旨在通過系統研究檢測器結構的各種設計選擇來解決這一問題。基於one- stage detector paradigm,研究了主干網絡、特征融合和類/box網絡的設計選擇,並確定了兩個主要挑戰:
挑戰1:高效的多尺度特征融合 自[Tsung-Yi Lin, Piotr Dolla ́r, Ross Girshick, Kaiming He, Bharath Hariharan, and Serge Belongie. Feature pyramid networks for object detection. CVPR, 2017]引入以來,FPN已被廣泛應用於多尺度特征融合。最近,PANET、NAS-FPN和其他研究開發了更多的跨尺度特征融合網絡結構。在融合不同的輸入特征的同時,大多數以前的工作只是不加區分地總結它們;然而,由於這些不同的輸入特征具有不同的分辨率,我們觀察到它們通常對融合的輸出特征作出不平等的貢獻。為了解決這一問題,作者提出了一個簡單而高效的加權雙向特征金字塔網絡(BiFPN),它引入可學習的權重來學習不同輸入特征的重要性,同時反復應用自頂向下和自底向上的多尺度特征融合。
挑戰2:模型縮放 雖然以前的工作主要依靠更大的主干網絡[如:Joseph Redmon and Ali Farhadi. Yolov3: An incremental improvement. arXiv preprint arXiv:1804.02767, 2018;Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster r-cnn: Towards real-time object detection with region proposal networks. NIPS, 2015]或更大的輸入圖像大小[Kaiming He, Georgia Gkioxari, Piotr Dolla ́r, and Ross Girshick. Mask r-cnn. ICCV, pages 2980–2988, 2017]來獲得更高的精度,但我們觀察到,在考慮精度和效率時,擴展特征網絡和框/類預測網絡也是至關重要的。 在最近的工作[Mingxing Tan and Quoc V. Le. Efficientnet: Rethinking model scaling for convolutional neural networks. ICML, 2019]的啟發下,作者提出了一種目標檢測器的復合縮放方法,它聯合縮放所有主干網絡、特征網絡、框/類預測網絡的分辨率/深度/寬度。
最后,我們還觀察到,最近引入的Efficientnet比以前使用的主干網獲得了更好的效率。將有效的網絡骨架與作者提出的BiFPN和復合縮放相結合,開發了一個新的目標檢測器集合,稱為EfficientDet,它始終以比以前的目標檢測器更少的參數和FLOPs來獲得更好的精度。在類似的Accuracy約束下,EfficinetDet使用的FLOPS比YOLOv3少28倍,比RetinaNet少30倍,FLOPs比最近基於ResNet的NAS-FPN少19倍。 特別是,在單模型和單一測試時間尺度下,EfficinetDet-D7實現了最先進的52.2AP,具有52M參數和325B FLOPs,在1.5AP的情況下優於預期的最佳檢測器[Barret Zoph, Ekin D. Cubuk, Golnaz Ghiasi, Tsung-Yi Lin, Jonathon Shlens, and Quoc V. Le. Learning data aug- mentation strategies for object detection],同時更小4倍,使用13倍的FLOPs。EfficinetDet檢測器在GPU/CPU上的速度也比以前的檢測器快3倍至8倍。
3.BiFPN
- PANet效果好於FPN和NAS-FPN,計算代價也更高;
- 如果一個結點本身沒有融合的特征,那么對以特征融合為目標的結構貢獻就不大,所以PANet中移除了P3,P7的中間結點;
- 同一尺度的輸入和輸出又加了一個連接,因為計算量不大,得到上圖(d);
- 上圖(d)中虛線框內作為一層,會重復多次以得到high-level feature fusion。
加權融合
當融合具有不同分辨率的特征時,一種常見的方法是首先將它們調整到相同的分辨率,然后對它們進行融合。金字塔注意網絡[Hanchao Li, Pengfei Xiong, Jie An, and Lingxue Wang. Pyramid attention networks. BMVC, 2018]引入全局自注意上采樣來恢復像素定位,在[Golnaz Ghiasi, Tsung-Yi Lin, Ruoming Pang, and Quoc V. Le. Nas-fpn: Learning scalable feature pyramid architecture for object detection. CVPR, 2019]中進一步研究。以前的所有方法都一視同仁地對待所有輸入特性。 然而,我們觀察到,由於不同的輸入特征具有不同的分辨率,它們通常對輸出特征的貢獻是不平等的。 為了解決這個問題,作者建議為每個輸入增加一個額外的權重,並讓網絡學習每個輸入特性的重要性。 基於這一思想,考慮了三種加權融合方法。
① Unbounded fusion
我們發現一個尺度可以達到與其他方法相當的精度,以最小的計算成本。然而,由於標量權重是無界的,它可能會導致訓練不穩定。因此,作者采用權重歸一化來約束每個權重的值范圍。
② Softmax-based fusion
一個直觀的想法是將softmax應用於每個權重,這樣所有權重都被歸一化為一個值范圍為0到1的概率,表示每個輸入的重要性。然而,如下文的ablation研究所示,額外的Softmax導致GPU硬件的顯著減速。 為了最小化額外的延遲成本,作者進一步提出了一種快速融合方法。
③ Fast normalized fusion
同樣,每個歸一化權重的值也在0到1之間,但由於這里沒有Softmax操作,所以效率要高得多。ablation研究表明,這種快速融合方法與基於Softmax的融合具有非常相似的學習行為和准確性,但在GPU上運行速度高達30%(如下表6)。
Compound Scaling
backbone:
作者重用了EfficientNet-B0到B6的相同寬度/深度縮放系數,因此可以輕松地重用ImageNet預訓練的檢查點。
BiFPN network:作者將線性增加BiFPN深度(#layers),因為深度需要四舍五入為整數。對於BiFPN寬度(#channels),將BiFPN寬度指數增長,類似於EfficientNet。在值列表{1.2、1.25、1.3、1.35、1.4、1.45}上,並選擇最佳值1.35作為寬度尺度因子。BiFPN的寬度和深度通過以下公式縮放:
Box/class prediction network:
作者將它們的寬度固定為與BiFPN相同,但使用方程線性增加深度:
Input image resolution:
由於在BiFPN中使用了特征level3-7,所以輸入分辨率必須可分2^7=128,所以作者用方程線性地增加分辨率:
實踐 | 目前最快精度最高檢測框架(EfficientDet)


計算機視覺研究院主要涉及深度學習領域,主要致力於人臉檢測、人臉識別,多目標檢測、目標跟蹤、圖像分割等研究方向。研究院接下來會不斷分享最新的論文算法新框架,我們這次改革不同點就是,我們要着重” 研究 “。之后我們會針對相應領域分享實踐過程,讓大家真正體會 擺脫理論 的真實場景,培養愛動手編程愛動腦思考的習慣!

掃碼關注我們
公眾號 : 計算機視覺研究院
掃碼回復:efficientdet,獲取下載鏈接
