論文閱讀【EfficientDet】


在這裏插入圖片描述

前言

EfficientDet結構
論文:https://arxiv.org/abs/1911.09070
官方代碼:https://github.com/google/automl/tree/master/efficientdet
在這裏插入圖片描述
先吐槽一下CV方面論文的套路,新出一篇paper:
未看paper前:
被測試結果 state-of -art 吸引,心中默默感嘆還是這篇厲害嘍,,,

看完後:
idea不錯,改進還是有的,不過是在老方法上,看看對比網絡的評價,咦!怎麼好幾個最優網絡都沒有呀,比不過的我們還是不比了,我們用下擅長的方面對比下嘍(沒有對比,FCOS,CenterNet,EfficientDet BFLOPs巨大)。

創新點

EfficientDet改進主要是借鑑了RetinaNet網絡,是一種Anchor-base的one stage目標檢測方法。

參考:RetinaNet網絡結構
在這裏插入圖片描述
是不是感覺很像,EfficientDet網絡將ResNet替換成連續的卷積降採樣層,然後將FPN替換成BIFPN(就是改變原有FPN的連接關係,參考 FPN詳解),最後將feature map 連接一個分類子網絡,一個box迴歸網絡。
總結如下:

  1. 提出BiFPN子網絡結構,雙向的多尺度特徵融合網絡。
  2. 提出一種擴展網絡的方法,就是擴展backbone,BiFPN,box net 和class net,具體包括網絡層數,輸入尺寸,深度。
  3. 由上面的1,2點,結合得到了EfficientDet一系列網絡。

網絡結構

BiFPN

在這裏插入圖片描述
這張圖中(a)p3-p7表示卷積層由淺-------》深,每層卷積後輸出的特徵圖,當然啦,尺寸一次由大------》小, p7層的輸出特徵圖最小,先上採樣後與P6輸出特徵圖融合,再卷積,這裏橫向卷積2次,向下傳遞雙通道方向相同。

雙向傳遞的2種方式:

自頂向下

採用上採樣(upsampling)進行,而橫向連接則是將上採樣的結果和自底向上生成的相同大小的feature map進行融合(merge)。在融合之後還會再採用3*3的卷積覈對每個融合結果進行卷積,目的是消除上採樣的混疊效應(aliasing effect)。並假設生成的feature map結果是P2,P3,P4,P5,和原來自底向上的卷積結果C2,C3,C4,C5一一對應。

自底向上

網絡的前向過程。在前向過程中,feature map的大小在經過某些層後會改變,而在經過其他一些層(bn,relu等)的時候不會改變,作者將不改變feature map大小的層歸爲一個stage,因此每次抽取的特徵都是每個stage的最後一個層輸出,這樣就能構成特徵金字塔。
看完上面的2種傳遞方式,(b----e)依次類推。。。。。

主要看下圖(F):
在這裏插入圖片描述
上圖中P6in=P6P_{6in}=P_{6}, 結合下面的公式,此處的輸出是中間一層的輸出P6out1P6_{out1}
在這裏插入圖片描述

P6out2P6_{out2}採用下面公式:

在這裏插入圖片描述
P6tdP6_{td}就是加了權重的P6out1P6_{out1}, 此處的P6outP6_{out}是最後層的輸出P6out2P6_{out2}.

BIFPN特徵圖權重

上面最後的圖出現的W1,W2,指的是特徵圖對應得一組權重(可以是標量,向量,作者沒有提怎麼來的,需要看源碼)IiI_{i}代表是FPN的特徵圖值。

作者說傳統的算法對網絡最後的輸出向量採用Softmax加權得到:
在這裏插入圖片描述
但這裏指數運算比較耗費資源和時間,換個簡單的快速規範化融合方法(Fast normalized fusion)
在這裏插入圖片描述
ϵ=0.0001{\epsilon }=0.0001是爲了避免分母不爲0.

EfficientDet Architecture

EfficientDet 系列網絡可以用下面2個圖放一起總結,D0D7D_{0}-D_{7} 一共8個網絡,定義個ϕ\phi表示第幾個網絡的序號,ϕ=0\phi=0就是D0D_{0}, 依次類推。。。

  1. input: 首先input可以調整,只要是512+ϕ128512+\phi*128
  2. EfficientNet Backbone: 這個是固定的,作者說了這個是ImageNet上預訓練的模型,不方便改
  3. BiFPN: 這個子網絡可以改,網絡的層數爲ϕ+2\phi+2,通道數是641.35ϕ64*1.35^{\phi},這裏641.351=8664*1.35^{1}=86 比88差了一點,好像每層都差了一點點耶
  4. Box/class prediction network : 這兩個子網絡的層數相等爲3+[ϕ/3]3+[\phi/3]向下取整
  5. 然後就沒了,loss的定義採用focal Loss,最後也是Anchor-base的一種one stage目標檢測方法

在這裏插入圖片描述


實驗結果

EfficientDet-D7在MS COCO數據集上的MAP表現確實很驚人,達到了51.0,但是單次浮點計算量千億次爲326BFLOPS,(BFLOPS,即Billion FLOPS,十億FLOPS,參考 FLOPS計算

EfficientDet-D0D_{0}與YOLO v3 相比,同樣差不多的MAP,EfficientDet-D0D_{0}的BFLOPS是2.5, YOLO v3是71,相差28倍。 下圖的X是倍數的意思,以EfficientDet-D0D_{0}的所有參數爲基準的倍率。
在這裏插入圖片描述
後面作者列出了幾張關於以下參數的對比實驗,不太重要,在此不一一列出。

1.參數量,GPU消耗,
2.powerful backbone and BiFPN
3.Softmax VS fast normalized feature fusion


總結:
1.從實際應用價值考慮,EfficientDet D0-D4比YOLO v3 的MAP好一點,速度論文沒寫看不出來。
2,現在流行anchor-free,anchor-base的方法對遮擋問題的解決效果不好。
3. EfficientDet 的訓練時間肯定不如輕量級的 fcos-mobilenet和yolo-tiny模型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章