導(dǎo)讀
整體上在正負(fù)樣本分配中,yolov7的策略算是yolov5和YOLOX的結(jié)合。因此本文先從yolov5和YOLOX正負(fù)樣本分配策略分析入手,后引入到Y(jié)OLOv7的解析中。
整體上在正負(fù)樣本分配中,yolov7的策略算是yolov5和YOLOX的結(jié)合。
首先大概回顧一下yolov5和YOLOX正負(fù)樣本分配。
由于筆者能力有限,文章中可能出現(xiàn)一些錯(cuò)誤,歡迎大家指出。
一、yolov5正負(fù)樣本分配策略
在我之前的文章中有詳細(xì)介紹:
步驟:
步驟①:anchors和gt匹配,看哪些gt是當(dāng)前特征圖的正樣本
步驟②:將當(dāng)前特征圖的正樣本分配給對(duì)應(yīng)的grid
圖1:實(shí)線網(wǎng)格代表特征圖。虛線代表將一個(gè)特征點(diǎn)grid分為四個(gè)象限。藍(lán)色點(diǎn)代表gt的中心點(diǎn)所處位置。
那么其特點(diǎn)是:
①anchor base。
②一個(gè)gt可能會(huì)和多個(gè)anchor進(jìn)行匹配。
③某個(gè)anchor與gt匹配上,都會(huì)在當(dāng)前anchor上有3個(gè)正樣本。(理論上如果有9個(gè)anchor,那么一個(gè)gt至多可能生成9*3=27個(gè)正樣本)
二、YOLOX正負(fù)樣本分配策略
在我之前的文章中有詳細(xì)介紹:
圖2:源自曠視公眾號(hào)
那么其特點(diǎn)是:
①anchor free。
②simOTA能夠做到自動(dòng)的分析每個(gè)gt要擁有多少個(gè)正樣本。
③能自動(dòng)決定每個(gè)gt要從哪個(gè)特征圖來(lái)檢測(cè)。
三、yolov7正負(fù)樣本分配策略
首先,yolov7也仍然是anchor base的目標(biāo)檢測(cè)算法,yolov7將yolov5和YOLOX中的正負(fù)樣本分配策略進(jìn)行結(jié)合,流程如下:
①yolov5:使用yolov5正負(fù)樣本分配策略分配正樣本。
②YOLOX:?計(jì)算每個(gè)樣本對(duì)每個(gè)GT的Reg+Cla loss(Loss aware)
③YOLOX:?使用每個(gè)GT的預(yù)測(cè)樣本確定它需要分配到的正樣本數(shù)(Dynamic k)
④YOLOX:?為每個(gè)GT取loss最小的前dynamic k個(gè)樣本作為正樣本
⑤YOLOX:?人工去掉同一個(gè)樣本被分配到多個(gè)GT的正樣本的情況(全局信息)
其實(shí)主要是將simOTA中的第一步“使用中心先驗(yàn)”替換成“yolov5中的策略”。
代碼中也大量的復(fù)用了yolov5和YOLOX中的源碼。
個(gè)人感覺(jué),yolov5策略與YOLOX中simOTA策略的融合,相較于只使用yolov5策略,加入了loss aware,利用當(dāng)前模型的表現(xiàn),能夠再進(jìn)行一次精篩。而融合策略相較于只使用YOLOX中simOTA,能夠提供更精確的先驗(yàn)知識(shí)。
yolov6等工作中也都使用了simOTA作為分配策略,可見simOTA確實(shí)是能帶來(lái)很大提升的策略。
四、yolov7中AUX HEAD
圖3:yolov7論文中對(duì)于aux head的介紹
yolov7中的p6 model中都使用了aux head。
論文中提到使用aux head與lead head共同進(jìn)行模型優(yōu)化,而aux head的標(biāo)簽是較為“粗糙的“。
通過(guò)查看源碼,發(fā)現(xiàn)aux head的assigner和lead head的assigner僅存在很少的不同,包括:
①lead head中每個(gè)anchor與gt如果匹配上,分配3個(gè)正樣本,而aux head分配5個(gè)。
②lead head中將top10個(gè)樣本iou求和取整,而aux head中取top20。
這也印證了論文中的觀點(diǎn)。aux head不那么strong,aux head更關(guān)注于recall,而lead head從aux head中精準(zhǔn)篩選出樣本。
圖4:yolov7論文中對(duì)于aux head的介紹
按照yolov7中的這個(gè)正負(fù)樣本分配方式,那么針對(duì)圖5中,藍(lán)色點(diǎn)代表著gt所處的位置,實(shí)線組成的網(wǎng)格代表著特征圖grid,虛線代表著一個(gè)grid分成了4個(gè)象限以進(jìn)行正負(fù)樣本分配(不理解的需要去看下yolov5的assign方式)。
如果一個(gè)gt位于藍(lán)點(diǎn)位置,那么在lead head中,黃色grid將成為正樣本。在aux head中,黃色+橙色grid將成為正樣本。
圖5:訓(xùn)練時(shí),lead head和aux head中正樣本分配圖示(藍(lán)色點(diǎn)代表著gt所處的位置,實(shí)線組成的網(wǎng)格代表著特征圖grid,虛線代表著一個(gè)grid分成了4個(gè)象限以進(jìn)行正負(fù)樣本分配。如果一個(gè)gt位于藍(lán)點(diǎn)位置,那么在lead head中,黃色grid將成為正樣本。在aux head中,黃色+橙色grid將成為正樣本)
而在推理時(shí),下圖6中,藍(lán)色點(diǎn)代表著gt所處的位置,實(shí)線組成的網(wǎng)格代表著特征圖grid,虛線代表著一個(gè)grid分成了4個(gè)象限,而依照yolov5中的中心點(diǎn)回歸方式,僅能將圖中紅色特征grid,預(yù)測(cè)在圖中紅色+藍(lán)色區(qū)域,是根本無(wú)法將中心點(diǎn)預(yù)測(cè)到gt處的!而該紅色特征grid在訓(xùn)練時(shí)是會(huì)作為正樣本的。
在aux head中,模型也并沒(méi)有針對(duì)這種情況對(duì)回歸方式作出更改。所以其實(shí)在aux head中,即使被分配為正樣本的區(qū)域,經(jīng)過(guò)不斷的學(xué)習(xí),可能仍然無(wú)法完全擬合至效果特別好。
圖6:推理時(shí),紅色grid可推理出的cx、cy范圍(藍(lán)色點(diǎn)代表著gt所處的位置,實(shí)線組成的網(wǎng)格代表著特征圖grid,虛線代表著一個(gè)grid分成了4個(gè)象限)
而在loss融合方面,aux head loss 和lead head loss 按照0.25:1的比例進(jìn)行融合。
編輯:黃飛
?
評(píng)論