EfficientDet : 快又準(zhǔn),EfficientNet在目標(biāo)檢測(cè)領(lǐng)域的探索 | CVPR 2020
點(diǎn)擊上方“AI算法與圖像處理”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
來源:【曉飛的算法工程筆記】 公眾號(hào)
Google Brain出品,EfficientNet作者在目標(biāo)檢測(cè)領(lǐng)域的作品。EfficientDet基于EfficientNet,結(jié)合論文提出的輕量級(jí)的跨尺寸融合方法BiFPN以及定制的檢測(cè)版混合縮放方法,既保證高精度也保持了高性能,EfficientDet-D7達(dá)到了SOTA,51.0mAP。整體而言,論文推出的新檢測(cè)框架十分實(shí)用,期待作者的開源 ?
論文: EfficientDet: Scalable and Efficient Object Detection

論文地址:https://arxiv.org/abs/1911.09070
Introduction
? 目前目標(biāo)檢測(cè)領(lǐng)域,高精度的模型通常需要很大的參數(shù)量和計(jì)算量,而輕量級(jí)的網(wǎng)絡(luò)則一般都會(huì)犧牲精度。因此,論文希望建立一個(gè)可伸縮的高精度且高性能的檢測(cè)框架。論文基于one-stage的檢測(cè)網(wǎng)絡(luò)范式,進(jìn)行了多種主干網(wǎng)絡(luò)、特征融合和class/box預(yù)測(cè)的結(jié)構(gòu)嘗試,主要面臨兩個(gè)挑戰(zhàn):
高效多尺度特征融合(efficient multi-scale feature fusion)
? ?FPN是目前最廣泛的多尺度融合方法,最近也有PANet和NAS-FPN一類跨尺度特征融合方法。對(duì)于融合不同的特征,最初的方法都只是簡單地直接相加,然而由于不同的特征是不同的分辨率,對(duì)融合輸出特征的共享應(yīng)該是不相等的。為了解決這一問題,論文提出簡單但高效加權(quán)的bi-directional feature pyramid network(BiFPN),該方法使用可學(xué)習(xí)的權(quán)重來學(xué)習(xí)不同特征的重要性,同時(shí)反復(fù)地進(jìn)行top-down和bottom-up的多尺度融合
模型縮放(model scaling)
? 論文認(rèn)為除了縮放主干網(wǎng)絡(luò)和輸入圖片的分辨率,特征網(wǎng)絡(luò)(feature network)和box/class預(yù)測(cè)網(wǎng)絡(luò)的縮放對(duì)準(zhǔn)確率和性能也是很重要的。作者借鑒EfficientNet,提出針對(duì)檢測(cè)網(wǎng)絡(luò)的混合縮放方法(compound scaling method),同時(shí)對(duì)主干網(wǎng)絡(luò),特征網(wǎng)絡(luò)和box/class預(yù)測(cè)網(wǎng)絡(luò)的分辨率/深度/寬度進(jìn)行縮放

? 最后,論文將EfficientNet作為主干,結(jié)合BiFPN和混合縮放,提出新的檢測(cè)系列EfficientDet,精度高且輕量,COCO上的結(jié)果如圖1,論文的貢獻(xiàn)有以下3點(diǎn):
提出BiFPN,一個(gè)加權(quán)的雙向特征網(wǎng)絡(luò),能夠用以更快的多特征融合 提出新混合縮放方法,能同時(shí)規(guī)則地縮放主干網(wǎng)絡(luò)、特征網(wǎng)絡(luò)、box/class網(wǎng)絡(luò)和分辨率 基于BiFPN和混合縮放,提出新的檢測(cè)器系列EfficientDet,能夠在準(zhǔn)確率達(dá)到高精度的情況下結(jié)構(gòu)更加精簡
BiFPN

Problem Formulation
? 定義多尺寸特征,論文的目標(biāo)是找到變化函數(shù)來高效融合不同的特征,輸出新特征。具體地,圖2a展示了top-down FPN網(wǎng)絡(luò)結(jié)構(gòu),一般FPN只有一層,這里應(yīng)該為了對(duì)比寫了repeat形式。FPN獲取3-7層的輸入,代表一個(gè)分辨率為的特征層

? top-down FPN操作如上所示,為上采用或下采樣來對(duì)齊分辨率,通常是特征處理的卷積操作
Cross-Scale Connections
? top-down FPN受限于單向的信息流,為了解決這一問題,PANet(圖2b)增加了額外的bottom-up路徑的融合網(wǎng)絡(luò),NAS_FPN(圖2c)使用神經(jīng)架構(gòu)搜索來獲取更好的跨尺度特征網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),但需要大量資源進(jìn)行搜索。其中準(zhǔn)確率最高的是PANet,但是其需要太多的參數(shù)和計(jì)算量,為了提高性能,論文對(duì)跨尺寸連接做了幾點(diǎn)改進(jìn):
去除所有單輸入的節(jié)點(diǎn),原因很簡單,如果節(jié)點(diǎn)只有單輸入而不包含特征融合,對(duì)特征融合的貢獻(xiàn)是不夠,這樣也算得出一個(gè)簡化的PANet,如圖2e 將同層的輸入直接連接到輸出節(jié)點(diǎn),融合更多的節(jié)點(diǎn)而不帶來過多的消耗,得出圖2f結(jié)構(gòu) 不像PANet只包含一個(gè)top-down和bottom-up路徑,論文將此結(jié)構(gòu)作為層,并且重復(fù)多次從而融合出更高維度的特征,后面會(huì)細(xì)講
Weighted Feature Fusion
? 大多的特征融合方法都將輸入特征平等對(duì)待,而論文觀察到不同分辨率的輸入對(duì)融合輸出的特征的貢獻(xiàn)應(yīng)該是不同的。為了解決這一問題,論文提出在融合時(shí)對(duì)輸入特征添加額外的權(quán)重預(yù)測(cè),主要有以下方法:
Unbounded fusion
? ,是可學(xué)習(xí)的權(quán)重,可以是標(biāo)量(per-feature),也可以是向量(per-channel),或者是多維tensor(per-pixel)。論文發(fā)現(xiàn)標(biāo)量形式已經(jīng)足夠提高準(zhǔn)確率,且不增加計(jì)算量,但是由于標(biāo)量是無限制的,容易造成訓(xùn)練不穩(wěn)定,因此,要對(duì)其進(jìn)行歸一化限制
Softmax-based fusion
? ?,利用softmax來歸一化所有的權(quán)重,但softmax操作會(huì)導(dǎo)致GPU性能的下降,后面會(huì)詳細(xì)說明
Fast normalized fusion
? ,Relu保證,保證數(shù)值穩(wěn)定。這樣,歸一化的權(quán)重也落在,由于沒有softmax操作,效率更高,大約加速30%

? BiFPN集合了雙向跨尺寸的連接和快速歸一化融合,level 6的融合操作如上,為top-down路徑的中間特征,是bottom-up路徑的輸出特征,其它層的特征也是類似的構(gòu)造方法。為了進(jìn)一步提高效率,論文特征融合時(shí)采用depthwise spearable convolution,并在每個(gè)卷積后面添加batch normalization和activation
EfficientDet

EfficientDet Architecture
? EfficientDet的結(jié)構(gòu)如圖3所示,基于one-stage檢測(cè)器的范式,將ImageNet-pretrained的EfficientNet作為主干,BiFPN將主干的3-7層特征作為輸入,然后重復(fù)進(jìn)行top-down和bottom-up的雙向特征融合,所有層共享class和box網(wǎng)絡(luò)
Compound Scaling
? 之前檢測(cè)算法的縮放都是針對(duì)單一維度的,從EfficientNet得到啟發(fā),論文提出檢測(cè)網(wǎng)絡(luò)的新混合縮放方法,該方法使用混合因子來同時(shí)縮放主干網(wǎng)絡(luò)的寬度和深度、BiFPN網(wǎng)絡(luò)、class/box網(wǎng)絡(luò)和分辨率。由于縮放的維度過多,EfficientNet使用的網(wǎng)格搜索效率太慢,論文改用heuristic-based的縮放方法來同時(shí)縮放網(wǎng)絡(luò)的所有維度
Backbone network
? EfficientDet重復(fù)使用EfficientNet的寬度和深度因子,EfficinetNet-B0至EfficientNet-B6
BiFPN network

? 論文以指數(shù)形式來縮放BiFPN寬度(#channels),而以線性形式增加深度(#layers),因?yàn)樯疃刃枰拗圃谳^小的數(shù)字
Box/class prediction network

? box/class預(yù)測(cè)網(wǎng)絡(luò)的寬度固定與BiFPN的寬度一致,而用公式2線性增加深度(#layers)
Input image resolution

? 因?yàn)锽iFPN使用3-7層的特征,因此輸入圖片的分辨率必需能被整除,所以使用公式3線性增加分辨率
? 結(jié)合公式1-3和不同的,論文提出EfficientDet-D0到EfficientDet-D6,具體參數(shù)如Table 1,EfficientDet-D7沒有使用,而是在D6的基礎(chǔ)上增大輸入分辨率
Experiments
? 模型訓(xùn)練使用momentum=0.9和weight decay=4e-5的SGD優(yōu)化器,在初始的5%warm up階段,學(xué)習(xí)率線性從0增加到0.008,之后使用余弦衰減規(guī)律(cosine decay rule)下降,每個(gè)卷積后面都添加Batch normalization,batch norm decay=0.997,epsilon=1e-4,梯度使用指數(shù)滑動(dòng)平均,decay=0.9998,采用和的focal loss,bbox的長寬比為,32塊GPU,batch size=128,D0-D4采用RetinaNet的預(yù)處理方法,D5-D7采用NAS-FPN的增強(qiáng)方法

? Table 2展示了EfficientDet與其它算法的對(duì)比結(jié)果,EfficientDet準(zhǔn)確率更高且性能更好。在低準(zhǔn)確率區(qū)域,Efficient-D0跟YOLOv3的相同準(zhǔn)確率但是只用了1/28的計(jì)算量。而與RetianaNet和Mask-RCNN對(duì)比,相同的準(zhǔn)確率只使用了1/8參數(shù)和1/25的計(jì)算量。在高準(zhǔn)確率區(qū)域,EfficientDet-D7達(dá)到了51.0mAP,比NAS-FPN少使用4x參數(shù)量和9.3x計(jì)算量,而anchor也僅使用3x3,非9x9

? 論文在實(shí)際的機(jī)器上對(duì)模型的推理速度進(jìn)行了對(duì)比,結(jié)果如圖4所示,EfficientDet在GPU和CPU上分別有3.2x和8.1x加速
Ablation Study
Disentangling Backbone and BiFPN

? 論文對(duì)主干網(wǎng)絡(luò)和BiFPN的具體貢獻(xiàn)進(jìn)行了實(shí)驗(yàn)對(duì)比,結(jié)果表明主干網(wǎng)絡(luò)和BiFPN都是很重要的。這里要注意的是,第一個(gè)模型應(yīng)該是RetinaNet-R50(640),第二和第三個(gè)模型應(yīng)該是896輸入,所以準(zhǔn)確率的提升有一部分是這個(gè)原因。另外使用BiFPN后模型精簡了很多,主要得益于channel的降低,F(xiàn)PN的channel都是256和512的,而BiFPN只使用160維,這里應(yīng)該沒有repeat
BiFPN Cross-Scale Connections

? Table 4展示了Figure 2中同一網(wǎng)絡(luò)使用不同跨尺寸連接的準(zhǔn)確率和復(fù)雜度,BiFPN在準(zhǔn)確率和復(fù)雜度上都是相當(dāng)不錯(cuò)的
Softmax vs Fast Normalized Fusion

? Table 5展示了不同model size下兩種加權(quán)方法的對(duì)比,在精度損失不大的情況下,論文提出的fast normalized fusion能提升26%-31%的速度

? figure 5展示了兩種方法在訓(xùn)練時(shí)的權(quán)重變化過程,fast normalizaed fusion的變化過程與softmax方法十分相似。另外,可以看到權(quán)重的變化十分快速,這證明不同的特征的確貢獻(xiàn)是不同的,
Compound Scaling

? 論文對(duì)比了混合縮放方法與其它方法,盡管開始的時(shí)候相差不多,但是隨著模型的增大,混合精度的作用越來越明顯
CONCLUSION
? ?論文提出BiFPN這一輕量級(jí)的跨尺寸FPN以及定制的檢測(cè)版混合縮放方法,基于這些優(yōu)化,推出了EfficientDet系列算法,既保持高精度也保持了高性能,EfficientDet-D7達(dá)到了SOTA。整體而言,論文的idea基于之前的EfficientNet,創(chuàng)新點(diǎn)可能沒有之前那么驚艷,但是從實(shí)驗(yàn)來看,論文推出的新檢測(cè)框架十分實(shí)用,期待作者的開源
?
個(gè)人微信(如果沒有備注不拉群!) 請(qǐng)注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱

