天天看點

【CV中的特征金字塔】五,Google Brain EfficientDet1. 前言2. 摘要3. 貢獻4. Bi-FPN的結構5. EfficientDet結構6. 實驗結果7. 結論8. 附錄9. 推薦閱讀

【CV中的特征金字塔】五,Google Brain EfficientDet1. 前言2. 摘要3. 貢獻4. Bi-FPN的結構5. EfficientDet結構6. 實驗結果7. 結論8. 附錄9. 推薦閱讀

在COCO資料集上實作了精度和運算量的最好Trade-Off

1. 前言

上周六解讀了Google Brain在2019年的大作EfficientNet,可以在這個連結找到:卷積神經網絡學習路線(二十二)| Google Brain EfficientNet。緊接着Google Brain又提出了這篇EfficientDet一舉重新整理MS COCO資料集的目标檢測精度,今天就一起來看看這篇論文的核心思想吧。論文原文見附錄,代碼實作官方沒開源,文後有一個别人複現的連結。

2. 摘要

模型的效率在計算機視覺中的地位越來越重要,這篇論文系統的研究了用于目标檢測的各種神經網絡結構設計選擇,并提出了提高效率的幾種關鍵優化方法。首先,論文提出了一個基于權重的雙向特征金字塔網絡(BiFPN)允許簡單快速的進行多尺度特征融合。其次,論文提出了一種複合尺度擴張方法,該方法可以統一地對所有的Backbone網絡,特征網絡和預測網絡的分辨率,深度和寬度進行縮放。基于這些優化,本文的新網絡被稱為EfficientDet。特别地,本文的EfficientDer-D7以52M的參數量和326B FLOPs的運算量在MS COCO資料集上實作了SOTA的51.0 mAP,比目前精度最高的檢測器mAP值高3個點,速度快4倍,且參數量少9.3倍。

3. 貢獻

EfficientDet是在EfficientNet的基礎上針對目标檢測任務提出的,它的貢獻可以總結為如下幾點:

  • 論文提出了新的多尺度特征金字塔結構BiFPN(Bi-directional feature pyramid network),即是在我們上次介紹到的【CV中的特征金字塔】四,CVPR 2018 PANet 的基礎上引入了橫向直連。
  • 論文還提出了weighted-BiFPN,即在不同scale的特征進行融合時引入注意力機制來對不同來源的特征進行權重調整(per-feature / per-channel / pei-pixel),然而,這個帶來的提升相比Bi-FPN來說是比較小的。
  • 仿造EfficientNet的複合縮放方法,對檢測網絡的各個部分進行複合縮放(輸入圖像大小,backbone的深度、寬度,BiFPN的深度(側向級聯層數),cls/reg head的深度)。同時由于檢測網絡中的變量更多,是以沒有使用grid search,而是基于經驗進行了實驗。

4. Bi-FPN的結構

如下圖所示,BiFPN在Simplifield 的基礎上增加了橫向直連。

【CV中的特征金字塔】五,Google Brain EfficientDet1. 前言2. 摘要3. 貢獻4. Bi-FPN的結構5. EfficientDet結構6. 實驗結果7. 結論8. 附錄9. 推薦閱讀

Figure2 BiFPN與其他的特征融合方法的比較

同時,作者觀察到以前的征融合方法對所有輸入特征一視同仁,在BiFPN中則引入了權重政策,下邊介紹論文提出來的權重政策,也可以看作一種Attention機制。具體來說特征融合方法可以分成以下幾種:

  • 無界融合。 公式可以表示為:,其中可以是一個标量(對每個特征而言),可以是一個向量(對每一個通道),也可以是一個多元Tensor(對沒有個像素)。
  • 基于Softmax的融合。 上面的融合方法缺點很明顯,即如果不對做限制容易導緻訓練不穩定,于是很自然的想到對每一個權重使用

    softmax

    。公式如下:
  • 快速限制融合。 在上面的融合中由于計算

    softmax

    比較慢,于是作者提出了快速的限制融合方法,公式如下:。為了保證weight大于0,在weight前使用ReLU激活函數。以Figure2中的第6層為例,公式如下:
【CV中的特征金字塔】五,Google Brain EfficientDet1. 前言2. 摘要3. 貢獻4. Bi-FPN的結構5. EfficientDet結構6. 實驗結果7. 結論8. 附錄9. 推薦閱讀

在上圖BiFPN結構中第6層中的權重特征融合

5. EfficientDet結構

5.1 EfficientDet 網絡結構

EfficientDet的網絡結構如Figure3所示,使用了EfficientNet和Bi-FPN,最後接上分類頭和回歸頭即可。

【CV中的特征金字塔】五,Google Brain EfficientDet1. 前言2. 摘要3. 貢獻4. Bi-FPN的結構5. EfficientDet結構6. 實驗結果7. 結論8. 附錄9. 推薦閱讀

EfficientDet網絡結構

5.2 模型複合擴張

模型複合擴張請讀一下之前對EfficientNet的解讀。論文将EfficientDet的模型複合擴張分成以下幾個部分。

  • 對于Backbone網絡。直接采用EfficientNet-B0 to B6中的複合系數,并采用 EfficientNet作為backbone。
  • 對于BiFPN 網絡:
【CV中的特征金字塔】五,Google Brain EfficientDet1. 前言2. 摘要3. 貢獻4. Bi-FPN的結構5. EfficientDet結構6. 實驗結果7. 結論8. 附錄9. 推薦閱讀

對于BiFPN network中width和depth的設定

  • 對于Box/class 預測網絡:
【CV中的特征金字塔】五,Google Brain EfficientDet1. 前言2. 摘要3. 貢獻4. Bi-FPN的結構5. EfficientDet結構6. 實驗結果7. 結論8. 附錄9. 推薦閱讀

對Box/class prediction network中的depth的設定

  • 對于輸入圖像的分辨率(必須是=的倍數):
【CV中的特征金字塔】五,Google Brain EfficientDet1. 前言2. 摘要3. 貢獻4. Bi-FPN的結構5. EfficientDet結構6. 實驗結果7. 結論8. 附錄9. 推薦閱讀

對于Input image resolution的設定

詳細的複合系數設定彙總到Table1中了。

【CV中的特征金字塔】五,Google Brain EfficientDet1. 前言2. 摘要3. 貢獻4. Bi-FPN的結構5. EfficientDet結構6. 實驗結果7. 結論8. 附錄9. 推薦閱讀

EfficientDet各個模型擴張複合系數表

6. 實驗結果

在MS COCO資料集上和其他流行的檢測網絡的詳細對比結果如Table2所示。

【CV中的特征金字塔】五,Google Brain EfficientDet1. 前言2. 摘要3. 貢獻4. Bi-FPN的結構5. EfficientDet結構6. 實驗結果7. 結論8. 附錄9. 推薦閱讀

EfficientDet在COCO的表現

模型大小和推理延遲的比較如Figure4所示。

【CV中的特征金字塔】五,Google Brain EfficientDet1. 前言2. 摘要3. 貢獻4. Bi-FPN的結構5. EfficientDet結構6. 實驗結果7. 結論8. 附錄9. 推薦閱讀

模型大小和推理延遲

不同特征融合方式的對比實驗結果如Table5所示。

【CV中的特征金字塔】五,Google Brain EfficientDet1. 前言2. 摘要3. 貢獻4. Bi-FPN的結構5. EfficientDet結構6. 實驗結果7. 結論8. 附錄9. 推薦閱讀

不同特征融合方式的對比實驗結果

【CV中的特征金字塔】五,Google Brain EfficientDet1. 前言2. 摘要3. 貢獻4. Bi-FPN的結構5. EfficientDet結構6. 實驗結果7. 結論8. 附錄9. 推薦閱讀

不同縮放方式的比較結果,本文複合融合是最強的

7. 結論

從結果看起來是非常牛逼的,不過具體用起來怎麼樣我們暫時也是不知道的,畢竟沒有開源。等開源之後,如果真的好用,将是對目标檢測領域的一個極大沖擊,很可能在工業界大展身手。

8. 附錄

  • 論文原文:https://arxiv.org/abs/1911.09070
  • 非官方複現:https://github.com/xuannianz/EfficientDet
  • 參考:https://zhuanlan.zhihu.com/p/96773680

9. 推薦閱讀

  • 【CV中的特征金字塔】一,工程價值極大的ASFF
  • 【CV中的特征金字塔】二,Feature Pyramid Network
  • 【CV中的特征金字塔】三,兩階段實時檢測網絡ThunderNet
  • 【CV中的特征金字塔】四,CVPR 2018 PANet

歡迎關注GiantPandaCV, 在這裡你将看到獨家的深度學習分享,堅持原創,每天分享我們學習到的新鮮知識。( • ̀ω•́ )✧