摘要
現代頂級性能的目標檢測器在很大程度上依賴于骨干網絡,而骨干網絡的進步通過探索更高效的網絡結構帶來了持續的性能提升。本文提出了一種新穎且靈活的骨干框架——CBNet,該框架利用現有的開源預訓練骨干網絡,在預訓練-微調范式下構建高性能檢測器。具體而言,CBNet 架構將多個相同的骨干網絡組合在一起,通過復合連接進行互聯。它能夠整合多個相同骨干網絡中的高層和低層特征,并逐步擴大感受野,從而更有效地實現目標檢測。我們還為基于 CBNet 的檢測器提出了一種輔助監督的更優訓練策略。CBNet 對于不同骨干網絡和檢測器頭部設計具有較強的泛化能力。在無需對復合骨干網絡進行額外預訓練的情況下,CBNet 可適用于各種骨干(如基于 CNN 和基于 Transformer 的)以及大多數主流檢測器的頭部設計(如單階段與兩階段、基于錨框與非錨框)。實驗結果強有力地證明,與單純增加網絡深度和寬度相比,CBNet 為構建高性能骨干網絡提供了一種更高效、有效且資源友好的方法。特別是,我們的 CB-Swin-L 在 COCO test-dev 數據集上,在單模型單尺度測試協議下,實現了 59.4% 框 AP 和 51.6% 掩模 AP,顯著優于 Swin-L 達到的最新狀態(57.7% 框 AP 和 50.2% 掩模 AP),同時將訓練時間降低了 6 倍。通過多尺度測試,我們將當前最佳的單模型結果推向了新紀錄——在不使用額外訓練數據的情況下,框 AP 達到 60.1%,掩模 AP 達到 52.3%。代碼已開源,詳見:https://github.com/VDIGPKU/CBNetV2
引言
目標檢測旨在從任意圖像中定位屬于預定義類別集合的每個目標實例。它在自動駕駛、智能視頻監控、遙感等眾多應用中發揮著重要作用。近年來,隨著深度卷積網絡的快速發展[2],目標檢測取得了巨大進展,并涌現出一系列優秀的檢測器,如 SSD [3]、YOLO [4]、Faster R-CNN [5]、RetinaNet [6]、ATSS [7]、Mask R-CNN [8]、Cascade R-CNN [9] 等。
通常,在基于神經網絡(NN)的檢測器中,骨干網絡用于提取基本特征以進行目標檢測,并且大多數情況下最初是為圖像分類設計的,并在 ImageNet [10] 上進行預訓練。直觀來看,骨干網絡提取的特征越具代表性,其宿主檢測器的性能就越優異。為了獲得更高的檢測精度,主流檢測器采用了更深、更寬的骨干網絡(例如,從移動端模型[11][12]和 ResNet [13],到 ResNeXt [14] 和 Res2Net [15])。近年來,基于 Transformer [16][17] 的骨干網絡也展現出了極具前景的性能。總體而言,在大規模骨干網絡預訓練的推動下,目標檢測領域呈現出更有效的多尺度特征表示趨勢。
受基于預訓練大規模骨干網絡的檢測器優異表現的啟發,我們希望進一步提升性能,利用現有的精心設計的骨干架構及其預訓練權重來構建高性能檢測器。雖然可以設計一種新的改進型骨干網絡,但這需要大量的專業知識和計算資源。一方面,設計新骨干架構需要豐富的專家經驗,并經歷大量的嘗試和錯誤。另一方面,預訓練一個新的骨干網絡(尤其是大規模模型)需要在 ImageNet 上進行大量計算,成本高昂,使得在預訓練-微調范式下提升檢測性能變得更加困難。此外,雖然可以通過從零開始訓練檢測器來省去預訓練的成本,但這需要更多的計算資源和訓練技巧[18]。
本文提出了一種簡單而新穎的組合方法,在預訓練-微調范式下利用現有的預訓練骨干網絡。與大多數專注于模塊化設計并需要在 ImageNet 上預訓練以增強特征表示的方法不同,我們在無需額外預訓練的情況下,提高了現有骨干網絡的特征表達能力。如圖 1 所示,我們的方法被稱為 復合骨干網絡(CBNet),它將多個相同的骨干網絡組合在一起。具體而言,CBNet 通過復合連接將多個并行骨干(稱為輔助骨干和主骨干)連接起來。從圖 1 的左側到右側,輔助骨干的每個階段的輸出會傳遞到其后續并行骨干的低層階段,最終,主骨干的特征被輸入到檢測器的頸部和檢測頭,用于邊界框回歸和分類。與單純加深或加寬網絡不同,CBNet 通過整合多個骨干網絡的高層和低層特征,并逐步擴大感受野,實現了更有效的目標檢測。值得注意的是,CBNet 的每個復合骨干均由現有的開源預訓練骨干的權重初始化(例如,CB-ResNet50 由 ResNet50 [13] 的權重初始化,而 ResNet50 的權重可從開源社區獲取)。此外,為了進一步挖掘 CBNet 的潛力,我們提出了一種針對輔助骨干的監督訓練策略,在不影響推理速度的情況下提升檢測精度。特別地,我們還提出了一種剪枝策略,在不犧牲精度的前提下降低模型復雜度。
我們提出了 CBNet 的兩個版本。第一個版本 CBNetV1 [1] 僅連接了并行骨干的相鄰階段,實現了一種簡單的復合骨干,易于理解和復現。第二個版本 CBNetV2 結合了更密集的高級復合策略、輔助監督以及剪枝策略,充分挖掘了 CBNet 在目標檢測任務中的潛力。實驗結果表明,CBNetV2 在性能上明顯優于 CBNetV1。
我們在具有挑戰性的 MS COCO 基準測試 [19] 上進行了實驗,驗證了我們框架的有效性。實驗結果表明,CBNet 對不同骨干網絡和檢測器頭部設計具有很強的泛化能力,使我們能夠訓練出顯著優于基于更大骨干網絡的檢測器。具體來說,CBNet 可應用于多種骨干網絡,從基于卷積的 [13]、[14]、[15] 到基于 Transformer 的 [20]。與原始骨干網絡相比,CBNet 能將它們的性能提升 3.4%~3.5% AP,證明了所提 CBNet 的有效性。在模型復雜度相當的情況下,我們的 CBNet 仍可提升 1.1%~2.1% AP,這表明組合后的骨干比預訓練的更寬、更深網絡更高效。此外,CBNet 可以靈活地集成到主流檢測器中(例如 RetinaNet [6]、ATSS [7]、Faster R-CNN [5]、Mask R-CNN [8]、Cascade R-CNN 以及 Cascade Mask R-CNN [9]),并始終使這些檢測器的性能提升 3%~3.8% AP,展示了其對各種檢測器頭部設計的強適應性。另外,CBNet 與特征增強網絡 [21]、[22] 以及模型集成方法 [23] 均可兼容。值得注意的是,它提供了一個通用且資源友好的框架,以推動高性能檢測器的準確性上限。在不做額外修飾的情況下,我們的 CB-Swin-L 在 COCO test-dev 上以單模型、單尺度測試條件下實現了無與倫比的 59.4% 框 AP 和 51.6% 掩模 AP,超越了最新的狀態(即 Swin-L 所獲得的 57.7% 框 AP 和 50.2% 掩模 AP),同時將訓練時間縮短了 6 倍。通過多尺度測試,我們將當前最佳的單模型結果推向了新的記錄:60.1% 框 AP 和 52.3% 掩模 AP。
本文的主要貢獻如下: ? 我們提出了一種通用、高效且有效的框架——CBNet(組合骨干網絡),用于構建高性能目標檢測骨干網絡,而無需額外的預訓練。 ? 我們提出了密集高級組合(Dense Higher-Level Composition, DHLC)策略、輔助監督以及剪枝策略,以在預訓練-微調范式下高效利用現有預訓練權重進行目標檢測。 ? 我們的 CB-Swin-L 在 COCO 上以比 Swin-L 縮短 6 倍的訓練時間內,實現了單模型、單尺度測試的新紀錄;通過多尺度測試,我們的方法在不使用額外訓練數據的情況下達到了目前已知的最佳結果。
相關工作
目標檢測
目標檢測旨在從輸入圖像中定位預定義類別集合中的每個目標實例。隨著卷積神經網絡(CNN)的快速發展,基于深度學習的目標檢測器形成了一種流行范式:首先,骨干網絡(通常為分類任務設計并在 ImageNet 上預訓練)從輸入圖像中提取基礎特征;隨后,頸部(例如,特征金字塔網絡 [25])對來自骨干的多尺度特征進行增強,最后檢測頭根據位置和類別信息預測目標的邊界框。
基于檢測頭的不同設計,通用目標檢測的前沿方法大致可分為兩大類。第一類包括一階段檢測器,如 YOLO [4]、SSD [3]、RetinaNet [6]、NAS-FPN [26]、EfficientDet [27] 以及 [28];第二類則包括兩階段檢測器,如 Faster R-CNN [5]、FPN [25]、Mask R-CNN [8]、Cascade R-CNN [9] 以及 Libra R-CNN [29]。
近年來,由于 FPN [25] 和 focal loss [6] 的出現,學術界開始關注無錨檢測器,從而催生了更為優雅的端到端檢測器。一方面,FSAF [30]、FCOS [31]、ATSS [7] 以及 GFL [32] 采用基于中心的無錨方法對 RetinaNet 進行改進;另一方面,CornerNet [33]、CenterNet [34] 與 FoveaBox [35] 則采用基于關鍵點的方法檢測目標邊界框。除了上述基于 CNN 的檢測器外,Transformer [16] 也被用于目標檢測,其中 DETR [36] 通過結合 CNN 與 Transformer 編碼器—解碼器提出了一種完全端到端的檢測器。
更近來,神經架構搜索(NAS)被應用于自動搜索特定檢測器的架構。NAS-FPN [26]、NAS-FCOS [37] 和 SpineNet [38] 利用強化學習控制架構采樣,并獲得了令人鼓舞的結果;SM-NAS [39] 則采用進化算法和部分順序剪枝方法搜索檢測器各部分的最佳組合;AutoFPN [40] 使用基于梯度的方法搜索最佳檢測器;而 OPANAS [41] 則采用單次方法搜索出高效的頸部結構以提升目標檢測性能。
B. 用于目標檢測的骨干網絡
從 AlexNet [2] 開始,主流檢測器已經采用了更深更寬的骨干網絡,如 VGG [42]、ResNet [13]、DenseNet [43]、ResNeXt [14] 以及 Res2Net [15]。由于骨干網絡通常為分類任務而設計,無論是在 ImageNet 上預訓練后再在特定檢測數據集上微調,還是在檢測數據集上從頭訓練,都需要大量的計算資源,并且優化較為困難。
近年來,出現了兩種設計較為非凡的骨干網絡——DetNet [44] 和 FishNet [45],它們專門針對檢測任務而設計。然而,這些網絡在用于檢測任務之前,仍然需要先為分類任務進行預訓練。Res2Net [15] 通過在粒度層面表示多尺度特征,在目標檢測中取得了令人印象深刻的成果。HRNet [21] 則保持了高分辨率表示,并在人類姿態估計、語義分割以及目標檢測中都獲得了有希望的結果。
除了手動設計骨干網絡架構之外,DetNAS [46] 和 Joint-DetNAS [47] 利用神經架構搜索(NAS)來尋找更適合目標檢測的骨干,從而降低了手動設計的成本。Swin Transformer [20] 和 PVT [17] 則利用 Transformer 模塊構建骨干網絡,盡管需要昂貴的預訓練,但同樣取得了令人印象深刻的成果。眾所周知,設計和預訓練一個全新且健壯的骨干網絡需要大量計算成本。
作為替代方案,我們提出了一種更加經濟高效的解決方案,即通過將多個相同的現有骨干網絡(例如 ResNet [13]、ResNeXt [14]、Res2Net [15]、HRNet [21] 以及 Swin Transformer …)進行組合,以構建更強大的目標檢測骨干網絡。
C. 循環卷積神經網絡
不同于傳統 CNN 的前饋架構,循環卷積神經網絡(RCNN)[24] 在每個卷積層中引入了循環連接,以增強模型對上下文信息的整合能力。如圖 3 所示,我們提出的 Composite Backbone Network(CBNet)與展開式 RCNN [24] 存在一些相似之處,但它們有很大不同。首先,CBNet 中平行階段之間的連接是單向的,而 RCNN 中是雙向的。其次,在 RCNN 中,不同時間步的平行階段共享參數權重,而在所提出的 CBNet 中,各個 backbone 階段是相互獨立的。此外,如果將 RCNN 用作檢測器的 backbone,則需要在 ImageNet 上進行預訓練;相比之下,CBNet 不需要額外的預訓練,因為它直接使用現有的預訓練權重。
D. 模型集成
眾所周知,結合多個不同預測器可以帶來更準確的預測結果,例如,集成方法被認為是許多機器學習挑戰的最先進解決方案。模型集成通過訓練多個不同的模型并通過后處理將它們的預測結果進行組合,從而提高單一模型的預測性能 [48],[49]。模型集成有兩個關鍵特性:模型多樣性和投票機制。模型多樣性指的是采用不同架構或訓練技術的模型需要分別訓練,其在模型集成中的重要性已經得到了充分證明 [50],[51],[52],[53]。大多數集成方法需要投票策略來比較不同模型的輸出并優化最終的預測結果 [23]。就這兩個特性而言,我們的 CBNet 與模型集成大為不同。事實上,CBNet 受益于采用相同 backbone 的分組,通過聯合訓練以循環方式增強特征;而且,最終預測時直接使用主導 backbone 的輸出,而無需與其他 backbone 的輸出進行組裝。更多實際的分析可以參考第四部分第 E2 節。
在實踐中,當前主流的目標檢測基準(如 MS COCO [19] 或 OpenImage [54])的領先方法往往依賴于模型集成 [55],[56],[57],[58],[59],[60]。例如,[60] 分別訓練了 28 個具有不同架構、檢測頭、數據拆分、類別采樣策略、增強策略和監督方式的模型,并通過集成方法聚合這些檢測器的輸出。[23] 則提出了概率排序感知集成(Probabilistic Ranking Aware Ensemble, PRAE),該方法可以對來自不同檢測器的邊界框置信度進行優化。我們的 CBNet 與此類模型集成方法兼容,就像其他傳統的 backbone 一樣。更多細節可以在第四部分第 F6 節中找到。
E. 我們的方法
我們的網絡將多個相同的 backbone 并行組合在一起。它整合了多個相同 backbone 的高層次和低層次特征,并逐步擴大感受野,以更高效地實現目標檢測。本文是在我們之前的會議論文 [1] 的基礎上進行了大幅擴展,并在最近開發的最先進的目標檢測框架下獲得了結果。與 [1] 相比,主要技術創新體現在三個方面:
我們對 [1] 中提出的網絡(稱為 CBNetV1)進行了擴展,并引入了三項修改:一種專門的訓練方法、更優的組合策略以及剪枝策略,分別用于優化訓練過程、更高效地增強特征表達能力以及降低 CBNetV2 的模型復雜度。
我們展示了 CBNetV2 對各種 backbone 和檢測器架構中 head 設計的強大泛化能力。
我們證明了 CBNetV2 相對于 CBNetV1 的優越性,并在目標檢測任務中呈現了 CBNetV2 的最先進成果。
提出的方法
本節將詳細闡述所提出的 CBNet。在 III-A 節和 III-B 節中,我們分別描述了其基本架構和變體;在 III-C 節中,我們提出了基于 CBNet 的檢測器的訓練策略;在 III-D 節中,我們簡要介紹了剪枝策略;在 III-E 節中,我們總結了 CBNet 的檢測框架。
A.CBNet架構
B、可能得符合策略
C. 輔助監督
雖然增加網絡深度通常能帶來性能提升 [13],但正如圖像分類中的情況 [61] 所示,它可能會引入額外的優化難題。文獻 [62]、[63] 提出了在中間層引入輔助分類器,以改善極深網絡的收斂性。在原始的 CBNet 中,盡管組合骨干網絡是并行排列的,但后續的骨干(例如圖 4.a 中的主骨干)通過與前一個骨干(例如圖 4.a 中的輔助骨干)之間的相鄰連接來加深網絡。為了更好地訓練基于 CBNet 的檢測器,我們提出利用輔助頸部和檢測頭對輔助骨干進行監督,生成其初步結果,從而提供額外的正則化。
當 K=2 時,我們的帶監督 CBNet 示意如圖 4.b 所示。除了利用主骨干特征訓練檢測頭 1 的原始損失外,另一個檢測頭 2 以輔助骨干的特征作為輸入,從而產生輔助監督。請注意,檢測頭 1 與檢測頭 2 共享權重,兩個頸部也同樣共享權重。輔助監督有助于優化整個學習過程,而主骨干的原始損失則承擔了主要責任。我們為輔助監督設置了權重,以實現平衡,總損失定義為:
其中,L?Lead? 是主骨干的損失,L?Assist?? 是第 i 個輔助骨干的損失,而 λ? 是對應的損失權重。
在推理階段,我們舍棄輔助監督分支,僅使用 CBNet 中主骨干的輸出特征(如圖 4.b 所示),因此輔助監督不會影響推理速度。
)
D.CBNet的剪枝策略
E. 基于 CBNet 的檢測網絡架構
CBNet 可直接應用于各種現成的檢測器,無需對網絡結構進行額外修改。實際上,我們將主骨干與功能網絡(例如 FPN [25] 和檢測頭)相連接,如圖 1 所示展示了 CBNet 的推理階段。需要注意的是,我們提出了兩個版本的 CBNet。第一個版本,命名為 CBNetV1 [1],僅采用 AHLC 組合策略,實現了一個簡單易懂的組合骨干;而另一個版本 CBNetV2 則結合了 DHLC 組合策略、輔助監督以及特殊剪枝策略,以充分挖掘 CBNet 在目標檢測中的潛力。我們在接下來的 Sec. IV 中通過實驗證明了 CBNetV2 相較于 CBNetV1 的優越性。在本文后續實驗中,如無特別說明,CBNet 均指 CBNetV2。
實驗
在本節中,我們通過大量實驗對我們的 CBNet 進行了評估。在 IV-A 節中,我們詳細介紹了實驗設置;在 IV-B 節中,我們將 CBNet 與最先進的檢測方法進行了比較;在 IV-C 節中,我們展示了該方法在不同骨干和檢測器上的通用性;在 IV-E 節中,我們展示了 CBNet 與 DCN 以及模型集成的兼容性;在 IV-F 節中,我們進行了大量消融實驗以研究框架的各個組成部分。
A. 實現細節
數據集與評估指標:
我們的實驗在 COCO [19] 基準上進行。訓練階段使用 118k 張訓練圖像,消融實驗則在 5k 張 minival 圖像上進行。同時,我們還報告了 test-dev 中 20k 張圖像的結果,以便與最新方法(SOTA)進行比較。評估時采用 COCO 檢測評估標準中的指標,包括在 IoU 閾值從 0.5 到 0.95 不同尺度下的平均精度(AP)。
訓練與推理細節:
我們的實驗基于開源檢測工具箱 MMDetection [71]。在消融實驗和簡單對比中(若無特別說明),我們將訓練和推理階段的輸入尺寸調整為 800×500。我們選擇 Faster R-CNN(采用 ResNet50 [13] 和 FPN [25])作為基線。我們使用 SGD 優化器,初始學習率為 0.02,動量為 0.9,權重衰減設置為 10??。我們訓練檢測器 12 個 epoch,在第 8 和 11 個 epoch 時將學習率降低 10 倍。數據增強僅采用隨機翻轉,batch size 設為 16。需要注意的是,對于特殊骨干(例如 Swin Transformer [20],[72]、HRNet [21]、PVT [17]、PVTv2 [73] 以及 DetectoRS [74])的實驗,均按照原論文中的超參數設置進行,而未做特別強調。檢測器的推理速度(FPS,即每秒幀數)均在一臺配備 1 塊 V100 GPU 的機器上測量。
為了與最新檢測器進行比較,我們采用了多尺度訓練 [75](短邊尺寸調整至 400~1400,長邊最大為 1600)和更長的訓練計劃(詳細信息見 IV-B 節)。在推理階段,我們使用閾值為 0.001 的 Soft-NMS [76],且輸入尺寸設置為 1600×1400。本文中未特別說明的所有其他超參數均遵循 MMDetection 的設置。
B. 與最新方法的比較
我們將我們的方法與最前沿的檢測器進行了比較。根據訓練時是否使用實例分割標注,我們將結果分為目標檢測(表 I)和實例分割(表 II)。按照 [20] 的方法(Swin Transform),我們對 Cascade R-CNN、Cascade Mask R-CNN 和 HTC 的檢測頭進行了改進:在每個邊界框檢測頭中添加了四個卷積層 [77],并用 GIoU 損失 [78] 替換了 Smooth L1 損失 [79]。
1) 目標檢測
對于僅使用邊界框標注訓練的檢測器,我們將其分為兩類:基于錨框的方法和基于無錨方法(見表 I)。我們選擇 ATSS [7] 作為基于無錨方法的代表,選擇 Cascade R-CNN 作為基于錨框方法的代表。
基于無錨方法(Anchor-free):
配備 ATSS 的 CB-Res2Net101-DCN 訓練 20 個 epoch,在第 16 和 19 個 epoch 時將學習率衰減 10 倍。值得注意的是,我們的 CB-Res2Net101-DCN 在單尺度測試協議下實現了 52.8% 的 AP,超越了先前的無錨方法 [7]、[30]、[31]、[32]、[36]、[37]、[64]。
基于錨框方法(Anchor-based):
我們的 CB-Res2Net101-DCN 實現了 55.6% 的 AP,優于其他基于錨框的檢測器 [26]、[27]、[38]、[39]、[40]、[41]、[66]、[80]。值得一提的是,我們的 CBNet 僅訓練了 32 個 epoch(前 20 個 epoch 進行常規訓練,后 12 個 epoch 使用隨機權重平均(Stochastic Weights Averaging, SWA)[81] 進行訓練),相比 EfficientDet 和 YOLOv4,訓練時間分別縮短了 16 倍和 12 倍。
表1:與COCO測試開發的最新結果的比較。我們的CB-Res2Net101-DCN比以前的無錨點和基于錨點的檢測器實現更高的bboxAP,同時使用相當或更少的訓練epoch。
2) 實例分割
我們進一步將我們的方法與最先進的實例分割方法 [20]、[68]、[69]、[70] 進行了比較(見表 II),其中訓練時使用了邊界框和實例分割標注。按照 [20] 的方法,我們分別提供了在常規 ImageNet-1K 和 ImageNet-22K 預訓練的骨干網絡上的實驗結果,以展示 CBNet 的高性能表現。
基于 ImageNet-1K 預訓練的結果:
按照 [20],我們對 CB-Swin-S 采用 3x 訓練計劃(訓練 36 個 epoch,并在第 27 和 33 個 epoch 使學習率衰減 10 倍)。
在 COCO minival 集上,基于 Cascade Mask R-CNN 的 CB-Swin-S 在邊界框檢測和實例分割任務中分別達到了 56.3% box AP 和 48.6% mask AP,相比 Swin-B,在模型大小相似、訓練協議相同的情況下,分別提升了 +4.4% box AP 和 +3.6% mask AP。此外,CB-Swin-S 在 COCO test-dev 上的檢測結果為 56.9% box AP 和 49.1% mask AP,優于其他基于 ImageNet-1K 預訓練的骨干網絡的檢測器。
基于 ImageNet-22K 預訓練的結果:
我們的 CB-Swin-B 在 COCO minival 上的單尺度測試結果為 58.4% box AP 和 50.7% mask AP,比 Swin-L(HTC++)[20] 分別高出 1.3% box AP 和 1.2% mask AP,同時參數數量減少了 17%,訓練時間縮短了 3.6 倍。
尤其是,在僅訓練 12 個 epoch(比 Swin-L 短 6 倍)的情況下,我們的 CB-Swin-L 在 COCO test-dev 上達到了 59.4% box AP 和 51.6% mask AP,超越了之前的最佳方法。通過多尺度測試,我們進一步將當前最佳結果推至 60.1% box AP 和 52.3% mask AP。
這些結果表明,CBNet 提出了一種高效、有效且資源友好的框架,用于構建高性能檢測器。
C. CBNet 的泛化能力(對主流骨干架構的泛化能力、對 Swin Transformer 的泛化能力和對特殊骨干網絡的泛化能力)
CBNet 通過并行組合多個骨干網絡來擴展感受野,而不是簡單地增加網絡的深度。為了證明我們的設計策略的通用性,我們在不同的骨干網絡和檢測器頭部設計上進行了實驗。
- 對主流骨干架構的泛化能力
有效性(Effectiveness):
為了驗證 CBNet 的有效性,我們在 Faster R-CNN 結合不同骨干網絡的情況下進行了實驗。如表 III 所示,對于基于 CNN 的骨干網絡(例如 ResNet、ResNeXt-32x4d 和 Res2Net),我們的 CBNet 方法可以使基線性能提高 3.4% 以上的 AP。
高效性(Efficiency):
由于 CBNet 采用了復合骨干網絡,與基線模型相比,其參數量有所增加。為了更好地評估其效率,我們與更深或更寬的骨干網絡進行了對比。如表 IV 所示,在參數數量和推理速度相當的情況下,CBNet 分別使 ResNet101、ResNeXt101-32x4d 和 Res2Net101 的 AP 提高了 1.7%、2.1% 和 1.1%。此外,CB-ResNeXt50-32x4d 的 AP 比 ResNeXt101-64x4d 高 1.1%,而參數量僅為后者的 70%。實驗結果表明,我們的復合骨干架構比單純增加網絡的深度和寬度更高效、更有效。
- 對 Swin Transformer 的泛化能力
Transformer 在數據建模中以自注意力機制建模遠程依賴關系而聞名,Swin Transformer [20] 是近年來最具代表性的模型之一。我們在 Swin Transformer 上進行了實驗,以驗證 CBNet 的模型泛化能力。為了公平對比,我們采用與 [20] 相同的訓練策略,包括多尺度訓練(短邊調整至 480~800,長邊最大 1333)、AdamW 優化器(初始學習率 0.0001,權重衰減 0.05,batch size 為 16)以及 3x 訓練計劃(36 個 epoch)。
如表 V 所示,隨著 Swin Transformer 深度和寬度的增加,模型精度逐步提高,并在 Swin-S 處趨于飽和。Swin-B 僅比 Swin-S 提高了 0.1% AP,但參數量卻增加了 3800 萬。當采用 CB-Swin-T,我們相較于 Swin-T 分別提高了 3.1% box AP 和 2.5% mask AP。值得注意的是,我們的 CB-Swin-T 比更深更寬的 Swin-B 高出 1.7% box AP 和 1.2% mask AP,同時模型復雜度更低(例如,計算量 FLOPs:CB-Swin-T 836G vs. Swin-B 975G,參數量 113.8M vs. 145.0M,FPS 6.5 vs. 5.9)。這些結果表明,CBNet 不僅可以改進基于卷積的架構,還能提升 Transformer 架構的檢測能力,并比單純增加網絡的深度和寬度更有效地提高高性能檢測器的上限。
3) 對特殊骨干網絡的泛化能力
為了進一步驗證 CBNet 對不同骨干網絡的泛化能力,我們在 CBNet 結合不同的骨干網絡(包括 MobileNetV2 [72]、HRNet [21]、PVT [17] 和 PVTv2 [73])的情況下進行了實驗。為了公平對比,我們選用了公開可用的預訓練骨干網絡,并嚴格遵循 MMDetection [82] 的實驗設置(包括檢測器的選擇、訓練及推理細節)。實驗結果如表 VI 所示:
輕量級模型(MobileNetV2): 在 YOLOV3 [83] 檢測器上,我們的 CB-MobileNetV2 相比 MobileNetV2 提高了 3.1% AP,且比 MobileNetV2(1.4x) 高 1% AP,模型復雜度相當。
高分辨率特征模型(HRNet): 我們的 CB-HRNetv2p w32 相比 HRNetv2p w32 提高了 2.4% AP,且比 HRNetv2p w48 高 0.6% AP,參數量更少。
基于 Transformer 的全局特征提取網絡(PVT): 在 RetinaNet 檢測器上,我們的 CB-PVT-Small 相比 PVT-Small 提高了 3% AP,且比 PVT-Large 高 0.8% AP,而參數量僅為 PVT-Large 的 83%。此外,我們的 CB-PVTv2-B2 相比 PVTv2-B2 提高了 3.1% AP,且比 PVTv2-B5 高 1.6% AP,而參數量僅為 PVTv2-B5 的 66%。
這些結果表明,CBNet 能夠提升各種不同類型的骨干網絡,在參數量和計算量相當甚至更少的情況下,取得更優的檢測性能,從而證明了 CBNet 的有效性和高效性。
- 對主流檢測器的適配能力
我們通過將 CBNet 應用于主流檢測器(包括 RetinaNet、ATSS、Faster R-CNN、Mask R-CNN 和 Cascade R-CNN)來評估其適配能力。這些檢測器涉及不同的檢測頭設計(例如,兩階段 vs. 單階段、基于錨框 vs. 無錨框)。如表 VII 所示,我們的 CBNet 使所有主流目標檢測器的 AP 提高了 3% 以上。此外,Mask R-CNN 在實例分割任務中的準確率也提高了 2.9% AP。這些實驗結果表明,CBNet 具備出色的適配能力,能夠適用于各種不同設計的檢測頭,從而進一步驗證了 CBNet 在不同檢測框架中的泛化能力。
D. 與相關工作對比(與DetectoRS對比)
目前有幾種相關的檢測器,例如 DetectoRS [74] 采用復合骨干網絡和 FPN,而 Joint-DetNAS [47] 采用搜索策略優化模型縮放方案。我們對 CBNet 與這兩種方法進行了對比實驗。
Joint-DetNAS [47] 結合了神經架構搜索(NAS)、剪枝和知識蒸餾來優化檢測器。同樣地,我們的 CBNet 也采用了剪枝策略,但更專注于使用復合策略對骨干網絡進行擴展。由于 CBNet 具有較強的泛化能力,它可以提升高性能檢測器的性能(例如 YOLOX [84])。如表 VIII 所示,我們的 CB-CSPNet-L 相比 CSPNet-L [84] 提高了 2.6% AP,且比 CSPNet-X 高 1.1% AP,而參數量僅為后者的 85%。此外,我們進一步將 CBNet 應用于現有的手工設計檢測器(YOLOX),并與采用先進知識蒸餾訓練策略的 Joint-DetNAS 進行對比。實驗結果表明,CBNet 以 118 GFLOPs 實現了 52% AP,明顯優于 Joint-DetNAS(基于 X101-FPN),其 266 GFLOPs 僅實現 45.7% AP。需要注意的是,由于 CBNet 主要專注于骨干網絡的架構設計,而 Joint-DetNAS 關注整個檢測器的架構和訓練聯合優化,因此二者之間難以進行完全公平的對比。
DetectoRS [74] 采用與 CBNet 類似的設計,但 DetectoRS 同時組合了骨干網絡和 FPN。我們在 Faster R-CNN 結合不同骨干網絡的情況下對比了 CBNetV2 和 DetectoRS,實驗結果見表 IX。在相同的訓練策略下(輸入尺寸為 1333 × 800),CBNet 以更少的 FLOPs 實現了相當或更高的 AP。特別是,在使用 Swin-Tiny 作為骨干網絡的情況下,我們的 CBNet 比 DetectoRS 高 0.8% AP,而計算量(FLOPs)僅為后者的 84%。
E. CBNet 的兼容性(與可變形卷積、與模型集成的兼容性)
- 與可變形卷積的兼容性
可變形卷積(Deformable Convolution, DCN)[22] 通過增強 CNN 處理變形的能力,廣泛應用于高精度目標檢測器(例如,在 Faster R-CNN ResNet50 上簡單加入 DCN,就能使 AP 從 34.6% 提高到 37.4%)。為了驗證 CBNet 與 DCN 的兼容性,我們在 ResNet 和 ResNeXt 結合 Faster R-CNN 的情況下進行了實驗。如表 X 所示,DCN 在 CBNet 上依然有效,帶來了 2.3% ~ 2.7% AP 的提升。這一提升幅度甚至超過了 ResNet152(提升 2.0% AP)和 ResNeXt101-64x4d(提升 1.3% AP)的增益。
進一步分析表明,CB-ResNet50-DCN 分別比 ResNet50-DCN 和更深的 ResNet152-DCN 提高了 3.0% 和 0.6% AP。此外,CB-ResNet50-32x4d-DCN 分別比 ResNet50-32x4d-DCN 和更深更寬的 ResNeXt101-64x4d-DCN 提高了 3.7% 和 1.3% AP。實驗結果表明,CBNet 與 DCN 具有良好的兼容性,二者的效果可以疊加,不會相互沖突。
2) 與模型集成的兼容性
模型集成(Model Ensemble)通過訓練多個不同的模型,并在推理階段結合它們的預測結果,以提高整體性能 [48], [49]。概率排序感知集成(Probabilistic Ranking Aware Ensemble, PRAE)[23] 通過優化不同檢測器的置信度排名,比其他目標檢測集成方法取得了更顯著的性能提升。例如,將 Faster R-CNN ResNet50 和 Faster R-CNN ReNeXt50 進行集成,可將單一模型的最佳 AP 從 36.3% 提高到 37.3%。然而,僅僅組合兩個相同的檢測器(例如兩個 Faster R-CNN ResNeXt50)并不會提升性能(仍為 36.3% AP)。
為了驗證 CBNet 對模型集成方法 PRAE 的兼容性,我們在傳統骨干網絡(ResNet、ResNeXt、Res2Net)及其對應的 CBNet 變體上進行了實驗,所有模型均結合 Faster R-CNN。實驗結果(見表 XI)表明,PRAE 在 CBNet 組裝的檢測器上依然有效,可提升 0.8% ~ 1.7% AP,與其在傳統骨干網絡上的效果一致。此外,我們的 CBNet 相比 PRAE 更有效。例如,Faster R-CNN CB-R50 實現了 38.0% AP,高于 Faster R-CNN ResNet50 和 Faster R-CNN ReNeXt50 集成后的 37.3% AP。
這些結果表明,CBNet 與模型集成方法可以相互兼容,二者的效果可以疊加,不會相互沖突。同時,CBNet 由于采用了多個相同骨干網絡的組合,因此本質上可以視為一個單一的檢測器/模型,而非多個獨立模型的集成。
F. 消融實驗
我們對提出的 CBNet 進行了多種設計選擇的消融實驗。為簡單起見,除非特別說明,所有準確率結果均基于 COCO 驗證集,輸入尺寸為 800 × 500。
1)不同復合策略的有效性
我們在 Faster R-CNN CB-ResNet50 體系結構上進行了實驗,以比較圖 2 中提出的復合策略,包括 SLC、AHLC、ALLC、DHLC 和 FCC。實驗結果見表 XII。
SLC:與單一骨干網絡的基線相比,準確率略有提高(35% vs. 34.6% AP)。由于兩個骨干網絡相同階段提取的特征相似,SLC 僅能學習到比單一骨干稍多的語義信息。
AHLC:相比基線提高 1.4% AP,驗證了第 III-B2 節的動機,即前一個骨干網絡的高層特征增強了后一個骨干網絡的表示能力。
ALLC:相比基線下降 2.2% AP。我們推測,將輔助骨干網絡的低層特征直接添加到主骨干的高層特征會削弱后者的表示能力。
DHLC:相比基線提升 2.7% AP(從 34.6% 提升到 37.3% AP)。增加更多高低層連接在一定程度上豐富了特征的表示能力。
FCC:獲得最佳性能(37.4% AP),但推理速度比 DHLC 慢 7%(19.9 vs. 21.4 FPS)。
綜上,FCC 和 DHLC 取得了最好的效果。考慮到計算復雜度,我們推薦 DHLC 作為 CBNet 的默認復合策略。實驗表明,僅僅增加參數數量或添加骨干網絡并不一定能獲得更好的結果,而復合連接方式起著關鍵作用。這些結果驗證了 DHLC 復合策略的有效性和非平凡性。
需要注意的是,CBNetV1([1])與本文在 DHLC 和 AHLC 方面的表現略有差異,這是由于它們基于不同的深度學習平臺(CAFFE vs. PyTorch),使用了不同的模型初始化策略,導致性能不同。表 XIII 進一步比較了 DHLC 和 AHLC 在不同骨干網絡上的表現。DHLC 在 ResNet101 和 ResNeXt101-64x4d 上分別比 AHLC 高 0.8% AP 和 1.1% AP,證明了 DHLC 在不同骨干網絡上的通用性。
此外,我們通過代理任務的網格搜索來尋找更優的復合策略。為了降低搜索成本,我們簡化了搜索空間,僅搜索復合骨干網絡中的 x3、x4、x5 級別的連接,并使用 COCO 訓練集的 1/5 進行訓練(輸入尺寸 800 × 500)。最終,我們訓練了 512 個檢測器,花費 205 GPU 天。搜索得到的最優策略是簡化的 DHLC(s3),去掉了前一個骨干網絡 x4 到后一個骨干網絡 x3 的輸入連接。該策略取得了 37.3% AP,與我們手工設計的 DHLC(37.3% AP)表現相當,進一步驗證了高到低連接的必要性。
2)輔助監督權重的影響
關于輔助監督的實驗結果見表 XIV。為了簡化實驗,我們在 CBNet 上使用 DHLC 復合策略進行實驗。
第一種情況是 Faster R-CNN CB-ResNet50 作為基線模型;
第二種情況是 CB-ResNet50-K3(K=3)作為基線,其中公式 (8) 中的輔助骨干網絡權重 λ 設為零。
對于 K=2,當 λ1 設為 0.5 時,基線模型的 AP 提高了 0.8%。對于 K=3,當 λ1 和 λ2 分別設為 {0.5, 1.0} 時,AP 提高了 1.8%。實驗結果驗證了輔助監督是一種有效的訓練策略,可以提升 CBNet 的性能。
3)剪枝策略的效率
如圖 6a 所示,使用剪枝策略后,我們的 CB-ResNet50 系列和 CB-ResNet50-K3 系列相比,在 FLOPs 與準確率的權衡上表現更優。這表明剪枝策略的有效性。
特別地,與 s4 相比,s3 的 FLOPs 減少了 10%,但準確率僅下降了 0.1%。這是因為在檢測器訓練過程中,被剪枝的階段權重是固定的,因此剪枝并不會明顯影響檢測精度。因此,當計算速度和存儲成本較為關鍵時,我們建議對 CBNet 中第 2, 3, …, K 個骨干網絡的固定階段進行剪枝。
4)CBNet 中骨干網絡的數量
為了進一步探索 CBNet 在構建高性能檢測器方面的能力,我們通過調整骨干網絡的數量(K=1,2,3,4,5)來評估 CBNet 的效率,并將其與 ResNet 系列進行比較(見圖 6b)。
實驗表明,隨著模型復雜度的增加,檢測精度不斷提高。相比 ResNet152,當 K=2 時,我們的方法在計算成本更低的情況下取得了更高的準確率。同時,增加 K 到 3、4、5 時,準確率進一步提高。CBNet 提供了一種高效的方法來提升模型性能,而不僅僅是簡單地增加骨干網絡的深度或寬度。
5)CBNetV1 和 CBNetV2 的比較
為了公平比較 CBNetV1([1])和 CBNetV2,我們依次將 DHLC 復合策略、輔助監督和剪枝策略應用于 CBNetV1,其中 AHLC 為默認復合策略(表 XV)。
CBNetV1 相比 Faster R-CNN ResNet50 基線提高 1.4% AP。
CBNetV1 的加速版本(s2 剪枝版本)推理速度從 22.4 FPS 提升到 26.6 FPS,但準確率下降了 0.4% AP。
在 CBNetV1 的基礎上,輔助監督帶來了 0.9% AP 的提升。
DHLC 復合策略相較 CBNetV1 默認策略(AHLC)提升了 1.3% AP。
結合 DHLC 和輔助監督后,相比基線有 2.1% AP 的顯著提升。
通過剪枝(s3 版本),CBNetV2 在提升 AP(38.0% vs. 36.0%)的同時,推理速度更快(23.3 vs. 22.4 FPS)。
實驗表明,DHLC 復合策略會降低檢測器推理速度,但剪枝策略有效提升了 CBNetV2 的推理速度。
6)CBNet 中使用相同骨干網絡的重要性
為了驗證 CBNet 中使用相同骨干網絡的必要性,我們使用 ResNet50、ResNet101、Res2Net50 和 Res2Net101 進行組合實驗(表 XVI)。
結果表明,使用相同骨干網絡的 CBNet 具有更好的檢測精度和更少的參數量。例如,CB-ResNet50 在 AP 和參數量上均優于 ResNet50-C-ResNet101 和 ResNet101-C-ResNet50。
即使是來自不同家族的骨干網絡,使用相同的骨干網絡仍然比混合使用不同網絡的效果更好。
實驗結果表明,提高復合模型的多樣性并不是 CBNet 最有效的方式。這可能是因為不同的骨干網絡需要不同的優化策略,導致學習到的特征差異較大,難以聯合訓練。CBNet 的目標是讓每個骨干網絡學習到相似的特征,前面的骨干網絡越強,主骨干輸出的特征就越具代表性。因此,使用相同的骨干網絡進行組合是 CBNet 最優的訓練策略,這也與注重多樣性的模型集成方法有所不同。
結論
在本文中,我們提出了一種新穎且靈活的主干網絡框架,稱為 復合主干網絡(Composite Backbone Network,CBNet),以提升先進目標檢測器的性能。
CBNet 由一系列具有相同網絡結構的主干網絡并行組成,采用 密集高層級復合策略(Dense Higher-Level Composition, DHLC) 和 輔助監督(Auxiliary Supervision),共同構建了一個穩健的表征能力強的主干網絡,在 **預訓練-微調(Pre-training Fine-tuning)**范式下利用現有的預訓練主干網絡。
CBNet 具有較強的泛化能力,適用于不同的主干網絡和檢測器架構的頭部設計。大量實驗表明,CBNet 兼容多種主干網絡,包括基于 CNN(如 ResNet、ResNeXt、Res2Net)和基于 Transformer(如 Swin-Transformer)的網絡。同時,相較于簡單地增加網絡深度和寬度,CBNet 更加 高效且有效。
此外,CBNet 可以靈活地集成到大多數主流檢測器中,包括:
單階段(One-stage)檢測器(如 RetinaNet);
雙階段(Two-stage)檢測器(如 Faster R-CNN、Mask R-CNN、Cascade R-CNN 和 Cascade Mask R-CNN);
基于 Anchor 的檢測器(如 Faster R-CNN);
基于 Anchor-Free 的檢測器(如 ATSS)。
CBNet 還與 特征增強網絡(如 DCN 和 HRNet)以及 模型集成方法兼容。實驗表明,以上檢測器的性能均提升了 超過 3% AP。
特別地,我們提出的 CB-Swin-L 在 COCO test-dev 數據集上取得了 59.4% 的 box AP 和 51.6% 的 mask AP,刷新了單模型單尺度的最佳成績。在多尺度測試 條件下,無需額外訓練數據,我們進一步達到了 60.1% box AP 和 52.3% mask AP 的最新最優結果。