YOLOv7
在 5 FPS 到 160 FPS 范圍內(nèi)的速度和準(zhǔn)確度都超過了所有已知的目標(biāo)檢測器,并且在 GPU V100 上 30 FPS 或更高的所有已知實時目標(biāo)檢測器中具有最高的準(zhǔn)確度 56.8% AP。
YOLOv7-E6
目標(biāo)檢測器(56 FPS V100,55.9% AP)比基于Transformer
的檢測器SWIN-L Cascade-Mask R-CNN
(9.2 FPS A100,53.9% AP)的速度和準(zhǔn)確度分別高出 509% 和 2%,并且比基于卷積的檢測器ConvNeXt-XL Cascade-Mask R-CNN
(8.6 FPS A100, 55.2% AP) 速度提高 551%,準(zhǔn)確率提高 0.7%,以及YOLOv7
的表現(xiàn)還優(yōu)于:YOLOR
、YOLOX
、Scaled-YOLOv4
、YOLOv5
、DETR
、Deformable DETR
、DINO-5scale-R50
、ViT-Adapter-B
和許多其他速度和準(zhǔn)確度的目標(biāo)檢測器。此外,只在MS COCO
數(shù)據(jù)集上從零開始訓(xùn)練YOLOv7
,而不使用任何其他數(shù)據(jù)集或預(yù)訓(xùn)練的權(quán)重。
1模型設(shè)計
1.1、擴(kuò)展的高效層聚合網(wǎng)絡(luò)
在大多數(shù)關(guān)于設(shè)計高效架構(gòu)的文獻(xiàn)中,主要考慮因素不超過參數(shù)的數(shù)量、計算量和計算密度。Ma 等人還從內(nèi)存訪問成本的特點出發(fā),分析了輸入/輸出通道比
、架構(gòu)的分支數(shù)量
以及element-wise 操作
對網(wǎng)絡(luò)推理速度的影響。多爾阿爾等人在執(zhí)行模型縮放時還考慮了激活
,即更多地考慮卷積層輸出張量中的元素數(shù)量。
-
圖 2(b)中
CSPVoVNet
的設(shè)計是VoVNet
的一種變體。CSPVoVNet
的架構(gòu)除了考慮上述基本設(shè)計問題外,還分析了梯度路徑,以使不同層的權(quán)重能夠?qū)W習(xí)到更多樣化的特征。上述梯度分析方法使推理更快、更準(zhǔn)確。 -
圖 2 (c) 中的
ELAN
考慮了以下設(shè)計策略——“如何設(shè)計一個高效的網(wǎng)絡(luò)?”。他們得出了一個結(jié)論:通過控制最短最長的梯度路徑,更深的網(wǎng)絡(luò)可以有效地學(xué)習(xí)和收斂。
在本文中,作者提出了基于ELAN
的Extended-ELAN (E-ELAN)
,其主要架構(gòu)如圖 2(d)所示。
無論梯度路徑長度和大規(guī)模ELAN
中計算塊的堆疊數(shù)量如何,它都達(dá)到了穩(wěn)定狀態(tài)。如果無限堆疊更多的計算塊,可能會破壞這種穩(wěn)定狀態(tài),參數(shù)利用率會降低。作者提出的E-ELAN
使用expand
、shuffle
、merge cardinality
來實現(xiàn)在不破壞原有梯度路徑的情況下不斷增強(qiáng)網(wǎng)絡(luò)學(xué)習(xí)能力的能力。
在架構(gòu)方面,E-ELAN
只改變了計算塊的架構(gòu),而過渡層的架構(gòu)完全沒有改變。策略是使用組卷積來擴(kuò)展計算塊的通道和基數(shù)。將對計算層的所有計算塊應(yīng)用相同的組參數(shù)和通道乘數(shù)。然后,每個計算塊計算出的特征圖會根據(jù)設(shè)置的組參數(shù)g被打亂成g個組,然后將它們連接在一起。此時,每組特征圖的通道數(shù)將與原始架構(gòu)中的通道數(shù)相同。最后,添加 g 組特征圖來執(zhí)行合并基數(shù)。E-ELAN
除了保持原有的ELAN
設(shè)計架構(gòu)外,還可以引導(dǎo)不同組的計算塊學(xué)習(xí)更多樣化的特征。
1.2、基于concatenate模型的模型縮放
模型縮放的主要目的是調(diào)整模型的一些屬性,生成不同尺度的模型,以滿足不同推理速度的需求。例如,EfficientNet
的縮放模型考慮了寬度、深度和分辨率。對于Scale-yolov4
,其縮放模型是調(diào)整階段數(shù)。Doll‘a(chǎn)r等人分析了卷積和群卷積對參數(shù)量和計算量的影響,并據(jù)此設(shè)計了相應(yīng)的模型縮放方法。
上述方法主要用于諸如PlainNet
或ResNet
等架構(gòu)中。當(dāng)這些架構(gòu)在執(zhí)行放大或縮小過程時,每一層的in-degree
和out-degree
都不會發(fā)生變化,因此可以獨立分析每個縮放因子對參數(shù)量和計算量的影響。然而,如果這些方法應(yīng)用于基于concatenate的架構(gòu)時會發(fā)現(xiàn)當(dāng)擴(kuò)大或縮小執(zhí)行深度,基于concatenate的轉(zhuǎn)換層計算塊將減少或增加,如圖3(a)和(b).所示
從上述現(xiàn)象可以推斷,對于基于concatenate的模型不能單獨分析不同的縮放因子,而必須一起考慮。以scaling-up depth
為例,這樣的動作會導(dǎo)致transition layer
的輸入通道和輸出通道的比例發(fā)生變化,這可能會導(dǎo)致模型的硬件使用率下降。
因此,必須為基于concatenate的模型提出相應(yīng)的復(fù)合模型縮放方法。當(dāng)縮放一個計算塊的深度因子時,還必須計算該塊的輸出通道的變化。然后,將對過渡層進(jìn)行等量變化的寬度因子縮放,結(jié)果如圖3(c)所示。本文提出的復(fù)合縮放方法可以保持模型在初始設(shè)計時的特性并保持最佳結(jié)構(gòu)。
2訓(xùn)練方法
2.1 Planned re-parameterized convolution
盡管RepConv
在VGG
基礎(chǔ)上取得了優(yōu)異的性能,但當(dāng)將它直接應(yīng)用于ResNet
、DenseNet
和其他架構(gòu)時,它的精度將顯著降低。作者使用梯度流傳播路徑來分析重參數(shù)化的卷積應(yīng)該如何與不同的網(wǎng)絡(luò)相結(jié)合。作者還相應(yīng)地設(shè)計了計劃中的重參數(shù)化的卷積。
RepConv
實際上結(jié)合了3×3卷積,1×1卷積,和在一個卷積層中的id連接。通過分析RepConv
與不同架構(gòu)的組合及其性能,作者發(fā)現(xiàn)RepConv
中的id連接破壞了ResNet
中的殘差和DenseNet
中的連接,為不同的特征圖提供了更多的梯度多樣性。
基于上述原因,作者使用沒有id連接的RepConv
(RepConvN
)來設(shè)計計劃中的重參數(shù)化卷積的體系結(jié)構(gòu)。在作者的思維中,當(dāng)具有殘差或連接的卷積層被重新參數(shù)化的卷積所取代時,不應(yīng)該存在id連接。圖4顯示了在PlainNet
和ResNet
中使用的“Planned re-parameterized convolution”的一個示例。對于基于殘差的模型和基于concatenate的模型中Planned re-parameterized convolution實驗,它將在消融研究環(huán)節(jié)中提出。
2.2 標(biāo)簽匹配
深度監(jiān)督是一種常用于訓(xùn)練深度網(wǎng)絡(luò)的技術(shù)。其主要概念是在網(wǎng)絡(luò)的中間層增加額外的auxiliary Head
,以及以auxiliary
損失為導(dǎo)向的淺層網(wǎng)絡(luò)權(quán)值。即使對于像ResNet
和DenseNet
這樣通常收斂得很好的體系結(jié)構(gòu),深度監(jiān)督仍然可以顯著提高模型在許多任務(wù)上的性能。圖5(a)和(b)分別顯示了“沒有”和“有”深度監(jiān)督的目標(biāo)檢測器架構(gòu)。在本文中,將負(fù)責(zé)最終輸出的Head
為lead Head
,將用于輔助訓(xùn)練的Head
稱為auxiliary Head
。
過去,在深度網(wǎng)絡(luò)的訓(xùn)練中,標(biāo)簽分配通常直接指GT,并根據(jù)給定的規(guī)則生成硬標(biāo)簽。然而,近年來,如果以目標(biāo)檢測為例,研究者經(jīng)常利用網(wǎng)絡(luò)預(yù)測輸出的質(zhì)量和分布,然后結(jié)合GT考慮,使用一些計算和優(yōu)化方法來生成可靠的軟標(biāo)簽。例如,YOLO使用邊界框回歸預(yù)測和GT的IoU作為客觀性的軟標(biāo)簽。在本文中,將網(wǎng)絡(luò)預(yù)測結(jié)果與GT一起考慮,然后將軟標(biāo)簽分配為“l(fā)abel assigner”的機(jī)制。
無論auxiliary Head或lead Head的情況如何,都需要對目標(biāo)目標(biāo)進(jìn)行深度監(jiān)督培訓(xùn)。在軟標(biāo)簽分配人相關(guān)技術(shù)的開發(fā)過程中,偶然發(fā)現(xiàn)了一個新的衍生問題,即“如何將軟標(biāo)簽分配給auxiliary head
和lead head
?”據(jù)我們所知,相關(guān)文獻(xiàn)迄今尚未對這一問題進(jìn)行探討。目前最常用的方法的結(jié)果如圖5(c)所示,即將auxiliary head
和lead head
分開,然后使用它們自己的預(yù)測結(jié)果和GT來執(zhí)行標(biāo)簽分配。本文提出的方法是一種新的標(biāo)簽分配方法,通過lead head
預(yù)測來引導(dǎo)auxiliary head
和lead head
。換句話說,使用lead head
預(yù)測作為指導(dǎo),生成從粗到細(xì)的層次標(biāo)簽,分別用于auxiliary head
和lead head
的學(xué)習(xí)。所提出的2種深度監(jiān)督標(biāo)簽分配策略分別如圖5(d)和(e)所示。
1、Lead head guided label assigner
lead head
引導(dǎo)標(biāo)簽分配器主要根據(jù)lead head
的預(yù)測結(jié)果和GT進(jìn)行計算,并通過優(yōu)化過程生成軟標(biāo)簽。這組軟標(biāo)簽將作為auxiliary head
和lead head
的目標(biāo)訓(xùn)練模型。這樣做的原因是lead head
具有相對較強(qiáng)的學(xué)習(xí)能力,因此由此產(chǎn)生的軟標(biāo)簽應(yīng)該更能代表源數(shù)據(jù)與目標(biāo)之間的分布和相關(guān)性。此外,還可以將這種學(xué)習(xí)看作是一種generalized residual learning
。通過讓較淺的auxiliary head
直接學(xué)習(xí)lead head
已經(jīng)學(xué)習(xí)到的信息,lead head
將更能專注于學(xué)習(xí)尚未學(xué)習(xí)到的殘余信息。
2、Coarse-to-fine lead head guided label assigner
從粗到細(xì)的lead head
引導(dǎo)標(biāo)簽分配器也使用lead head
的預(yù)測結(jié)果和GT來生成軟標(biāo)簽。然而,在這個過程中,生成了兩組不同的軟標(biāo)簽,即粗標(biāo)簽和細(xì)標(biāo)簽,其中細(xì)標(biāo)簽與lead head
引導(dǎo)標(biāo)簽分配器生成的軟標(biāo)簽相同,而粗標(biāo)簽是通過允許更多的網(wǎng)格來生成的。通過放寬正樣本分配過程的約束,將其視為正目標(biāo)。原因是auxiliary head
的學(xué)習(xí)能力不如前lead head
強(qiáng),為了避免丟失需要學(xué)習(xí)的信息,將重點優(yōu)化auxiliary head
的召回率。
至于lead head
的輸出,可以從高recall
結(jié)果中過濾出高精度結(jié)果作為最終輸出。但是,必須注意,如果粗標(biāo)簽的附加權(quán)重接近細(xì)標(biāo)簽的附加權(quán)重,則可能會在最終預(yù)測時產(chǎn)生不良先驗。因此,為了使那些超粗的正網(wǎng)格影響更小,在解碼器中設(shè)置了限制,使超粗的正網(wǎng)格不能完美地產(chǎn)生軟標(biāo)簽。上述機(jī)制允許在學(xué)習(xí)過程中動態(tài)調(diào)整細(xì)標(biāo)簽和粗標(biāo)簽的重要性,使細(xì)標(biāo)簽的可優(yōu)化上界始終高于粗標(biāo)簽。
2.3 其他Tricks
這些免費的訓(xùn)練細(xì)節(jié)將在附錄中詳細(xì)說明,包括:(1)conv-bn-activation topology
中的Batch normalization
:這部分主要將batch normalization layer
直接連接到卷積層。這樣做的目的是在推理階段將批歸一化的均值和方差整合到卷積層的偏差和權(quán)重中。
(2) 隱性知識在YOLOR
中結(jié)合卷積特征圖的加法和乘法方式:YOLOR
中的隱式知識可以在推理階段通過預(yù)計算簡化為向量。該向量可以與前一個或后一個卷積層的偏差和權(quán)重相結(jié)合。
(3)EMA
模型:EMA
是一種在mean teacher
中使用的技術(shù),在系統(tǒng)中使用EMA
模型純粹作為最終的推理模型。
3實驗
3.1 精度對比
3.2 速度精度對比
審核編輯 :李倩
-
檢測器
+關(guān)注
關(guān)注
1文章
857瀏覽量
47630 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1201瀏覽量
24622 -
ELAN
+關(guān)注
關(guān)注
0文章
3瀏覽量
5114
原文標(biāo)題:YOLOv7官方開源 | Alexey Bochkovskiy站臺,精度速度超越所有YOLO,還得是AB
文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論