谷歌大腦發佈的高效高精度物體檢測器。收錄於CVPR 2020。
安利一個大佬的復現代碼(zylo117復現Torch版本)
1. Introduction
現有的SOTA物體檢測算法通常無法兼顧效率和精度,複雜的模型需要較大的計算量,而簡單模型又會損失檢測精度。因此,本文提出了一種簡單且有效率的加權雙向特徵金字塔網絡(BiFPN),實現跨尺度的特徵融合。同時,我們提出了一種聯合縮放方法,可以對主幹網絡、BiFPN、迴歸/分類網絡及輸入圖片分辨率進行縮放。將聯合縮放和BiFPN與EffcientNet結合,我們設計了一種全新的目標檢測器EfficientDet。該方法在物體檢測和分割任務上可以使用較少的參數和FLOPS得到SOTA的性能。
2. Methods
文章的主要貢獻包括:(1)BiFPN。傳統的方法只是將不同尺度的特徵圖進行相加,但是不同的特徵圖是從不同分辨率的圖像中得到的,因此應當賦予不同的權重。爲了解決上述問題,作者提出了一種雙向加權的FPN,BiFPN通過引入一個可學習的加權值,達到跨尺度的特徵融合。(2)Compound scaling,通過相關係數同時控制主體網絡、特徵網絡、迴歸/分類網絡及輸入圖片的尺寸。作者認爲上述參數尺寸都會影響檢測器的精度。(3)結合EfficientNet、BiFPN及Compound Scaling,作者提出了EfficientDet,可以使用較少的參數量和FLOPS得到較高的性能。
2.1 BiFPN
傳統的FPN只有一條自上而下的通路,沒有實現雙向信息流;PANet又引入了一條自下而上的通路;NAS-FPN使用了網絡結構搜索,對算力的要求較高。對比這三種方法可知,PANet可以得到最好的性能,但是需要更多的參數。作者提出了BiFPN提升PANet的效率,BiFPN網絡結構如圖所示。方法主要包括:(1)去掉了只有一個輸入的點,作者認爲僅有一個輸入的點對於特徵融合的影響不大;(2)同層節點之間的short-cut,同層的輸入到輸出之間多了一條邊,這樣可以在不增加成本的情況下融合更多的特徵;(3)FPN塊堆疊,將每個雙向FPN作爲一個Block,算法多次重複該Block以實現更多高階特徵融合。
作者還對比了三種不同的融合方法。無邊界的融合容易造成訓練的不穩定;Softmax-based融合會引入Softmax計算。因此,作者提出了快速歸一化加權融合,對於圖(d)中的兩層節點的加權融合公式如式:
2.2 Compound Scaling
聯合縮放方法通過聯合係數同時控制主體網絡、BiFPN網絡、迴歸/分類網絡及圖片輸入尺寸的縮放。縮放程度如圖所示。
(1) BiFPN
式中,是BiFPN的通道數,而是BiFPN層數。
(2) 分類/迴歸網絡
寬度保持不變,但是層數通過下式定義:
(3) 輸入尺寸
2.3 EfficientDet
 EfficientDet網絡結構如圖所示。
3. Performance
4. Q & A
問題主要來源是cosmoshnight的提問 EfficientDet論文解讀
1. 網絡的權重是如何定義的,特徵圖融合後作爲分類/迴歸網絡時,融合的權重考慮了嗎?
答:網絡的權重是通過定義全連接層的方式實現的。特徵圖通過融合之後再進入分類/迴歸網絡,這是在前向過程中對權重的考慮。同時,這個權重是網絡可學習的參數,當有分類/迴歸Loss回傳的時候,這是反向過程對權重的考慮。
2. 分類/迴歸網絡結構是怎樣的,它們相同嗎?
答:從代碼上看,二者網絡結構大體相同,通過卷積神經網絡進行操作,不過輸出向量不相同。