You Only Look One-level Feature


你只需要看一個層次的特征

摘要本文回顧了單階段檢測器的特征金字塔網絡(FPN),指出FPN的成功在於其對目標檢測優化問題的分治解決,而不是多尺度特征融合。從優化的角度來看,我們引入了一種替代的方法來解決這個問題,而不是采用復雜的特征金字塔,這個方法就是利用一個層次的特征進行檢測。在簡單有效的基礎上,提出了You Only Look One-level Feature (YOLOF)。在我們的方法中,提出了兩個關鍵組件,膨脹編碼器和均勻匹配,並帶來了相當大的改進。在COCO基准上的大量實驗證明了所提模型的有效性。我們的YOLOF與它的特征金字塔對應的RetinaNet取得了相當的結果,而且速度快2.5倍。在沒有transformer層的情況下,YOLOF可以以單級特征方式匹配DETR的性能,訓練迭代次數少於7。在608 × 608的圖像尺寸下,YOLOF2080Ti上以60fps的速度實現了44.3 mAP,比YOLOv413%。代碼可在https://github.com/megvii-model/YOLOF獲得。

 

1.引言

   在最先進的兩級檢測器[22,13,3]和一級檢測器[23,38]中,特征金字塔成為一個重要組成部分。構建特征金字塔最常用的方法是特征金字塔網絡(FPN)[22],其主要帶來兩個好處:(1)多尺度特征融合:融合多個低分辨率和高分辨率特征輸入,獲得更好的表征;(2)分治法:對不同層次的目標進行檢測與目標尺度有關。人們普遍認為FPN的成功依賴於多層特征的融合,由此引出了一系列人工設計復雜融合方法的研究[25,17,28],或通過神經結構搜索(Neural Architecture Search, NAS)算法[9,37]。然而,這種忽略了分治法在FPN中的作用。這導致關於   這兩種益處如何促進FPN成功的研究較少,並可能阻礙新的進展。

   本文研究了FPN的兩大優點對單級探測器的影響。我們通過將多尺度特征融合和分治功能與RetinaNet[23]解耦設計實驗。詳細地說,我們認為FPN是一種多入多出(MiMo)編碼器,它編碼來自主干網的多尺度特征,並為解碼器(檢測頭)提供特征表示。我們在圖1對多入多出(MiMo)、單入多出(SiMo)、多入單出(MiSo)和單入單出(SiSo)進行對比。令人驚訝的是,只有一個輸入特征C5且沒有進行特征融合的SiMo編碼器可以達到與MiMo編碼器(FPN)相當的性能。性能差距小於1 mAP。相比之下,MiSoSiSo編碼器的性能顯著下降(12 mAP)。這些現象表明了兩個事實:(1)C5特征攜帶了足夠的上下文來檢測各種尺度上的對象,這使SiMo編碼器能夠獲得可比的結果;(2)多尺度特征融合的效益遠不如分治的效益重要,多尺度特征融合可能不是FPN的最大效益,ExFuse[50]在語義分割方面也證明了這一點。再深入一點,分治法與目標檢測中的優化問題有關。它將復雜的檢測問題按目標尺度划分為若干個子問題,便於優化過程。

 

1所示比較在COCO驗證集上多入多出(MiMo)、單入多出(SiMo)、多入單出(MiSo)和單入單出(SiSo)編碼器之間的框AP。這里,我們采用原始的RetinaNet[23]作為我們的基線模型,其中C3, C4, C5表示骨干輸出特征,下采樣率為{8,16,32}P3 ~ P7表示用於最終檢測的特征級別。圖中報告的所有結果都使用相同的主干ResNet-50[14]MiMo的結構與RetinaNet[23]中的FPN相同。所有編碼器的結構的詳細說明見圖8

   上述分析表明,FPN成功的根本因素是它解決了目標檢測中的優化問題。分治法是一種好方法。但是它帶來了內存負擔,減慢了探測器的速度,使像RetinaNet[23]這樣的一級探測器的探測器結構變得復雜。鑒於C5特性攜帶了足夠的檢測上下文,我們展示了一種簡單的方法來解決優化問題。

   我們提出You Only Look one -level Feature (YOLOF),它只使用一個C5特征(下采樣率為32)進行檢測。為了彌補SiSo編碼器和MiMo編碼器之間的性能差距,我們首先設計了適當的編碼器結構,以提取不同尺度上的目標的多尺度上下文,彌補多尺度特征的不足;然后,我們采用統一匹配機制來解決稀疏錨點在單一特征中引起的正錨點不平衡問題。

   沒有鈴聲和哨子,YOLOF實現了與它的特征金字塔對應的RetinaNet[23]相當的結果,但快2.5倍。在單一的特征方式下,YOLOF匹配了最近提出的DETR[4]的性能,同時收斂速度更快(7×)。利用608×608的圖片大小和其他技術[1,47],在2080Ti上實現44.3 mAP,以60幀每秒的速度運行,比YOLOv4[1]13%。簡而言之,本文的貢獻是:

1)我們證明了FPN最顯著的優點是它的分治解決優化問題的密集目標檢測,而不是多尺度特征融合

2)我們提出了YOLOF,這是一個簡單而有效的基線,不使用FPNYOLOF,我們提出了兩個關鍵組件,膨脹編碼器和統一匹配,彌合了SiSo編碼器和MiMo編碼器之間的性能差距。

3)COCO基准的大量實驗表明了各構件的重要性。此外,我們還與RetinaNet[23]DETR[4]YOLOv4[1]進行了比較。我們可以在gpu上用更快的速度實現類似的結果。

 

2.相關工作

   多層次特征檢測器。利用多特征進行目標檢測是一種傳統的方法。構造多特征的典型方法可以分為圖像金字塔法和特征金字塔法。在前深度學習時代,基於圖像金字塔的檢測器(DPM[8])占據了檢測的主導地位。在基於CNN的檢測器中,圖像金字塔方法也獲得了一些研究人員的好評[34,35],因為它可以實現更高的性能開箱即用。然而,圖像金字塔法並不是獲取多種特征的唯一方法;CNN模型中,利用特征金字塔的能力是更加有效和自然的。SSD[26]首先利用多尺度特征,針對不同尺度的對象在每個尺度上進行目標檢測。FPN[22]遵循SSD[26]UNet[33],結合淺層特征和深層特征構建語義豐富的特征金字塔。在此之后,一些工作[17,25,9,37]遵循FPN,關注如何獲得更好的表示。FPN成為現代探測器的重要組成部分。它也適用於流行的一級探測器,如RetinaNet[23]FCOS[38]和它們的變體[48]。另一種獲取特征金字塔的方法是利用多分支擴張卷積[20]。與上述工作不同的是,我們的方法是一個單層的特征檢測器。

   單一特征的探測器。早期的R-CNN系列[11,10,31]R-FCN[6]只在單個特征上提取RoI特征,其性能落后於多特征檢測器[22]。此外,在一級檢測器中,YOLO[29]YOLOv2[30]只使用骨干的最后一個輸出特征。它們可以非常快,但在檢測時必須承受性能下降。CornerNet[19]CenterNet[51,7]遵循這種方式,並在使用一個降采樣率為4的單一特征來檢測所有目標時獲得競爭結果。使用高分辨率特征圖進行檢測會帶來巨大的內存成本,並且對部署不友好。最近,DETR[4]引入了transformer[39]來檢測,並表明它只使用一個C5特性就可以達到最先進的結果。由於完全無錨機制和transformer學習階段,DETR需要長時間訓練才能收斂。由於長時間訓練的特點,進一步改進非常繁瑣。與這些論文不同的是,我們研究了多級檢測的工作機制。從優化的角度出發,為廣泛應用的FPN提供了一種替代方案。此外,YOLOF收斂速度更快,具有良好的性能;因此,YOLOF可以作為快速、准確檢測的簡單基線。

 

 3.MiMo編碼器的成本分析

   如第1節所述,FPN在密集目標檢測中的成功在於它解決了優化問題。然而,多級特征范式不可避免地會使檢測器變得復雜,帶來內存負擔,並使檢測器速度變慢。在本節中,我們對MiMo編碼器的成本進行了定量研究。

   我們設計了基於RetinaNetResNet-50[14]的實驗。具體地說,我們將檢測任務的管道格式化為三個關鍵部分的組合:骨干網絡、編碼器和解碼器(2)。在這個視圖中,我們在圖3中顯示了每個組件的FLOPs。與SiSo編碼器相比,MiMo編碼器給編碼器和解碼器帶來了巨大的內存負擔(134G vs. 6G)(3)攜帶MiMo編碼器的檢測器比SiSo運行慢得多(13 FPS34 FPS)(3)。速度慢是由於檢測對象檢測器的高分辨率特征圖譜與MiMo編碼器,C3特性(下采樣率為8)。鑒於上述缺點的MiMo編碼器,我們的目的是在保持檢測器簡單、准確和快速的同時,尋找另一種方法來解決優化問題。

 

2:檢測管道的圖解。在本文中,我們將檢測管道分為三部分:(1)骨干;(2)編碼器,其接收來自主干網的輸入並分發表征以進行檢測;(3)解碼器,執行分類和回歸任務,生成最終的預測框。編碼器的顏色與圖1中的顏色相對應。

 

3:對采用MiMoSiSo編碼器的模型進行了FLOPs、精度和速度的比較。由於譯碼器的FLOPs受到編碼器輸出的影響,為了更好地理解編碼器對FLOPs的影響,我們將編碼器的FLOPs和譯碼器的FLOPs疊加在圖中。所有模型使用相同的骨干ResNet-50。在COCO val2017的前100張圖片中,所有的FLOPs都采用了較短的邊緣尺寸800FPS是根據Detectron2[42]中報告的總推斷純計算時間在2080Ti上以批量大小為1計算的。在圖中,C表示模型的編碼器和解碼器中使用的通道數。

 

4.思想

   基於上述目的,以及發現C5特性包含足夠的上下文來檢測眾多對象,我們在本節中嘗試用簡單的SiSo編碼器來替代復雜的MiMo編碼器。但是這種替換並不簡單,因為根據圖3中的結果,當應用SiSo編碼器時,性能會大幅下降。在這種情況下,我們仔細分析了阻礙SiSo編碼器MiMo編碼器獲得相當性能的原因。我們發現SiSo編碼器帶來的兩個問題是導致性能下降的原因。第一個問題是與C5特征的接受域匹配的尺度范圍有限,這阻礙了對不同尺度目標的檢測性能。二是單級特征中稀疏錨點引起的正錨點不平衡問題。接下來,我們將對這兩個問題進行詳細的討論並給出我們的解決方案。

 

4.1 限制尺度范圍

   在不同的尺度下識別目標是目標檢測的一個基本挑戰。一個可行的解決方案是利用多級特性。在采用MiMoSiMo編碼器的探測器中,它們利用不同的接受域(P3-P7)構建多層次特征,並在接受域與其尺度匹配的水平上檢測物體。然而,單一級別的功能設置改變了游戲。在SiSo編碼器中只有一個輸出特性,它的接收域是一個常量。如圖4a)所示,C5功能的感受域只能覆蓋一個有限的范圍,如果物體的尺度與感受域不匹配,就會導致表現不佳。為了實現用SiSo編碼器檢測所有對象的目標,我們必須找到一種方法來生成具有不同接受域的輸出特征,以彌補多層特征的不足。

 

4:一個簡單的例子,演示了對象尺度和單個特性覆蓋的尺度范圍之間的關系。圖中的軸表示刻度。(a)表示特征的接受域只能覆蓋有限的范圍;(b)表明放大的比例尺范圍使特征能夠覆蓋大的目標,而沒有覆蓋小的目標;(c)表示所有量表都可以覆蓋有多個接受域的特征。

   我們首先通過堆疊標准卷積和擴張卷積[45]來擴大C5功能的接受域。覆蓋的尺度范圍雖然有所擴大,但仍不能覆蓋所有對象的尺度,因為擴大過程將大於1的因子乘以原來覆蓋的所有尺度。我們舉例說明圖4(b)的情況,整個標度范圍比圖4(a)的更大。然后,通過添加相應的特征,將原尺度范圍和擴大的尺度范圍相結合,得到一個包含多個接受域的輸出特征,覆蓋所有對象尺度(4(c))。通過在中間3 × 3卷積層上構造膨脹的殘差塊[14],可以很容易地實現上述操作。

擴張型編碼器:基於上述設計,我們提出了圖5中的SiSo編碼器,命名為擴張型編碼器。它包含兩個主要組件:投影儀和剩余塊。投影層首先應用一個1 × 1卷積層來降低信道維數,然后添加一個3×3卷積層來細化語義上下文,這與FPN[22]相同。然后,我們在3 × 3卷積層中逐次疊加4個不同膨脹率的膨脹殘塊,生成具有多個接受域的輸出特征,覆蓋所有對象的尺度。

 

5:放大編碼器的結構說明。其中1×13×31×13×3卷積層,×4為連續四個殘塊。在殘差塊中,所有的卷積層后面都有一個批范層[15]和一個ReLU[27],而在投影儀中,我們只使用卷積層和批范層[15]

討論:擴張卷積[45]是在目標檢測中擴大特征接收場的常用策略。如第2節所述,TridentNet[20]使用擴展卷積來生成多尺度特征。通過多分支結構和權值共享機制實現目標檢測中的尺度變化問題,有別於我們的單級特征設置。此外,擴展編碼器堆棧逐個擴展剩余塊而不共享權值。雖然DetNet[21]也陸續應用了膨脹殘塊,但其目的是保持特征的空間分辨率,並在主干輸出中保留更多的細節,而我們的目的是在主干之外生成具有多個接受域的特征。膨脹編碼器的設計使我們可以檢測所有對象的單一層次的特征,而不是多層次的特征,如TridentNet[20]DetNet[21]

 

4.2 正錨框的不平衡問題

   正錨的定義是目標檢測優化問題的關鍵。在基於錨點的檢測器中,定義陽性的策略主要是通過測量錨點和ground-truth boxes之間的IoUs。在視網膜網絡[23]中,如果anchorgroundtruth boxmax IoU大於閾值0.5,則將該anchor設置為正。我們稱之為最大匹配。

   在MiMo編碼器中,錨點以密集鋪裝的方式預先定義在多個層次上,ground-truth box在特征層次上生成與其尺度相對應的正錨點。基於分治機制,Max-IoU匹配可以使每個尺度的ground-truth box產生足夠數量的正錨。然而,當我們采用SiSo編碼器時,錨點數量比MiMo編碼器中錨點數量大大減少,從100k減少到5k,導致了稀疏錨點1。在使用Max-IoU匹配時,稀疏錨點給檢測器帶來了匹配問題,如圖6所示。在自然界中,大的地物箱比小地物箱誘導更多的正錨,這導致了正錨不平衡的問題。這種不平衡使得探測器在訓練時只注意大的ground-truth boxes而忽略了小的ground-truth boxes

 

6:生成的正錨點在單一特征的各種匹配方法中的分布。此圖旨在顯示產生的正錨的平衡性。Max-IoU中的正錨被大型的ground-truth box所主導,導致了物體尺度上的巨大不平衡。ATSS通過在訓練時自適應抽取正錨來緩解不平衡問題。Top1Ours采用統一匹配,以平衡的方式產生積極的錨點,無論大小物體。

均勻匹配:為了解決正錨不平衡的問題,我們提出了均勻匹配策略:采用k最近的錨作為每個真實積極的錨箱,確保所有groundtruth盒子可以與相同數量的積極錨均勻不管他們的大小(6)。平衡真實積極確保所有樣品盒參與培訓和同樣的貢獻。此外,在Max-IoU匹配[23]之后,我們在均勻匹配中設置IoU閾值,忽略大IoU(>0.7)的負錨和小IoU(<0.15)的正錨。

討論:與其他匹配方法的關系。在匹配過程中應用topk並不是什么新鮮事。TSS[48]首先在L個特征層次上為每個ground-truth box選擇topk錨點,然后通過動態IoU閾值在k × L個候選對象中抽取正錨點。然而,A TSS側重於自適應地定義正樣本和負樣本,而我們的統一匹配側重於用稀疏錨點在正樣本上實現平衡。雖然以前的幾種方法在陽性樣本上實現了平衡,但它們的匹配過程並沒有針對這種不平衡問題設計。例如,YOLO[29]YOLOv2[30]ground-truth box與最匹配的cellanchor匹配;DETR[4][36]采用匈牙利算法[18]進行匹配。這些匹配方法可以被視為top1匹配,這是我們統一匹配的具體情況。更重要的是,統一的匹配和learning-to-match方法之間的區別是:learning-to-match方法,FreeAnchor[49]PAA[16],自適應顯示單獨的錨為陽性和陰性的學習狀態,而統一的匹配是固定的,不發展與培訓。針對SiSo設計中存在的錨點不平衡問題,提出了均勻匹配方法。圖6與表5e結果的對比說明了在SiSo編碼器平衡正樣本上的重要性。

 

4.3 YOLOF

   在上述解決方案的基礎上,我們提出了一個快速和簡單的框架單級特征,表示為YOLOF。我們將YOLOF格式化為三部分:骨干、編碼器和解碼器。YOLOF示意圖如圖9所示。在本節中,我們將簡要介紹YOLOF的主要組成部分。

骨干網絡。在所有的模型中,我們簡單地采用ResNet[14]ResNeXt[43]系列作為我們的骨干。所有模型都在ImageNet上進行預訓練。主干的輸出是C5 feature map,它有2048個通道,下采樣率為32。為了與其他探測器進行公平比較,骨干中的所有批規范層默認都是凍結的。

編碼器。對於編碼器(5),我們首先按照FPN,在主干后添加兩個投影層(一個1 × 1和一個3 × 3卷積),得到一個512通道的feature map。然后,為了使編碼器的輸出特征覆蓋各種尺度上的所有對象,我們提出添加殘差塊,殘差塊由三個連續卷積組成:1 × 1卷積對接收場進行信道減少,減少率為4;3 × 3卷積對接收場進行擴張性放大;最后1 × 1卷積恢復接收場的信道數。

譯碼器。對於解碼器,我們采用了retina et的主要設計,它由兩個並行的任務特定的頭組成:分類頭和回歸頭(9)。我們只增加了兩個小的修改。第一個是我們遵循DETR[4]FFN的設計,使兩個頭部的卷積層數不同。在回歸頭上有四個卷積,然后是批處理歸一化層和ReLU層,而在分類頭上只有兩個。第二,我們遵循Autoassign[52],並為回歸頭上的每個錨添加一個隱式對象預測(沒有直接監督)。所有預測的最終分類分數是通過將分類輸出與相應的隱式目標度相乘而產生的。

其他細節。如前所述,在YOLOF中預定義的錨點是稀疏的,降低了錨點與ground-truth box之間的匹配質量。我們在圖像上添加一個隨機移位操作來規避這個問題。該操作將圖像在左、右、上、下三個方向隨機移動,最大移動32個像素,目的是將噪聲注入到圖像中目標的位置,增加ground-truth box與高質量錨點匹配的概率。此外,我們發現在使用單一層次特征時,對錨點中心位移的限制也有助於最終的分類。我們增加了一個限制,所有錨點的中心位移應該小於32像素

 

1:RetinaNetCOCO2017驗證集上的比較。上面的部分顯示了視網膜網絡的結果。中間部分給出了改進的RetinaNet(“+”)的結果,即GIoU[32]GN[41]和隱式objectnessRetinaNet。最后一節展示了各種YOLOF模型的結果。表中以R101X101為后綴的模型表示使用ResNet-101[14]RetNeXt-101-64×4d[43]作為骨干。對於沒有后綴的,默認采用ResNet-50[14]。在最后兩行中,我們使用了多尺度訓練和測試技術(†表示多尺度訓練,傳統意味着多尺度測試),其設置跟隨HTC[5]。關於設置的更多細節可以在附錄中找到。在最后三列中,我們展示了模型的參數數量(#params)GFLOPs和推理速度。在COCO val2017的前100張圖片中,所有的FLOPs都采用了較短的邊緣尺寸800。此外,表中的FPS是根據Detectron2[42]中報告的總推斷純計算時間在2080Ti上以批大小1計算的。

 

5.實驗

   我們在MS COCO[24]基准上評估我們的YOLOF,並與RetinaNet[23]DETR[4]進行比較。然后,我們提供了詳細的燒蝕研究各部件的設計和定量的結果和分析。最后,為進一步研究單水平檢測,我們提供了誤差分析,並指出了與DETR[4]相比的不足之處。具體情況如下。

實現細節YOLOF8GPU上使用同步SGD進行訓練,每個小批總共64張圖像(每個GPU 8張圖像)。所有模型的初始學習率為0.12。此外,我們根據DETR[4]為骨干設置了一個更小的學習速率,即基礎學習速率的1/3。為了在一開始穩定訓練,我們將熱身迭代的次數從500次增加到1500次。對於訓練計划,隨着batch size的增加,YOLOF中的“1×”計划設置總共是22.5k次迭代,在15k20k次迭代中,基學習率下降了10。其他時間表根據detectron2[42]的原則進行調整。對於模型推理,我們使用閾值為0.6NMS對結果進行后處理。對於其他超參數,我們遵循視網膜網絡[23]的設置。

 

5.1 與之前工作比較

   RetinaNet比較:做一個公平的比較,我們使RetinaNetYOLOF采用廣義借據箱損失[32],添加一個隱式對象的預測和應用組標准化層[41]在正面(只有兩個圖片/ GPUBN[15]SyncBN[46]給貧窮導致RetinaNet2,我們用GN[41]代替BN[15])。結果如表1所示。所有的“1×”模型都以單一的比例進行訓練,短邊設置為800像素,長邊最多為1333[23]。在上面的部分,我們給出了用Detectron2[42]訓練的視網膜網絡基線結果。在中間部分,我們展示了改進的視網膜網絡基線的結果(帶“+),其設置與YOLOF對齊。在最后一節中,我們展示了來自多個YOLOF模型的結果。多虧了單級特性,YOLOFRetinaNet+取得了相同的結果,減少了57%的錯誤次數(如圖3所示),速度提高了2.5倍。由於C5特征的大步幅(32),在小物體上,YOLOF的性能(3.1)低於retina et+。然而,由於我們在編碼器中添加了膨脹的殘塊,YOLOF在大對象(+3.3)上取得了更好的性能。與ResNet-101[14]相比,RetinaNet+YOLOF也有相似的證據。雖然在小對象上應用相同的骨干網時,YOLOF不如RetinaNet+,但是在相同的運行速度下,它可以用更強的骨干網ResNeXt[43]來匹配小對象的性能。並證明了該方法與現有的目標檢測技術是兼容和互補的,在表1的最后兩行中,我們展示了使用多尺度圖像和更長的時間表進行訓練的結果。最后,在多尺度測試的幫助下,我們得到了我們的最終結果為47.1 mAP31.8 mAP在小目標上的競爭性能。

   DETR進行比較DETR[4]是最近提出的一種檢測器,它將變壓器[39]引入對象檢測。在COCO基准[24]上取得了令人驚訝的結果,並首次證明了僅采用一個C5特征,就可以達到與多級特征檢測器(Faster R-CNN w/ FPN[22])相當的結果。考慮到這一點,人們可能會期望,需要像變壓器層[39]這樣的層來實現單層特征檢測的有希望的結果。然而,我們證明了一個具有局部卷積層的傳統網絡也可以實現這一目標。我們在表2中比較了DETR與全局層、YOLOF與局部卷積層。研究結果表明,YOLOF匹配了DETR的性能,並且YOLOFDETR (w/ ResNet-50(0.4)vs. w/ ResNet-101(+0.2))從更深的網絡中獲得更多的收益。有趣的是,我們發現YOLOF在小對象(+1.9+2.4)上優於DETR,而在大對象(-3.5-2.9)上落后於DETR。這一發現與上述本地和全球的討論一致。更重要的是,與DETR相比,YOLOF收斂速度快得多(約為7×),這使得它比DETR更適合作為單級檢測器的簡單基線。

 

2:與DETRCOCO2017驗證集上的比較。我們對主干ResNet-50(無后綴)ResNet-101(有后綴R101)進行了比較。為公平比較,YOLOF采用多尺度訓練(同表1),訓練時間為“6×”,約為72 epoch。對於DETRFPS,∗意味着我們遵循原始論文[4]中的方法,並在2080Ti上重新測量它。

   YOLOv4進行比較YOLOv4[1]是一種速度和精度最佳的多級特征檢測器。它結合了許多技巧來達到最先進的結果。由於我們的目的是為單級檢測器建立一個簡單而快速的基線,對免費技巧包的調查超出了這項工作的范圍。因此,我們不期望對性能進行嚴格一致的比較。比較與YOLOv4 YOLOF,我們應用YOLOv4數據擴增方法,采用三相培訓管道,相應地修改培訓設置,添加相呼應的最后階段(3)YOLOF-DC5支柱。更多關於模型和訓練的技術細節設置在附錄中給出。如表3所示,YOLOF-DC5的運行速度比YOLOv413%,整體性能提高了0.8 mAPYOLOFDC5在小對象上的競爭結果低於YOLOv4 (24.0 mAP vs. 26.7 mAP),而在大對象上的性能則明顯優於YOLOv4 (+7.1 mAP)。上述結果表明,單電平探測器具有同時達到最先進速度和精度的巨大潛力。

 

3:與YOLOv4COCO測試開發集上的比較。我們用“15×”(184 epoch)的時間表訓練YOLOF-DC5,並將其與YOLOv4進行比較。在表中,†表示通過跟隨YOLOv4[1]測量YOLOF-DC5FPS。這與本文表1、表2的方法不同。在YOLOv4[1]中,作者融合了卷積層和批歸一化層,然后將模型轉換為半精度后度量推理時間。∗表示我們從官方回購協議中獲得YOLOv42080Ti上的速度https: //github.com/AlexeyAB/darknet#geforce- rtx2080-ti

 

5.2 消融實驗

   我們進行了多次燒蝕來分析YOLOF。我們首先提供對這兩個提議的組件的總體分析。然后,通過燒蝕實驗對各部件進行了詳細設計。結果如表45所示,並在接下來進行了詳細討論。

   膨脹編碼器與均勻匹配:從表4可以看出,膨脹編碼器與均勻匹配對YOLOF都是必要的,可以帶來相當大的改進。其中,extended Encoder對大型對象的影響比較顯著(43.8 vs. 53.2),對中小型對象的結果略有改善。結果表明,C5特征的尺度范圍有限是一個嚴重的問題(Section 4.1)。我們的擴張式編碼器提供了一個簡單但有效的解決方案。另一方面,由於沒有統一匹配,中小型對象的性能顯著下降(10AP),而大型對象的性能僅受到輕微影響。這一發現與4.2節中分析的正錨不平衡問題是一致的。陽性錨點以大物體為主,導致中小物體效果不佳。最后,當我們同時刪除了expanded EncoderUniform Matching時,一個單一級別的特性檢測器的性能將下降到圖1和圖3中所示的結果。

4:ResNet-50擴張型編碼器及均勻匹配的效果。這兩個組件將原來的單電平檢測器提高了16.6 mAP。注意,表中21.1 mAP的結果不是一個bug。它的性能略差於圖1和圖3SiSo編碼器的探測器,這是由於YOLOF中譯碼器的設計-在分類頭中只有兩個卷積層。

          ResBlock的數量:YOLOF堆棧剩余的塊在SiSo編碼器。從表5a的結果可以看出,堆疊更多的block對於大的對象有很大的改善,這是由於feature scale range的增加。雖然我們觀察到更多塊的持續改進,但我們選擇添加四個剩余塊,以保持YOLOF簡單和整潔。

   不同的卷積層:根據4.1節的分析,為了使C5特征能夠覆蓋更大的尺度,我們將殘差塊中的標准3 × 3卷積層替換為相應的擴展層。我們在表5b中展示了剩余塊體不同膨脹情況下的結果。對剩余塊體進行膨脹可以改善YOLOF,但膨脹過大時,改善效果飽和。我們推測這種現象的原因是,2468的膨脹足以匹配所有圖像中的物體尺度。

   是否添加快捷方式:5c顯示快捷方式在Dilated Encoder中起着至關重要的作用。如果我們刪除殘留塊中的捷徑,所有對象的性能都會顯著下降。根據第4.1節,快捷鍵組合了不同的刻度范圍。該特征覆蓋的尺度范圍大且密集,是以單一層次特征方式檢測所有目標的關鍵因素。

         正樣本數量:ground-truth box誘導陽性錨的數量比較見表5d。從直觀上看,越是積極的錨點,越能獲得更好的性能,因為樣本越多,學習就越容易。因此,在我們的統一匹配方式中,我們經驗地增加了每個ground-truth box誘導的正錨的數量。如表5d所示,當k大於1時,超參數k對性能的魯棒性非常強,這可能說明最重要的是YOLOF匹配方式的均勻性。我們選擇top4作為我們的制服匹配,因為根據結果它是最好的選擇。

   均勻匹配與其他匹配:我們對YOLOF的均勻匹配與其他匹配策略進行了比較,結果見表5e。所提出的均勻匹配策略可以獲得最好的結果,與圖6中的不平衡分析相一致。值得注意的是,匈牙利的匹配策略可以粗略地視為Top1匹配(5d),因此它們的性能相似。它們之間的區別是,在匈牙利匹配中,一個錨只匹配一個對象,而Top1匹配沒有這個約束,實驗表明這並不重要。原始的A TSS發現top9錨點是最好的選擇,而我們發現top15錨點在單級特征檢測器中要好得多。通過使用top15 anchor, ATSS取得了36.5 mAP的好成績,但仍然落后於我們的uniform matching 1.2 mAP的差距。

 

5所示消融。我們用ResNet-50COCO2017 val上進行了膨脹編碼器和均勻匹配的燒蝕實驗。

 

5.3 誤差分析

我們在本節中增加了對YOLOF的誤差分析,以便為未來的單級特征檢測研究提供見解。我們采用最近提出的工具TIDE[2]來比較YOLOFDETR[4]。如圖7所示,DETRYOLOF在定位上有更大的誤差,這可能與它的回歸機制有關。DETR以完全自由錨點的方式回歸目標,並對圖像中的全局位置進行預測,這給定位帶來了困難。相比之下,YOLOF依賴於預先定義的錨點,這是比DETR[4]在預測中更高的遺漏誤差。根據4.2節的分析,在推斷階段,YOLOF的錨點較為稀疏,不夠靈活。直覺上,有些情況下,沒有預先定義的高質量錨。因此,在YOLOF中引入無錨定機制可能有助於緩解這一問題,我們將其留到以后的工作中。

 

7:DETR-R101YOLOF-R101的誤差分析。根據TIDE[2],圖中顯示了六種錯誤類型(Cls:分類錯誤;Loc:定位錯誤;Both: clsloc錯誤;重復預測錯誤;Bkg:背景誤差;小姐:失蹤的錯誤)。餅圖顯示了每個誤差的相對貢獻,而柱狀圖顯示了它們的絕對貢獻。FPFN分別為假陽性和假陰性。

 

6.結論

在這項工作中,我們發現FPN的成功是由於它的分治解決稠密目標檢測的優化問題。考慮到FPN使網絡結構復雜,內存負擔大,檢測器速度慢,我們提出了一種簡單而高效的方法,即不使用FPN來解決不同的優化問題,稱為YOLOF。我們通過與RetinaNetDETR進行比較來證明其有效性。我們希望我們的YOLOF可以作為一個堅實的基線,並在未來的研究中為設計單級特征檢測器提供見解。

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM