天天看點

【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors

YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors

Abstract

  • YOLOv7在5 FPS到160 FPS的範圍内,在速度和精度上都超過了所有已知的物體檢測器,在GPU V100上以30 FPS或更高的速度在所有已知的實時物體檢測器中具有最高的精度56.8% AP。
  • YOLOv7-E6對象檢測器(56 FPS V100,55.9% AP)的速度和精度分别比基于transformer的檢測器SWINL Cascade-Mask R-CNN(9.2 FPS A100,53.9% AP)快509%和2%,比基于卷積的檢測器convnext-XL Cascade-Mask R-CNN(8.6 FPS A100,55.2% AP)快551%和0.7% AP,YOLOv7的性能也更好此外,本文僅在MS COCO資料集上從頭開始訓練YOLOv7,而不使用任何其他資料集或預訓練的權重。
  • 源代碼釋出在 https://github.com/WongKinYiu/yolov7
  • 論文位址:https://arxiv.org/abs/2207.02696
  • 三位作者 Chien-Yao Wang、Alexey Bochkovskiy 和 Hong-Yuan Mark Liao 是 YOLOv4 的原班人馬。從 2015 年的 YOLOV1,2016 年 YOLOV2,2018 年的 YOLOV3,到2020年的 YOLOV4、 YOLOV5, 以及最近出現的 YOLOV6 和 YOLOV7 可以說 YOLO 系列見證了深度學習時代目标檢測的演化。

Introduction

  • 實時目标檢測是計算機視覺中一個非常重要的課題,因為它通常是計算機視覺系統中一個必要的組成部分。比如多目标跟蹤[BYTETrack,FAIRMOT],自動駕駛[GS3D,Deep multi-modal object detection and semantic segmentation for autonomous driving: Datasets, methods, and challenges],機器人學[Object detection approach for robot grasp detection,Object detection and pose estimation from rgb and depth data for real-time, adaptive robotic grasping],醫學圖像分析[Retina U-Net: Embarrassingly simple exploitation of segmentation supervision for medical object detection,CLU-CNNs: Object detection for medical images]等。
  • 執行實時物體檢測的計算裝置通常是一些移動CPU或GPU,以及各大廠商開發的各種神經處理單元(NPU)。例如,蘋果神經引擎(Apple)、神經計算棒(Intel)、傑特森人工智能邊緣裝置(Nvidia)、邊緣TPU (Google)、神經處理引擎(高通)、人工智能處理單元(聯發科)和人工智能SOC(耐能)都是npu。
  • 上面提到的一些邊緣裝置緻力于加速不同的運算,例如普通卷積、深度卷積或MLP運算。在本文中,提出的實時對象檢測器主要是希望它能夠從邊緣到雲端同時支援移動GPU和GPU裝置。
  • 近年來,針對不同邊緣裝置的實時目标檢測器仍在開發中。比如MCUNet 和NanoDet 的開發,重點是生産低功耗的單片機,提高edge CPU上的推理速度。至于YOLOX 和YOLOR等方法,則側重于提高各種GPU的推理速度。
  • 最近,實時對象檢測器的發展集中在高效架構的設計上。至于可以在CPU上使用的實時物體檢測器[NanoDet-Plus,PP-PicoDet,MobileDets,FBnetv5],它們的設計大多基于MobileNet,ShuffleNet ,或者GhostNet 。另一種主流的實時對象檢測器是為GPU開發的[You only learn one representation: Unified network for multiple tasks,YOLOX,Objects as points],它們大多使用ResNet,DarkNet ,或DLA,然後使用CSPNet 政策來優化架構。
  • 本文提出的方法不同于目前主流的實時目标檢測器的發展方向。除了架構優化之外,提出的方法将集中在訓練過程的優化上。本文的重點将放在一些優化子產品和優化方法上,這些優化子產品和優化方法可以在不增加推理成本的情況下,加強訓練成本,以提高對象檢測的準确性。把提出的子產品和優化方法稱為可訓練的bag-of-freebies。
  • 最近,模型重新參數化[RepVGG,Diverse branch block: Building a convolution as an inception-like unit,Online convolutional re-parameterization]和動态标簽配置設定[OTA: Optimal transport assignment for object detection,TOOD: Task-aligned one-stage object detection,A dual weighting label assignment scheme for object detection]已經成為網絡訓練和對象檢測中的重要課題。主要是在上述新概念提出後,目标檢測器的訓練演化出許多新的課題。
  • 在本文中,将介紹一些發現的新問題,并設計有效的方法來解決它們。對于模型的重新參數化,利用梯度傳播路徑的概念分析了适用于不同網絡層次的模型重新參數化政策,并提出了有計劃的重新參數化模型。此外,當發現使用動态标簽配置設定技術時,具有多個輸出層的模型的訓練将産生新的問題。即:“如何為不同分支的輸出配置設定動态目标?”針對這個問題,提出了一種新的标簽配置設定方法,稱為由粗到細的引導标簽配置設定。
  • 本文的貢獻總結如下
    • (1)設計了幾種可訓練的免費包方法,使得實時目标檢測在不增加推理代價的情況下,大大提高了檢測精度
    • (2)對于對象檢測方法的發展,發現了兩個新的問題,即重新參數化的子產品如何取代原始子產品,以及動态标簽配置設定政策如何處理對不同輸出層的配置設定。此外,還提出了解決這些問題帶來的困難的方法;
    • (3)提出了“擴充”和“複合縮放”的實時目标檢測方法,能夠有效地利用參數和計算量;
    • (4)該方法能有效減少目前實時目标檢測器約40%的參數和50%的計算量,并具有更快的推理速度和更高的檢測精度。
  • YOLOv7 在 5 FPS 到 160 FPS 範圍内,速度和精度都超過了所有已知的目标檢測器,并在 GPU V100 上,30 FPS 的情況下達到實時目标檢測器的最高精度 56.8% AP。YOLOv7 是在 MS COCO 資料集上從頭開始訓練的,不使用任何其他資料集或預訓練權重。
  • 相對于其他類型的工具,YOLOv7-E6 目标檢測器(56 FPS V100,55.9% AP)比基于 transformer 的檢測器 SWINL Cascade-Mask R-CNN(9.2 FPS A100,53.9% AP)速度上高出 509%,精度高出 2%,比基于卷積的檢測器 ConvNeXt-XL Cascade-Mask R-CNN (8.6 FPS A100, 55.2% AP) 速度高出 551%,精度高出 0.7%。
  • 實時目标檢測器仍在針對不同的邊緣裝置進行開發。例如,MCUNet 和 NanoDet 的開發專注于生産低功耗單晶片并提高邊緣 CPU 的推理速度;YOLOX、YOLOR 等方法專注于提高各種 GPU 的推理速度;實時目标檢測器的發展集中在高效架構的設計上;在 CPU 上使用的實時目标檢測器的設計主要基于 MobileNet、ShuffleNet 或 GhostNet;為 GPU 開發的實時目标檢測器則大多使用 ResNet、DarkNet 或 DLA,并使用 CSPNet 政策來優化架構。
  • YOLOv7 的發展方向與目前主流的實時目标檢測器不同,研究團隊希望它能夠同時支援移動 GPU 和從邊緣到雲端的 GPU 裝置。除了架構優化之外,該研究提出的方法還專注于訓練過程的優化,将重點放在了一些優化子產品和優化方法上。這可能會增加訓練成本以提高目标檢測的準确性,但不會增加推理成本。研究者将提出的子產品和優化方法稱為可訓練的「bag-of-freebies」。
  • 對于模型重參數化,該研究使用梯度傳播路徑的概念分析了适用于不同網絡層的模型重參數化政策,并提出了有計劃的重參數化模型。此外,研究者發現使用動态标簽配置設定技術時,具有多個輸出層的模型在訓練時會産生新的問題:「如何為不同分支的輸出配置設定動态目标?」針對這個問題,研究者提出了一種新的标簽配置設定方法,稱為從粗粒度到細粒度(coarse-to-fine)的引導式标簽配置設定。

Related work

Real-time object detectors

  • 目前最新的實時物體檢測器主要基于YOLO 和FCOS [Fully convolutional one-stage object detection,A simple and strong anchor-free object detector]。能夠成為最先進的實時物體檢測器通常需要具備以下特征:
    • (1)更快更強的網絡架構;
    • (2)更有效的特征內建方法;
    • (3)更精确的檢測方法;
    • (4)更穩健的損失函數;
    • (5)更有效的标簽配置設定方法;
    • (6)更有效的訓練方法。
  • 在本文中,本文不打算探索需要額外資料或大型模型的自我監督學習或知識提煉方法。相反,将設計新的可訓練的bag-of-freebies方法,用于解決從與上述(4)、(5)和(6)相關的最先進方法中衍生的問題。

Model re-parameterization

  • 模型重新參數化技術在推理階段将多個計算子產品合并為一個。模式再參數化技術可以看作是一種內建技術,可以将其分為兩類,即子產品級內建和模式級內建。為了獲得最終的推理模型,模型級的重新參數化有兩種常見的做法。
  • 一種是用不同的訓練資料訓練多個相同的模型,然後平均多個訓練好的模型的權重。另一種是對不同疊代次數的模型權重進行權重平均。子產品級重新參數化是近年來比較熱門的研究課題。
  • 這種類型的方法在訓練期間将一個子產品分成多個相同或不同的子產品分支,并在推理期間将多個分支的子產品內建為一個完全等價的子產品。然而,并不是所有提出的重新參數化子產品都可以完美地應用于不同的架構。考慮到這一點,開發了新的重新參數化子產品,并為各種架構設計了相關的應用政策。

Model scaling

  • 模型縮放是一種放大或縮小已經設計好的模型并使其适合不同計算裝置的方法。模型縮放方法通常使用不同的縮放因子,例如分辨率(輸入圖像的大小)、深度(層數)、寬度(通道的數量)和階段(特征金字塔的數量),以便在網絡參數的數量、計算、推理速度和準确性之間實作良好的折衷。
  • 網絡架構搜尋(NAS)是一種常用的模型縮放方法。NAS可以從搜尋空間中自動搜尋合适的縮放因子,而無需定義太複雜的規則。NAS的缺點是需要非常昂貴的計算來完成對模型比例因子的搜尋。在[Fast and accurate model scaling]中,研究者分析了縮放因子與參數和運算量之間的關系,試圖直接估計一些規則,進而得到模型縮放所需的縮放因子。
  • 查閱文獻,發現幾乎所有的模型縮放方法都是獨立地分析單個縮放因子,甚至複合縮放類别中的方法也是獨立地優化縮放因子。這是因為大多數流行的NAS體系結構處理的擴充因素并不十分相關。觀察到,所有基于級聯的模型,如DenseNet 或VoVNet,在縮放此類模型的深度時,會改變某些層的輸入寬度。由于所提出的架構是基于級聯的,是以必須為該模型設計一種新的複合縮放方法。

Architecture

Extended efficient layer aggregation networks

  • 在大多數關于設計高效架構的文獻中,主要考慮的不外乎參數數量、計算量和計算密度。從記憶體通路代價的特點出發,Ma等[ShuffleNet V2]還分析了輸入/輸出通道比、體系結構的分支數目、逐元素運算對網絡推理速度的影響。Dollár等人[Fast and accurate model scaling]在執行模型縮放時額外考慮了激活,即更多地考慮卷積層的輸出張量中的元素數量。
  • 下圖 (b)中CSPVoVNet [79]的設計是VoVNet 的變體。除了考慮前述的基本設計問題,CSPVoVNet 的架構還分析了梯度路徑,以使不同層的權重能夠學習更多不同的特征。上述梯度分析方法使得推斷更快更準确。下圖 ©中的ELAN 考慮了以下設計政策——“如何設計一個高效的網絡?."他們得出了一個結論:通過控制最短最長的梯度路徑,一個更深的網絡可以有效地學習和收斂。本文在ELAN的基礎上提出了擴充ELAN (E-ELAN ),其主要架構如下圖(d)所示。
    • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
    • 擴充的高效層聚合網絡。提出的擴充ELAN (E-ELAN)完全不改變原有架構的梯度傳輸路徑,而是利用組卷積來增加添加特征的基數,以shuffle合并基數的方式組合不同群的特征。這種操作方式可以增強不同特征映射所學習的特征,并改進參數和計算的使用。
  • 新的 E-ELAN 完全沒有改變原有架構的梯度傳輸路徑,其中使用組卷積來增加添加特征的基數(cardinality),并以 shuffle 和 merge cardinality 的方式組合不同組的特征。這種操作方式可以增強不同特征圖學得的特征,改進參數的使用和計算效率。
  • 無論梯度路徑長度和大規模 ELAN 中計算塊的堆疊數量如何,它都達到了穩定狀态。如果無限堆疊更多的計算塊,可能會破壞這種穩定狀态,參數使用率會降低。新提出的 E-ELAN 使用 expand、shuffle、merge cardinality 在不破壞原有梯度路徑的情況下讓網絡的學習能力不斷增強。
  • 在架構方面,E-ELAN 隻改變了計算塊的架構,而過渡層(transition layer)的架構完全沒有改變。YOLOv7 的政策是使用組卷積來擴充計算塊的通道和基數。研究者将對計算層的所有計算塊應用相同的組參數和通道乘數。然後,每個計算塊計算出的特征圖會根據設定的組參數 g 被打亂成 g 個組,再将它們連接配接在一起。此時,每組特征圖的通道數将與原始架構中的通道數相同。最後,該方法添加 g 組特征圖來執行 merge cardinality。除了保持原有的 ELAN 設計架構,E-ELAN 還可以引導不同組的計算塊學習更多樣化的特征。
  • 無論大規模ELAN中的梯度路徑長度和計算塊的堆疊數量,都達到了一個穩定的狀态。如果無限堆疊更多的計算塊,這種穩定狀态可能會被破壞,參數使用率會降低。所提出的E-ELAN使用擴充、shuffle、合并基數來實作在不破壞原有梯度路徑的情況下不斷增強網絡學習能力的能力。
  • 架構方面,E-ELAN隻是改變了計算塊的架構,而過渡層的架構完全不變。本文的政策是使用群卷積來擴充計算塊的通道和基數。将對計算層的所有計算塊應用相同的組參數和通道乘數。然後,由每個計算塊計算的特征圖将根據設定的組參數g被混洗成g個組,然後将它們連接配接在一起。此時,每組特征圖中的通道數将與原始架構中的通道數相同。最後,添加g組特征映射來執行合并基數。除了保持原有的ELAN設計架構,E-ELAN還可以引導不同組的計算塊學習更多樣的特性。

Model scaling for concatenation-based models

  • 模型縮放的主要目的是調整模型的某些屬性,生成不同尺度的模型,以滿足不同推理速度的需要。例如,EfficientNet的縮放模型考慮了寬度、深度和分辨率。至于scaled-YOLOv4,其縮放模型是調整級數。在[Fast and accurate model scaling]中,Dollár等人分析了香草卷積和群卷積在進行寬度和深度縮放時對參數和計算量的影響,并以此設計了相應的模型縮放方法。
  • 以上方法主要用于PlainNet或ResNet等架構中。當這些架構在執行放大或縮小時,每一層的入度和出度不會改變,是以可以獨立地分析每個縮放因子對參數和計算量的影響。然而,如果将這些方法應用于基于級聯的架構,會發現,當在深度上執行放大或縮小時,緊接在基于級聯的計算塊之後的翻譯層的入度會減小或增大,如下圖(a)和(b)所示。
    • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
    • 基于連接配接的模型的模型縮放。從(a)到(b),觀察到當在基于連接配接的模型上執行深度縮放時,計算塊的輸出寬度也增加。這種現象會導緻後續傳輸層的輸入寬度增加。是以,提出©,即在對基于級聯的模型進行模型縮放時,隻需要縮放計算塊中的深度,其餘的傳輸層用相應的寬度縮放。
  • 從上述現象可以推斷出,對于基于級聯的模型,不能單獨分析不同的縮放因子,而必須一起考慮。以放大深度為例,這樣的動作會引起過渡層的輸入通道和輸出通道之間的比率變化,這可能導緻模型的硬體使用量的減少。是以,必須為基于連接配接的模型提出相應的複合模型縮放方法。當縮放計算塊的深度因子時,還必須計算該塊的輸出通道的變化。然後,将在過渡層上執行相同變化量的寬度因子縮放,結果如上圖 ©所示。提出的複合縮放方法可以保持模型在初始設計時的性質,并保持最佳結構。

Trainable bag-of-freebies

Planned re-parameterized convolution

  • 雖然RepConv在VGG上取得了優異的性能,但是當直接将其應用到ResNet和DenseNet 等架構上時,其精度會明顯降低。使用梯度流傳播路徑來分析重新參數化卷積應該如何與不同的網絡相結合。也相應地設計了重新參數化卷積。
  • RepConv實際上将3 × 3卷積、1 × 1卷積、恒等式連接配接結合在一個卷積層中。在分析了RepConv與不同架構的組合和對應性能後,發現RepConv中的恒等映射破壞了ResNet中的殘差和DenseNet中的串接,為不同的特征圖提供了更多的漸變多樣性。
  • 基于上述原因,使用無恒等映射的RepConv(RepConvN)來設計計劃重參數化卷積的架構。在本文的思維中,當一個有殘差或級聯的卷積層被重新參數化的卷積所替代時,應該沒有恒等映射。下圖顯示了在PlainNet和ResNet中設計的“有計劃的重新參數化卷積”的一個例子。至于在基于殘差的模型和基于級聯的模型中的完全計劃的重新參數化卷積實驗,将在消融研究中提出。
    • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
    • 計劃的重新參數化模型。在建議的計劃的重新參數化模型中,本文發現,具有殘差或級聯連接配接的層,其RepConv不應具有恒等映射。在這些情況下,可以用不包含辨別連接配接的RepConvN來代替它。
  • 重參數化的作用:在保證模型性能的條件下加速網絡,主要是對卷積+BN層以及不同卷積進行融合,合并為一個卷積子產品。卷積+BN融合的公式化過程,紅色表示卷積參數(權重和偏置),藍色是BN參數(m是輸入均值,v 是輸入标準差,γ 和β 是兩個可學習的參數),最終經過一系列化簡,融合成了一個卷積:
  • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors

Coarse for auxiliary and fine for lead loss

  • 深度監督是一種經常用于訓練深度網絡的技術。其主要思想是在網絡的中間層增加額外的輔助頭,以輔助損失為導向的淺層網絡權值。即使對于通常收斂良好的ResNet和DenseNet等架構,深度監督仍然可以顯著提高模型在許多任務上的性能。下圖(a)和(b)分别顯示了“沒有”和“有”深度監控的對象檢測器架構。在本文中,把負責最終輸出的頭稱為引導頭,用來輔助訓練的頭稱為輔助頭。
    • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
    • 粗略用于輔助,精細用于引線頭标簽配置設定器。與正常模式(a)相比,( b)中的圖式有輔助頭。與通常的獨立标簽配置設定器©不同,提出了(d)引線頭引導的标簽配置設定器和(e)由粗到細的引線頭引導的标簽配置設定器。
    • 該标簽配置設定器通過導聯頭預測和ground truth進行優化,以同時獲得訓練導聯頭和輔助導聯頭的标簽。詳細的由粗到細的實作方法和限制設計細節将在Apendix中詳細闡述。
    • 在标簽配置設定政策方面,上圖 (a) 和 (b) 分别顯示了「沒有」和「有」深度監督的目标檢測器架構。研究者将負責最終輸出的 head 稱為 lead head,用于輔助訓練的 head 稱為 auxiliary head。該研究所提的兩種深度監督标簽配置設定政策分别如上圖 (d) 和 (e) 所示。與通常的獨立标簽配置設定器(圖 © )不同,該研究提出的标簽配置設定器通過 lead head 預測和實況進行優化,以同時獲得訓練 lead head 和 auxiliary head 的标簽。
  • YOLOv7的标簽配置設定政策(正樣本篩選),內建了YOLOv5和YOLOX兩者的精華:
    • YOLOv5 Step1:Autoanchor政策,獲得資料集最佳比對的9個anchor(可選) Step2:根據GT框與anchor的寬高比,過濾掉不合适的anchor Step3:選擇GT框的中心網格以及最鄰近的2個鄰域網格作為正樣本篩選區域(輔助頭則選擇周圍4個鄰域網格)YOLOX Step4:計算GT框與正樣本IOU并從大到小排序,選取前10個值進行求和(P6前20個),并取整作為目前GT框的K值 Step5:根據損失函數計算每個GT框和候選anchor的損失,保留損失最小的前K個 Step6:去掉同一個anchor被配置設定到多個GT框的情況
    • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
  • 接下來要讨論标簽配置設定的問題。以往在深度網絡的訓練中,标簽指派通常是直接參考ground-truth,按照給定的規則生成硬标簽。但是近年來,如果以物體檢測為例,研究人員往往利用網絡輸出的預測品質和分布,再和ground-truth一起考慮,使用一些計算和優化方法,生成一個可靠的軟标簽。例如,YOLO使用邊界框回歸預測的IoU和ground-truth作為對象的軟标簽。在本文中,稱這種機制為“标簽配置設定器”,它将網絡預測結果與ground-truth一起考慮,然後配置設定軟标簽
  • 深度監督需要針對目标對象進行訓練,無論輔助主管或主管的情況如何。在軟标簽配置設定器相關技術的開發過程中,意外地發現了一個新的衍生問題,即“如何将軟标簽配置設定給輔助頭和前導頭?”據本文所知,相關文獻至今沒有探讨過這個問題。
  • 目前最流行的方法的結果如上圖 ©所示,就是把輔助頭和引導頭分開,然後利用各自的預測結果和ground-truth來執行标簽指派。本文提出的方法是一種新的标簽配置設定方法,通過引導頭預測來引導輔助頭和引導頭。換句話說,以引導頭預測為指導,生成由粗到細的分層标簽,分别用于輔助頭和導聯頭學習。上圖 (d)和(e)分别示出了兩種提議的深度監督标簽配置設定政策。
  • Lead head引導标簽配置設定器主要基于lead head的預測結果和ground-truth情況進行計算,并通過優化過程生成軟标簽。這組軟标簽将用作輔助頭并主導的目标訓練模型。之是以要這麼做,是因為lead head有比較強的學習能力,是以由其生成的軟标簽應該更能代表源資料和目标之間的分布和相關性。此外,可以将這種學習視為一種廣義殘差學習。通過讓較淺的輔助頭直接學習lead head已經學習的資訊,lead head将更能專注于學習尚未學習的殘留資訊。
  • 由粗到細的導聯頭引導标簽配置設定器還利用導聯頭的預測結果和實際情況來生成軟标簽。然而,在該過程中,生成兩組不同的軟标簽,即,粗标簽和細标簽,其中細标簽與由導聯頭引導的标簽配置設定器生成的軟标簽相同,并且通過放松正樣本配置設定過程的限制允許更多的網格被視為正目标來生成粗标簽。
  • 之是以會這樣,是因為輔助頭的學習能力不如引導頭強,而且為了避免丢失需要學習的資訊,會重點優化輔助頭在物體檢測任務中的召回率。對于lead head的輸出,可以從高召回率的結果中篩選出高精度的結果作為最終輸出。
  • 但是,必須注意,如果粗标簽的附權重重接近細标簽的附權重重,則可能在最終預測時産生不良先驗。是以,為了使那些超粗的正網格影響更小,在解碼器中設定了限制,使得超粗的正網格不能完美地産生軟标簽。上述機制允許在學習過程中動态調整細标簽和粗标簽的重要性,并使細标簽的可優化上界始終高于粗标簽。

Other trainable bag-of-freebies

  • 在這一節中,将列出一些可訓練的行李。這些free是在訓練中使用的一些技巧,但最初的概念不是提出的。這些free的訓練細節将在附錄中詳細闡述,包括
    • (1)conv-bn-activation拓撲中的批量歸一化:這部分主要是将批量歸一化層直接連接配接到卷積層。這樣做的目的是在推斷階段将批量歸一化的均值和方差內建到卷積層的偏差和權重中。
    • (2)YOLOR中的隐含知識結合卷積特征圖以加法和乘法的方式:YOLOR中的隐含知識可以在推理階段通過預先計算簡化為一個向量。這個向量可以與前一個或後一個卷積層的偏差和權重相結合。
    • (3) EMA模型:EMA是mean teacher中使用的一種技術,在本文的系統中純粹使用EMA模型作為最終的推理模型。

Experiments

Experimental setup

  • 使用微軟的COCO資料集進行實驗,驗證了本文的目标檢測方法。所有的實驗都沒有使用預先訓練好的模型。也就是所有的模型都是從零開始訓練的。在開發過程中,使用train 2017集合進行訓練,然後使用val 2017集合進行驗證和選擇超參數。最後,在測試集2017上展示了對象檢測的性能,并将其與最先進的對象檢測算法進行了比較。詳細的訓練參數設定在附錄中描述。
  • 本文為edge GPU、normal GPU和cloud GPU設計了基本模型,它們分别被稱為YOLOv7tiny、YOLOv7和YOLOv7-W6。同時,還使用基本模型針對不同的服務需求進行模型縮放,得到不同類型的模型。對于YOLOv7,我們在頸部進行堆疊縮放,并使用提出的複合縮放方法對整個模型的深度和寬度進行放大,并使用此方法獲得YOLOv7-X。對于YOLOv7-W6,使用新提出的複合縮放方法獲得YOLOv7-E6和YOLOv7-D6。此外,将proposed EELAN用于YOLOv7-E6,進而完成YOLOv7E6E。由于YOLOv7-tiny是面向edge GPU的架構,是以會使用leaky ReLU作為激活函數。至于其他模型,使用 SiLU作為激活函數。将在附錄中較長的描述每個模型的比例因子。

Baselines

  • 選擇以前版本的YOLO和最先進的物體探測器YOLOR 作為本文的基線。下表顯示了提出的YOLOv7模型與使用相同設定訓練的那些基線的比較。
    • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
    • Comparison of baseline object detectors
  • 從結果中看到,與YOLOv4相比,YOLOv7的參數減少了75%,計算量減少了36%,AP提高了1.5%。如果與最先進的YOLOR-CSP相比,YOLOv7的參數少43%,計算量少15%,AP高0.4%。在tiny模型的性能上,與YOLOv4-tiny-31相比,YOLOv7tiny減少了39%的參數數量和49%的計算量,但保持了相同的AP。在雲GPU模型上,本文的模型在減少19%的參數數量和33%的計算量的同時,仍然可以擁有更高的AP。

Comparison with state-of-the-arts

  • 本文将提出的方法與通用GPU和移動GPU的最先進的對象檢測器進行了比較,結果如下表所示。從下表中的結果知道,所提出的方法具有最佳的速度-精度綜合權衡。如果将yolov 7-tiny-路斯與YOLOv5-N (r6.1)進行比較,本文的方法在AP上快127 fps,準确率高10.7%。另外YOLOv7在161 fps的幀率下有51.4%的AP,而AP相同的PPYOLOE-L隻有78 fps的幀率。在參數使用上,YOLOv7比PPYOLOE-L少41%,如果把114 fps推理速度的YOLOv7-X和99 fps推理速度的YOLOv5-L (r6.1)對比,YOLOv7-X可以提高AP 3.9%。
  • 如果将YOLOv7X與相近規模的YOLOv5-X (r6.1)相比,YOLOv7-X的推斷速度要快31 fps。此外,在參數和計算量方面,YOLOv7-X相比YOLOv5-X (r6.1)減少了22%的參數和8%的計算量,但AP提高了2.2%。
  • 如果用輸入分辨率1280對比YOLOv7和YOLOR,YOLOv7-W6的推斷速度比YOLOR-P6快8 fps,檢測率也提高了1% AP。至于YOLOv7-E6和YOLOv5-X6 (r6.1)的對比,前者比後者AP增益0.9%,參數少45%,計算量少63%,推理速度提高47%。YOLOv7-D6推理速度與YOLOR-E6接近,但AP提高0.8%。YOLOv7-E6E的推理速度與YOLOR-D6接近,但AP提高了0.3%。

Ablation study

Proposed compound scaling method

  • 下表顯示了使用不同的模型縮放政策進行放大時獲得的結果。其中,提出的複合縮放方法是将計算塊的深度放大1.5倍,将過渡塊的寬度放大1.25倍。如果本文的方法與隻按比例增加寬度的方法相比,本文的方法可以用更少的參數和計算量提高AP 0.5%。如果本文的方法與隻按比例增加深度的方法相比,本文的方法隻需要增加2.9%的參數數量和1.2%的計算量,就可以提高AP 0.2%。從下表的結果可以看出,提出的複合縮放政策可以更有效地利用參數和計算。
    • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
    • Ablation study on proposed model scaling.

Proposed planned re-parameterized model

  • 為了驗證本文提出的重新參數化模型的通用性,分别在基于連接配接的模型和基于殘差的模型上進行驗證。選擇用于驗證的基于級聯的模型和基于殘差的模型分别是3層ELAN和CSPDarknet。
  • 在基于級聯模型的實驗中,本文将3層堆疊ELAN中不同位置的3 × 3卷積層替換為RepConv,詳細配置如下圖所示。
    • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
    • 計劃中的RepConv 3-堆疊式ELAN。藍圈是用RepConv代替Conv的位置。
  • 從下表所示的結果中,看到所有較高的AP值都出現在提出的計劃中的重新參數化模型上。
    • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
    • Ablation study on planned RepConcatenation model.
  • 在處理基于殘差的模型的實驗中,由于原始暗子產品沒有符合設計政策的3 × 3卷積子產品,是以為實驗額外設計了一個反向暗子產品,其架構如下圖所示。
    • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
    • 反向CSPDarknet。颠倒了暗塊中1 × 1和3 × 3卷積層的位置,以符合計劃的重新參數化模型設計政策。
  • 由于帶暗塊和反暗塊的CSPDarknet的參數和運算量完全相同,是以比較是公平的。下表中所示的實驗結果充分證明了所提出的計劃的再參數化模型在基于殘差的模型上同樣有效。發現RepCSPResNet 的設計也符合本文的設計模式。
    • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
    • Ablation study on planned RepResidual model.

Proposed assistant loss for auxiliary head

  • 在輔助頭的輔助損失實驗中,比較了引導頭和輔助頭的一般獨立标記配置設定方法,也比較了兩種提出的導聯引導标記配置設定方法。在下表中顯示了所有的比較結果。從下表中列出的結果可以明顯看出,任何增加輔助損耗的模型都可以顯著提高整體性能。
    • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
    • Ablation study on proposed auxiliary head.
  • 此外,本文提出的線索引導标簽配置設定政策在AP、AP50和AP75中比一般的獨立标簽配置設定政策獲得了更好的性能。至于本文提出的粗略的助理和精細的上司标簽配置設定政策,它在所有情況下都産生最佳結果。
  • 在下圖中,顯示了在輔助頭和引線頭通過不同方法預測的目标圖。從下圖中發現,如果輔助頭學習引導軟标簽,它确實會幫助引導頭從恒定目标中提取殘差資訊。
    • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
    • Objectness map predicted by different methods at auxiliary head and lead head.
  • 在下表中,進一步分析了所提出的由粗到細的導聯引導标記配置設定方法對輔助頭解碼器的影響。也就是說,比較了引入/不引入上限限制的結果。從表中的數字來看,用離物體中心的距離來限制物體性上界的方法可以取得更好的性能。
    • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
    • Ablation study on constrained auxiliary head.
  • 由于提出的YOLOv7使用多個金字塔聯合預測物體檢測結果,可以直接将輔助頭連接配接到中間層的金字塔進行訓練。這種類型的訓練可以彌補在下一級金字塔預測中可能丢失的資訊。基于以上原因,在提出的E-ELAN架構中設計了部分輔助頭。
  • 本文的方法是在合并基數之前,在其中一組特征映射之後連接配接輔助頭,這種連接配接可以使新生成的一組特征映射的權重不被輔助loss直接更新。本文的設計允許每個鉛頭金字塔仍然從不同大小的物體中擷取資訊。下表顯示了使用兩種不同方法獲得的結果,即由粗到細導聯引導法和部分由粗到細導聯引導法。顯然,部分由粗到細的導聯引導方法具有更好的輔助效果。
    • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
    • Ablation study on partial auxiliary head.

Conclusions

  • 本文提出了一種新的實時目标檢測器結構和相應的模型縮放方法。此外,發現目标檢測方法的發展過程産生了新的研究課題。在研究過程中,發現了重新參數化子產品的替換問題和動态标簽配置設定的配置設定問題。為了解決這個問題,提出了可訓練的bag-of-freebies方法來提高目标檢測的準确性。在此基礎上,開發了YOLOv7系列目标檢測系統,獲得了最先進的結果。
  • YOLOV7,首先對輸入的圖檔 resize 為 640x640 大小,輸入到 backbone 網絡中,然後經 head 層網絡輸出三層不同 size 大小的 feature map,經過 Rep 和 conv輸出預測結果,這裡以 coco 為例子,輸出為 80 個類别,然後每個輸出(x ,y, w, h, o) 即坐标位置和前後背景,3 是指的 anchor 數量,是以每一層的輸出為 (80+5)x3 = 255再乘上 feature map 的大小就是最終的輸出了。
  • YOLOV7 head 其實就是一個 pafpn 的結構,和之前的YOLOV4,YOLOV5 一樣。首先,對于 backbone 最後輸出的 32 倍降采樣特征圖 C5,然後經過 SPPCSP,通道數從1024變為512。先按照 top down 和 C4、C3融合,得到 P3、P4 和 P5;再按 bottom-up 去和 P4、P5 做融合。這裡基本和 YOLOV5 是一樣的,差別在于将 YOLOV5 中的 CSP 子產品換成了 ELAN-H 子產品, 同時下采樣變為了 MP2 層。
  • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
  • RepConv 在訓練和推理是有一定的差別。訓練時有三個分支的相加輸出,部署時會将分支的參數重參數化到主分支上。
  • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors

More comparison

  • YOLOv7在5 FPS到160 FPS的範圍内,在速度和精度方面都超過了所有已知的物體檢測器,在GPU V100上具有30 FPS或更高的所有已知實時物體檢測器中,具有最高的精度56.8% AP test-dev / 56.8% AP min-val。YOLOv7-E6對象檢測器(56 FPS V100,55.9% AP)的速度和精度分别比基于transformer的檢測器SWIN-L Cascade Mask R-CNN(9.2 FPS A100,53.9% AP)快509%和2%,比基于卷積的檢測器conv next-XL Cascade Mask R-CNN(8.6 FPS A100,55.2% AP)快551%和0.7% AP,并且優于YOLOv此外,隻在MS COCO資料集上從頭開始訓練YOLOv7,而不使用任何其他資料集或預訓練的權重。
  • YOLOv7-E6E (56.8% AP)實時模型在COCO資料集上的最大準确率比目前最準确的美團/YOLOv6-s模型(43.1% AP)高+13.7% AP。在COCO資料集和V100 GPU上batch=32的相同條件下,我們的YOLOv7-tiny (35.2% AP,0.4 ms)模型比美團/YOLOv6-n (35.0% AP,0.5 ms)快+25%,AP高+0.2%。
  • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
    • More comparison (batch=1, no-TRT, without extra object detection training data)
  • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
    • 與其他物體探測器的比較。
  • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
    • Comparison with other real-time object detectors.
  • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
    • 與其他實時物體探測器的比較。
  • 【讀點論文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors新集合體YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
    • Comparison of different setting.

繼續閱讀