我扔掉FPN來做目標檢測,效果竟然這么強!YOLOF開源:你只需要看一層特征|CVPR2021

極市導讀
曠視科技&中科院對單階段目標檢測中的FPN進行了重思考,采用一級特征進行檢測替換復雜的特征金字塔來解決優(yōu)化問題,提出了YOLOF。該方法取得了與RetinaNet相當?shù)男阅芮彝评硭俣瓤?.5倍。>>加入極市CV技術(shù)交流群,走在計算機視覺的最前沿

paper: https://arxiv.org/abs/2103.09460
code: https://github.com/megvii-model/YOLOF
本文是曠視科技&中科院孫劍團隊在單階段目標檢測方面一次突破性的創(chuàng)新,它針對單階段目標檢測中的FPN(特征金字塔)進行了深入的分析并得出:FPN最重要的成分是分而治之的處理思路緩解了優(yōu)化難問題。針對FPN的多尺度特征、分而治之思想分別提出了Dilated編碼器提升特征感受野,Uniform Matching進行不同尺度目標框的匹配;結(jié)合所提兩種方案得到了本文的YOLOF,在COCO數(shù)據(jù)集上,所提方案取得了與RetinaNet相當?shù)男阅芮彝评硭俣瓤?.5倍;所提方法取得了與YOLOv4相當?shù)男阅芮彝评硭俣瓤?3%。
Abstract
本文對單階段目標檢測中的FPN進行了重思考并指出FPN的成功之處在于它對目標檢測優(yōu)化問題的分而治之解決思路而非多尺度特征融合。從優(yōu)化的角度出發(fā),作者引入了另一種方式替換復雜的特征金字塔來解決該優(yōu)化問題:從而可以僅僅采用一級特征進行檢測?;谒岷唵味行У慕鉀Q方案,作者提出了YOLOF(You Only Look One-level Feature)。
YOLOF有兩個關(guān)鍵性模塊:Dilated Encoder與Uniform Matching,它們對最終的檢測帶來了顯著的性能提升。COCO基準數(shù)據(jù)集的實驗表明了所提YOLOF的有效性,YOLOF取得與RetinaNet-FPN同等的性能,同時快2.5倍;無需transformer層,YOLOF僅需一級特征即可取得與DETR相當?shù)男阅?,同時訓練時間少7倍。以大小的圖像作為輸入,YOLOF取得了44.3mAP的指標且推理速度為60fps@2080Ti,它比YOLOv4快13%。
本文的貢獻主要包含以下幾點:
FPN的關(guān)鍵在于針對稠密目標檢測優(yōu)化問題的“分而治之”解決思路,而非多尺度特征融合; 提出了一種簡單而有效的無FPN的基線模型YOLOF,它包含兩個關(guān)鍵成分(Dilated Encoder與Uniform Matching)以減輕與FPN的性能差異; COCO數(shù)據(jù)集上的實驗證明了所提方法每個成分的重要性,相比RetinaNet,DETR以及YOLOv4,所提方法取得相當?shù)男阅芡瑫r具有更快的推理速度。
Introduction
本文主要針對單階段檢測器中的FPN的兩個重要因素進行了研究,作者以RetinaNet為基線,通過解耦多尺度特征融合、分而治之進行實驗設(shè)計。作者將FPN視作多輸入多輸出編碼器(MiMo,見下圖),它對骨干網(wǎng)絡(luò)的多尺度特征進行編碼并為后接的解碼器提供多尺度特征表達。

為進行更好的對比分析,作者設(shè)計了MiMo、SiMo、MiSo、SiSo等四種類型的解碼器,見上圖。令人驚艷的是:SiMo編碼器僅僅采用C5特征且不進行特征融合即可取得與MiMo編碼器相當?shù)男阅?/strong>,且性能差異小于1mAP。相反,MiSo編碼器的性能則出現(xiàn)了顯著下降。這個現(xiàn)象意味著:
C5包含了充分的用于檢測不同尺度目標的上下文信息,這促使SiMo編碼器可以取得與MiMo相當?shù)慕Y(jié)果; 多尺度特征融合帶來的收益要遠小于分而治之帶來的收益,因此多尺度特征融合可能并非FPN最重要的影響因素;相反,分而治之將不同尺度的目標檢測進行拆分處理,緩解了優(yōu)化問題。
Cost Analysis of MiMo Encoders
如前所述FPN的成功在于它對于優(yōu)化問題的解決思路,而非多尺度特征融合。為說明這一點,作者對FPN(即MiMo)進行了簡單的分析。

以RetinaNet-ResNet50為基線方案,作者將檢測任務(wù)的流水線分解為三個關(guān)鍵部分:骨干網(wǎng)絡(luò)、Encoder以及Decoder。下圖給出了不同部分的Flops對比,可以看到:
相比SiMoEncoder,MiMoEncoder帶來顯著的內(nèi)存負載問題(134G vs 6G); 基于MiMoEncoder的檢測器推理速度明顯要慢于SiSoEncoder檢測器(13FPS vs 34FPS); 這個推理速度的變慢主要是因為高分辨率特征部分的目標檢測導致,即C3特征部分。

基于上述分析,作者期望尋找另一種解決優(yōu)化問題的方案,且保持檢測器簡單、精確、快速。
Method
受上述目標驅(qū)動以及新發(fā)現(xiàn):C5特征包含足夠的信息進行大量目標檢測,作者嘗試用簡單的SiSoEncoder替換復雜的MiCoEncoder。但是,這種簡單的替換會帶來顯著性的性能下降(35.9mAP vs 23.7mAP),見上圖。對于這種情況 ,作者進行了仔細分析得出SiSoEncoder性能下降的兩個重要原因:
The range of scales matching to the C5 feature's receptive field is limited The imbalance problem on positive anchors
接下來,作者將針對這兩個問題進行討論并提出對應的解決方案。
Limited Scale Range
識別不同尺寸的目標是目標檢測的一個根本挑戰(zhàn)。一種常見的方案是采用多級特征。在MiMo與SiMoEncoder檢測器中,作者構(gòu)建了不同感受野的多級特征(C3-C7)并在匹配尺度上進行目標檢測。然而,單級特征破壞了上述游戲規(guī)則,在SiSoEncoder中僅有一個輸出特征。
以下圖(a)為例,C5特征感受野僅僅覆蓋有限的尺度范圍,當目標尺度與感受野尺度不匹配時就導致了檢測性能的下降。為使得SiSoEncoder可以檢測所有目標,作者需要尋找一種方案生成具有可變感受野的輸出特征,以補償多級特征的缺失。

在C5特征的基礎(chǔ)上,作者采用堆疊擴張卷積方式提升其感受野。盡管其覆蓋的尺度范圍可以在一定程度上擴大,但它仍無法覆蓋所有的目標尺度。以上圖(b)為例,相比圖(a),它的感受野尺度朝著更大尺度進行了整體的偏移。然后,作者對原始尺度范圍與擴大后尺度范圍通過相加方式進行組合,因此得到了覆蓋范圍更廣的輸出特征,見上圖(c)。

上圖給出了采用本文所提SiSoEncoder結(jié)構(gòu)示意圖,作者稱之為Dilated Encoder。它包含兩個主要成分:Prejector與Residual Block。投影層采用卷積,然后采用卷積提取上下文語義信息(作用類似FPN);然后堆疊四個不同擴張因子的殘差模塊以生成多感受野的輸出特征(覆蓋所有的目標尺度)。
Imbalance Problem on Positive Anchors
正錨點的定義對于目標檢測中的優(yōu)化問題尤其重要。在基于錨點的檢測方案中,正錨點的定義策略主要受錨點與真實box之間的IoU決定。在RetinaNet中,如果IoU大于0.5則錨點設(shè)為正。作者稱之為Max-IoU matching。
在MiMoEncoder中,錨點在多級特征上以稠密方式進行預定義,同時按照尺度生成特征級的正錨點。在分而治之的機制下,Max-IoU匹配使得每個尺度下的真實Box可以生成充分數(shù)量的正錨點。然而,當作者采用SiSoEncoder時,錨點的數(shù)量會大量的減少(比如從100K減少到5K),導致了稀疏錨點。稀疏錨點進一步導致了采用Max-IoU匹配時的不匹配問題。以下圖為例,大的目標框包含更多的正錨點,這就導致了正錨點的不平衡問題,進而導致了檢測器更多關(guān)注于大目標而忽視了小目標。

為解決上述正錨點不平衡問題,作者提出了Uniform Matching策略:對于每個目標框采用k近鄰錨點作為正錨點,這就確保了所有的目標框能夠以相同數(shù)量的正錨點進行均勻匹配。正錨點的平衡確保了所有的目標框都參與了訓練且貢獻相等。在實現(xiàn)方面,參考了Max-IoU匹配,作者對Uniform matching中的IoU閾值進行設(shè)置以忽略大IoU負錨點和小IoU正錨點。
YOLOF
基于上述解決方案呢,作者提出了一種快速而直接的單級特征檢測框架YOLOF,它由骨干網(wǎng)絡(luò)、Encoder以及Decoder構(gòu)成,整體結(jié)構(gòu)如下圖所示。

BackBone。在所有模型中,作者簡單的采用了ResNet與ResNeXt作為骨干網(wǎng)絡(luò),所有模型在ImageNet上與訓練,輸出C5特征該通道數(shù)為2048,下采樣倍率為32; Encoder。在這部分,作者參考FPN添加了兩個投影層,將通道數(shù)降到512,然后堆疊四個不同擴張因子的殘差模塊; Decoder。在這部分,作者采用了RetinaNet的主要設(shè)計思路,它包含兩個并行的任務(wù)相關(guān)的Head分別用于分類和回歸。作者僅僅添加兩個微小改動:(1) 參考DETR中的FFN設(shè)計讓兩個Head的卷積數(shù)量不同,回歸Head包含4個卷積而分類Head則僅包含兩個卷積;(2) 作者參考AutoAssign在回歸Head上對每個錨點添加了一個隱式目標預測。 Other Detail。正如前面所提到的YOLOF中的預定義錨點是稀疏的,這會導致目標框與錨點之間的匹配質(zhì)量下降。作者在圖像上添加了一個隨機移動操作以緩解該問題,同時作者發(fā)現(xiàn)這種移動對于最終的分類是有幫助的。
Experiments
為說明所提方案的有效性,作者在MS COC數(shù)據(jù)集上與RetinaNet、DETR、YOLOv4進行了對比。

上表給出了所提方法與RetineNet在COCO數(shù)據(jù)集上的性能對比。從中可以看到:
YOLOF取得了與改進版RetinaNet+相當?shù)男阅?,同時減少了57%的計算量,推理速度快了2.5倍; 當采用相同骨干網(wǎng)絡(luò)時,由于僅僅采用C5特征,YOLOF在小目標檢測方面要比RetinaNet+弱一些(低3.1);但在大目標檢測方面更優(yōu)(高3.3); 當YOLOF采用ResNeXt作為骨干網(wǎng)絡(luò)時,它可以取得與RetinaNet在小目標檢測方面相當?shù)男阅芮彝评硭俣韧瑯酉喈敗?/section> 經(jīng)由多尺度測試輔助,所提方法取得了47.1mAP的指標,且在小目標方面取得了極具競爭力的性能31.8mAP。

上圖給出了所提方法與DETR的性能對比。從中可以看到:
YOLOF取得了與DETR相匹配的的性能; 相比DETR,YOLOF可以從更深的網(wǎng)絡(luò)中收益更多,比如ResNet50時低0.4,在ResNet10時多了0.2; 在小目標檢測方面,YOLOF要優(yōu)于DETR;在大目標檢測方面,YOLOF要弱于DETR。 在收斂方面,YOLOF要比DETR快7倍,這使得YOLOF更適合于作為單級特征檢測器的基線。

最后,作者再來看一下所提方法與YOLOv4的性能對比(注:這里采用了與YOLOv4類似的數(shù)據(jù)增強方法,并采用了三階段訓練方案,同時對骨干網(wǎng)絡(luò)的最后階段進行了調(diào)整)。從上表作者可以看到:
YOLOF-DC5取得了比YOLOv4快13%的推理速度,且性能高0.8mAP; YOLOF-DC5在小目標檢測方面弱于YOLOv4,而在大目標檢測方面顯著優(yōu)于YOLOv4; 這也就意味著:單級檢測器具有極大的潛力獲得SOTA速度-精度均衡性能。
全文到此結(jié)束,更多消融實驗與分析建議各位同學查看原文。
推薦閱讀
2021-03-11
2021-03-16
2021-03-15

# 極市原創(chuàng)作者激勵計劃 #

