YOLOV7主要選擇了結(jié)構(gòu)重參數(shù)化和標(biāo)簽分配兩個方向?qū)OLO系列進行了優(yōu)化。
yolo系列的網(wǎng)絡(luò)結(jié)構(gòu)其實都是大差不差的甚疟,基本都是輸入仗岖、backbone逃延、neck和head幾個部分览妖。下面我主要挑重點講一下yolov7
1.backbone
YOLOv7里使用的是CSPVOVNet, 是VoVNet的一種變體揽祥。CSPVoVNet不僅考慮到了前面所提到的模型設(shè)計問題讽膏,還分析了梯度的在模型中流動路徑,通過這個來使得不同層的權(quán)重能夠?qū)W習(xí)到更加多樣化的特征拄丰。不管是訓(xùn)練階段還是推理階段府树,以上方法都能起到不錯的效果,尤其是在推理方面料按⊙傧溃可以提升推理的速度與精度。
2.neck
在網(wǎng)絡(luò)結(jié)構(gòu)的neck處载矿,作者使用了結(jié)構(gòu)重參數(shù)的方法垄潮,這個跟yolov6有所不同,yolov6主要將重參數(shù)運用在backbone和neck處闷盔,作為關(guān)鍵的替身模型性能的組件弯洗,而yolov7主要用在head處(ps:我覺得主要是為了避嫌,畢竟v6和v7是差不多同一時間出來的文章)逢勾。同時牡整,v7的作者分析了重構(gòu)重參數(shù)的方法運用在resnet類結(jié)構(gòu)中,精度變差的原因溺拱,同時提出了解決方法逃贝,這對于我們后續(xù)設(shè)計網(wǎng)絡(luò)有非常大的幫助。
3.標(biāo)簽分配
在網(wǎng)絡(luò)的訓(xùn)練中迫摔,標(biāo)簽分配通常是指GT秋泳,這個是硬標(biāo)簽,但近年來攒菠,需要研究者會利用網(wǎng)絡(luò)的推理結(jié)果來結(jié)合GT迫皱,去生成一些軟標(biāo)簽,如IOU。在YOLOv7中卓起,有輔助頭也有引導(dǎo)頭和敬,在訓(xùn)練時,它們二者都需要得到監(jiān)督戏阅。因此昼弟,需要考慮如何為輔助頭和引導(dǎo)頭進行標(biāo)簽分配。因此在這里奕筐,作者提出了一種新的標(biāo)簽分配方法舱痘,是以引導(dǎo)頭為主,通過引導(dǎo)頭的推理來指引輔助頭和自身的學(xué)習(xí)离赫。
首先使用引導(dǎo)頭的推理結(jié)果作為指導(dǎo)芭逝,生成從粗到細(xì)的層次標(biāo)簽,分別用于輔助頭和引導(dǎo)頭的學(xué)習(xí)渊胸。
- Lead head guided label assigner 引導(dǎo)頭引導(dǎo)標(biāo)簽分配 引導(dǎo)頭引導(dǎo)標(biāo)簽分配是根據(jù)引導(dǎo)頭的預(yù)測結(jié)果和GT進行一系列優(yōu)化計算來生成軟標(biāo)簽旬盯,然后軟標(biāo)簽作為輔助頭和引導(dǎo)頭的優(yōu)化方向來訓(xùn)練模型。這樣是由于引導(dǎo)頭本身具備比較強的學(xué)習(xí)能力翎猛,因此由此產(chǎn)生的軟標(biāo)簽應(yīng)該更能代表源數(shù)據(jù)與目標(biāo)之間的分布和相關(guān)性胖翰,而且還可以將這種方式當(dāng)作是一種廣義上的余量學(xué)習(xí)。通過讓較淺的輔助頭直接學(xué)習(xí)引導(dǎo)頭已經(jīng)學(xué)習(xí)到的信息切厘,然后引導(dǎo)頭就更能專注于學(xué)習(xí)到它還沒有學(xué)習(xí)到的剩余信息萨咳。
- Coarse-to-fine lead head guided label assigner 從粗到細(xì)的引導(dǎo)頭引導(dǎo)標(biāo)簽分配 Coarse-to-fine引導(dǎo)頭使用到了自身引導(dǎo)頭的推理結(jié)果GT來生成軟標(biāo)簽,進而引導(dǎo)標(biāo)簽進行分配疫稿。然而培他,在這個過程中會生成兩組不同的軟標(biāo)簽,即粗標(biāo)簽和細(xì)標(biāo)簽而克, 其中細(xì)標(biāo)簽與引導(dǎo)頭在標(biāo)簽分配器上生成的軟標(biāo)簽是一樣的靶壮,粗標(biāo)簽是通過允許更多的網(wǎng)格作為正目標(biāo),不單單只把gt中心點所在的網(wǎng)格當(dāng)成候選目標(biāo)员萍,還把附近的三個也加進來了腾降,增加正樣本候選框的數(shù)量,以降低正樣本分配的約束碎绎。因為輔助頭的學(xué)習(xí)能力沒有指導(dǎo)頭強螃壤,所以為了避免丟失需要學(xué)習(xí)的信息,就提高輔助頭的召回率筋帖。