以下資料由本人觀看up主霹靂吧啦Wz的講解視頻總結(jié)而來,總結(jié)定有不足之處,可移步觀看up主本人的視頻講解,講的很好(給我導(dǎo)打個(gè)廣告)
創(chuàng)新互聯(lián)于2013年成立,先為薩爾圖等服務(wù)建站,薩爾圖等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為薩爾圖企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。文章目錄每行表示一個(gè)物體,屬性有圖片文件名,物體類別,邊緣框,有6個(gè)值
COCO數(shù)據(jù)集,目標(biāo)檢測(cè)的經(jīng)典數(shù)據(jù)集,80個(gè)類別,330k圖片,1.5m物體
目標(biāo)檢測(cè)常見指標(biāo)TP(True Positive): IoU>0.5的檢測(cè)框數(shù)量(同一Ground Truth只計(jì)算一次)
FP(False Positive): IoU<=0.5的檢測(cè)框(或者是檢測(cè)到同一個(gè)GT的多余檢測(cè)框的數(shù)量)
FN(False Negative): 沒有檢測(cè)到的GT的數(shù)量
Precision: TP / (TP + FP) 模型預(yù)測(cè)的所有目標(biāo)中,預(yù)測(cè)正確的比例
Recall: TP / (TP + FN) 所有真實(shí)目標(biāo)中,模型預(yù)測(cè)正確的目標(biāo)比例
AP: P-R曲線下面積
P-R曲線: Precision-Recall曲線
mAP: mean Average Precision, 即各類別AP的平均值
yolov1 論文思想1.將一幅圖像分成SxS個(gè)網(wǎng)格(grid cell), 如果某個(gè)object的中心 落在這個(gè)網(wǎng)格 中,則這個(gè)網(wǎng)格就負(fù)責(zé)預(yù)測(cè)這個(gè)object。
2.每個(gè)網(wǎng)格要預(yù)測(cè)B個(gè)bounding box,每個(gè)bounding box,除了要預(yù)測(cè)位置的四個(gè)參數(shù)之外,還要附帶預(yù)測(cè)一個(gè)confidence值,共5個(gè)。 每個(gè)網(wǎng)格還要預(yù)測(cè)C個(gè)類別的分?jǐn)?shù)。B一般取2
每個(gè)bounding box要預(yù)測(cè)五個(gè)值,有位置參數(shù),confidence值(置信度)yolo獨(dú)有參數(shù),每個(gè)網(wǎng)格預(yù)測(cè)C個(gè)類別的分?jǐn)?shù)
以上圖為例,yolov1最終會(huì)得到一個(gè)7x7x30的tensor。
解釋:對(duì)于一個(gè)7x7的網(wǎng)格來說,每個(gè)網(wǎng)格預(yù)測(cè)2個(gè)budding box,每個(gè)budding box包括位置信息(x,y,w,h)及confidence,再加上網(wǎng)格的C個(gè)類別分?jǐn)?shù),因此加起來為30
其中x,y表示預(yù)測(cè)目標(biāo)框的中心坐標(biāo),范圍在0-1之間,坐標(biāo)相對(duì)于預(yù)測(cè)目標(biāo)框,w,h表示預(yù)測(cè)目標(biāo)框的坐標(biāo),相對(duì)于整個(gè)網(wǎng)格,范圍同上
confidence定義為預(yù)測(cè)目標(biāo)的budding box與真實(shí)目標(biāo)budding box的交并比*Pr(object),后者取0或1,取零表示網(wǎng)格中不存在當(dāng)前目標(biāo),取1表示網(wǎng)格存在當(dāng)前目標(biāo)。yolo中無anchor的概念,直接預(yù)測(cè)位置信息,與SSD,F(xiàn)ast-Rcnn的區(qū)別
最終得到的目標(biāo)概率如上,既包括類別的概率,也包括預(yù)測(cè)目標(biāo)框與真實(shí)目標(biāo)框的交并比
網(wǎng)絡(luò)結(jié)構(gòu)未標(biāo)s,默認(rèn)步距為1
損失函數(shù) bounding box損失計(jì)算損失采用的都是誤差平方和的方法sum-squared error
如圖,在相同偏移的情況下,無論大目標(biāo)還是小目標(biāo),誤差都是一樣的,但對(duì)于小目標(biāo)預(yù)測(cè)而言,誤差很不理想,大目標(biāo)卻很合適,所以改用采用y=sqrt(x)的方法求誤差平方和,在相同偏移的情況下這樣能夠使小目標(biāo)的損失大于大目標(biāo)的損失,從而更去關(guān)注小目標(biāo)的損失,對(duì)小目標(biāo)更為敏感
confidence損失classes損失將上述三個(gè)損失函數(shù)相加,得到最終的損失函數(shù)
yolov1的局限性對(duì)群體性的小目標(biāo)檢測(cè)結(jié)果不理想,比如一群鳥
當(dāng)目標(biāo)出現(xiàn)新的尺寸或比例時(shí),效果不理想
主要錯(cuò)誤原因來自于定位不準(zhǔn)確,沒有采用之前的錨框方法
從yolov2開始采取基于錨框的回歸預(yù)測(cè)
yolov2 yolov2中的嘗試 Batch Normalization添加BN層,能夠達(dá)到將近%2的mAP提升,有利于訓(xùn)練收斂,起到對(duì)模型的正則化作用,可以不再使用dropout層
Hign Resolution Classifier(高分辨率圖像)‘采用448x448的輸入,能夠帶來將近%4的mAP提升
Convolutional With Anchor Boxes(采用錨框的預(yù)測(cè)方式)基于錨框的偏移使得網(wǎng)絡(luò)更易學(xué)習(xí),簡(jiǎn)化yolov1中的問題,對(duì)于mAP會(huì)有輕微我的下降,但召回率提升很大,說明網(wǎng)絡(luò)有很大的提升空間
Dimension Cluters采用k-means聚類方法獲取anchor
Direct location prediction讓每個(gè)anchor去負(fù)責(zé)預(yù)測(cè)目標(biāo)中心落在某個(gè)grid cell(網(wǎng)格單元)區(qū)域內(nèi)的目標(biāo) ,限制在感受野內(nèi)
Fine-Grained Featuires通過passthrough layer使相對(duì)底層的特征圖和高層的特征圖進(jìn)行融合,從而提升小目標(biāo)的檢測(cè)效果
PassThrough Layer實(shí)現(xiàn)此目的例子:4x4變成4通道的2x2
Multi-Scale Training(多尺度訓(xùn)練方法)在迭代若干次后,將網(wǎng)絡(luò)輸入的圖片隨機(jī)修改成其他尺寸
原論文中采用的是加32的整數(shù)倍來改編輸入尺寸
骨干網(wǎng)絡(luò) BackBone:Darknet-1919代表有19個(gè)卷積層
模型框架Filters:卷積核個(gè)數(shù) Size:卷積核大小 無標(biāo)注默認(rèn)步距為1
Convolution中的Conv2d無偏置
最后的conv2d就是單純卷積,沒有BN,沒有激活函數(shù)
x5表示一個(gè)目標(biāo)會(huì)生成5個(gè)anchor,每個(gè)anchor有位置參數(shù)和類別分?jǐn)?shù)
yolov3 骨干網(wǎng)絡(luò) BackBone:Darknet-53有53個(gè)卷積層,每個(gè)框是一個(gè)殘差結(jié)構(gòu),沒有大池化層,下采樣基本都是卷積層來實(shí)現(xiàn)的,卷積層替代大池化下采樣提升的原因是卷積層的參數(shù)是可以學(xué)習(xí)的
每個(gè)Convolutional由如下部分組成:
無偏置參數(shù)
在coco數(shù)據(jù)集上訓(xùn)練,由于會(huì)選取三個(gè)不同尺寸的anchor模板,因此會(huì)輸出三個(gè)尺度的tensor,每個(gè)tensor有85個(gè)參數(shù),4個(gè)位置參數(shù),一個(gè)confidence,80個(gè)類別分?jǐn)?shù)
模型框架從Dark-net53中輸出進(jìn)入以下結(jié)果
concatenate均是在通道維進(jìn)行拼接
共產(chǎn)生三個(gè)輸出,預(yù)測(cè)輸出1是13x13的,預(yù)測(cè)相對(duì)較大我的目標(biāo);
? 預(yù)測(cè)輸出2是26x26的,預(yù)測(cè)相對(duì)中等的目標(biāo);
? 預(yù)測(cè)輸出3是52x52的,預(yù)測(cè)相對(duì)較小的目標(biāo);
目標(biāo)邊界框的預(yù)測(cè)目標(biāo)中心點(diǎn)的參數(shù)并不是相對(duì)于anchor的,而是相對(duì)于當(dāng)前整個(gè)cell的左上角點(diǎn),虛線框表示實(shí)際的目標(biāo)框,藍(lán)色框表示預(yù)測(cè)的目標(biāo)框,當(dāng)卷積操作到紅色標(biāo)出的cell中,就產(chǎn)生如下計(jì)算,其他cell亦然
bx,by的范圍都是在cell之內(nèi)的,預(yù)測(cè)的目標(biāo)框的中心點(diǎn)限制在當(dāng)前cell中
這樣做,可以加快網(wǎng)絡(luò)的收斂
正負(fù)樣本匹配準(zhǔn)則GT中心點(diǎn)所在的那個(gè)cell的AT2被預(yù)測(cè)為正樣本
當(dāng)三個(gè)anchor的模板IoU均大于設(shè)定的閾值(上圖是0.3)時(shí),會(huì)將該cell的三個(gè)AT均歸納為正樣本,擴(kuò)充正樣本的數(shù)量
損失計(jì)算置信度損失對(duì)于每個(gè)bounding box的目標(biāo)分?jǐn)?shù)使用邏輯回歸計(jì)算,采用二值交叉熵?fù)p失
pytorch當(dāng)中的有nn.BCE函數(shù)
分類損失同樣采用二值交叉熵?fù)p失計(jì)算,并用sigmoid激活函數(shù)輸出,得到的概率是相互獨(dú)立的
定位損失采用的是預(yù)測(cè)值與真實(shí)值的差值再平方的計(jì)算方法,類似MSE,在后續(xù)的yolo網(wǎng)絡(luò)中并不是這個(gè)損失函數(shù)
BN層用于計(jì)算每一個(gè)特征層的均值和方差,batch_size越大,得到的均值和方差就更接近整個(gè)數(shù)據(jù)集的均值和方差,但受限于硬件,batch_size是有增長局限的。因此,將多張圖片拼接在一起輸入網(wǎng)絡(luò),可變相地增加了輸入網(wǎng)絡(luò)的batch_size,更好的接近整個(gè)數(shù)據(jù)集的均值與方差
SPP模塊輸入一共分成了四個(gè)分支,一個(gè)直接接到輸出,一個(gè)進(jìn)行5x5的大池化,一個(gè)進(jìn)行9x9大池化。一個(gè)進(jìn)行13x13的大池化,步距均為1,池化之前會(huì)對(duì)特征矩陣做padding填充,經(jīng)過上述操作后各個(gè)分支的高寬和通道數(shù)都不變,最后作拼接,得到通道數(shù)x4的特征矩陣
SSP模塊3個(gè)和1個(gè)的比較,隨著輸入尺寸越來越大,3個(gè)SPP模塊的效果要更好一些,但是推理時(shí)間相應(yīng)地會(huì)增加
模型框架與yolov3的區(qū)別在于在第一個(gè)預(yù)測(cè)輸出之前加了SPP模塊
該網(wǎng)絡(luò)輸入圖像是512x512的RGB圖像
右上角第三種的交并比最高,效果最好,且三者L2損失一樣
IoU損失函數(shù)紅框所示,或者是1-IoU
相比L2 Loss,用IoU Loss可以更好反映重合程度,具有尺度不變性,即無論矩形框是大是小,重合程度與矩形框的尺寸是無關(guān)的
缺點(diǎn)就是兩個(gè)框不相交時(shí)IoU為0,IoU Loss會(huì)趨向于無窮大
GIoU Loss綠框表示真實(shí)的目標(biāo)框,紅色表示網(wǎng)絡(luò)預(yù)測(cè)的目標(biāo)框,藍(lán)色框表示能涵蓋綠框和紅框并集的最小框,Ac表示藍(lán)框的大小,u表示綠框和紅框的并集大小,當(dāng)綠框和紅框重合程度越大,IoU越趨近于1,后面分式越趨近于0,GIoU越趨近于1;相反,綠框和紅框距離無限拉遠(yuǎn),IoU越趨近于0,分式越接近1,GIoU越趨近于-1
缺點(diǎn):在高寬比相同以及兩框處于水平、垂直的位置關(guān)系時(shí),會(huì)退化成IoU
改進(jìn)原因:IoU Loss收斂太慢;GIoU回歸不準(zhǔn)確
綠框是真實(shí)框,黑色表示一個(gè)初始的訓(xùn)練框,藍(lán)框表示基于黑框不斷迭代接近真實(shí)框的預(yù)測(cè)框
DIoU在更少的迭代次數(shù)下,擬合更準(zhǔn)確,右側(cè)表示的三種情況,前兩種IoU已經(jīng)無法反映三者之間的差別了,但DIoU可以
b表示預(yù)測(cè)框的中心點(diǎn)坐標(biāo),bgt表示真實(shí)框的中心點(diǎn)坐標(biāo),d是這兩個(gè)中心點(diǎn)的歐氏距離,c表示兩框最小外接矩形的對(duì)角線長度
CIoU Loss在DIoU基礎(chǔ)上加上長(高)寬比
原論文提到使用Focal Loss反而mAP降2個(gè)百分點(diǎn)
Focal Loss都是針對(duì)One-stage object detection model的,如SSD,yolo,但會(huì)出現(xiàn)Class Imbalance,即正負(fù)樣本不匹配的問題
一張圖像中能夠匹配到目標(biāo)的候選框(正樣本)個(gè)數(shù)一般只有十幾個(gè)或幾十個(gè),而沒匹配到的候選框(負(fù)樣本)大概有10的4次冪-105次冪個(gè),在這10的4次冪-10的5次冪個(gè)未匹配到目標(biāo)的候選框中大部分都是簡(jiǎn)單易分的負(fù)樣本(對(duì)訓(xùn)練網(wǎng)絡(luò)起不到什么 作用,但由于數(shù)量太多會(huì)淹沒掉少量但有助于訓(xùn)練的樣本)
例如下圖的紅色框和黃色框的數(shù)量比較
通過hard negative mining的方法篩選正負(fù)樣本,尋找Loss較大的負(fù)樣本,但是效果沒有使用Focal Loss的效果好
使用Focal Loss的原因當(dāng)為正樣本時(shí),α取1,負(fù)樣本時(shí)α取-1,α用于平衡正負(fù)樣本的權(quán)重
Focal Loss的定義α無法區(qū)分哪些是容易的樣本,哪些是困難的樣本,因此提出損失函數(shù),降低簡(jiǎn)單樣本的權(quán)重,聚焦去訓(xùn)練難以分辨的樣本,引入1-Pt的γ次冪
1-Pt的γ次冪可以降低易分樣本的損失貢獻(xiàn)
最終公式:
γ是超參數(shù),α是平衡因子,γ、α分別取2,0.25時(shí),mAP最高
損失對(duì)比p–預(yù)測(cè)概率 y–取1表示正樣本,取0表示負(fù)樣本, CE–交叉熵?fù)p失 FL–論文提出的損失
rate–兩種損失的比值
α=0.25,γ=2的情況下
藍(lán)色兩行表示易分類的正樣本;紅色兩行表示易分類的負(fù)樣本;采用FL確實(shí)降低易分樣本的權(quán)重
后兩行表示難學(xué)習(xí)的正負(fù)樣本,F(xiàn)L可以更好的學(xué)習(xí)難學(xué)習(xí)的樣本
缺點(diǎn):調(diào)參的影響大,訓(xùn)練集要標(biāo)注準(zhǔn)確,易受噪音干擾
yolov4(2020 CVPR) 介紹網(wǎng)絡(luò)結(jié)構(gòu) CSPDarknet53 CSP結(jié)構(gòu)CSP結(jié)構(gòu)作用:增強(qiáng)CNN的學(xué)習(xí)能力;移除計(jì)算瓶頸;降低顯存使用
part1和part2通道數(shù)均減半,part2經(jīng)過兩個(gè)ResBlock再接ConvBNMish,然后拼接輸出,如上圖所示
Darknet53Mish激活函數(shù):Mish=x * tanh(ln(1+e^x))
Mish激活函數(shù)無邊界(即正值可以達(dá)到任何高度)避免了由于封頂而導(dǎo)致的飽和。理論上對(duì)負(fù)值的輕微允許允許更好的梯度流,而不是像ReLU中那樣的硬零邊界。
mish函數(shù)具有以下幾個(gè)特點(diǎn):1、無上限,但是有下限;2、光滑;3、非單調(diào)
與其他激活函數(shù)比較
ConvBNMish結(jié)構(gòu)由一個(gè)卷積層,一個(gè)BN層,一個(gè)Mish激活函數(shù)組成
ResBlock主分支是一個(gè)1x1、步距為1的ConvBNMish加上一個(gè)3x3、步距為1的ConvBNMish,
然后在輸出端與輸入端進(jìn)行通道維的拼接
在DownSample1中的CSP結(jié)構(gòu)中,兩分支的通道數(shù)并未減半,之后的DownSample才開始減半
SSP(同yolov3) PAN結(jié)構(gòu)–Path Aggregation NetworkFPN模塊:將高層的語義信息與低層的融合
在此基礎(chǔ)上加上一個(gè)模塊,該模塊是將低層的語義信息與高層的融合,就是PAN模塊
另外不同的是,原始PANNet中,特征層與特征層的融合采用的是相加的方法,而yolov4采用的是通道維相加的方法
yolov4整體網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化策略 Eliminate grid sensitivity–消除grid網(wǎng)格的敏感程度上圖會(huì)有極端情況,即gt box的中心點(diǎn)落在grid的頂點(diǎn)時(shí),我們希望網(wǎng)絡(luò)預(yù)測(cè)的tx,ty是0,
但sigmoid函數(shù)在x趨向于負(fù)無窮時(shí)才會(huì)到0,這種數(shù)值網(wǎng)絡(luò)一般無法達(dá)到
下圖引入縮放因子來解決這個(gè)問題,但會(huì)導(dǎo)致預(yù)測(cè)中心點(diǎn)出框的問題(未解釋)
最后兩行是yolov5中的公式,y取到的范圍更廣,y對(duì)x更加敏感了
Mosaic data augmentation(同yolov3) IoU threshold(match positive sample)–匹配正樣本的IoU閾值通過之前的消除grid網(wǎng)格敏感度,可以得到更多的正樣本數(shù)量,上圖所示三個(gè)網(wǎng)格的AT2都會(huì)對(duì)應(yīng)成正樣本,根據(jù)上面提到的右下角公式可以推斷左上角的網(wǎng)格不在內(nèi),因?yàn)樽笊辖屈c(diǎn)與黑點(diǎn)的x,y偏移量是超過公式提供的值域的,因此不算在內(nèi)
右下角極端情況,x,y偏移量分別剛好等于0.5,1.5,這時(shí)只采用剛好落入該grid cell的anchor框,yolov5中這種cell的擴(kuò)散都是上下左右方向的,不會(huì)有斜對(duì)角
Optimizered Anchors–優(yōu)化錨框CIoU損失函數(shù)(同yolov3 SPP)yolov5(v6.1版本) 前言右上角主要針對(duì)輸入分辨率是640x640的圖片,下采樣倍率大達(dá)到32倍,與之前的一樣,預(yù)測(cè)特征層也有三層
左下角主要針對(duì)輸入1280x1280的圖片,更高分辨率,下采樣倍率大達(dá)到64倍,預(yù)測(cè)特征層有四層
性能對(duì)比
輸入的特征層每2x2大小化成一個(gè)patch,然后標(biāo)注四個(gè)位置,然后畫出若干個(gè)這樣的patch,然后將每個(gè)patch中位置一樣的塊拼成新的特征層,如此一來,原來的輸入特征層高寬減半,通道方向翻了4倍,再接上一個(gè)3x3的卷積層
池化部分并行改串行,每一個(gè)串行都等價(jià)于一個(gè)并行模塊,采用更小的卷積核,計(jì)算量也會(huì)更小
數(shù)據(jù)增強(qiáng) mosaic(同上) Copy paste不同圖像的目標(biāo)復(fù)制粘貼,前提是數(shù)據(jù)集中必須要有每個(gè)目標(biāo)的實(shí)例分割標(biāo)簽
Random affine–隨機(jī)仿射變換包括旋轉(zhuǎn)、平移、縮放、錯(cuò)切
Mix Up將兩張圖片按一定透明程度混合成新圖片
濾波,直方圖均衡化,改變圖片質(zhì)量,源代碼默認(rèn)不使用
Augment HSV(Hue, Saturation,Value)調(diào)節(jié)色度,飽和度,明度
Random horizontal flip水平隨機(jī)翻轉(zhuǎn)
訓(xùn)練策略 Multi-scale training 多尺度訓(xùn)練(0.5~1.5x)比如訓(xùn)練輸入圖片是640x640,那么實(shí)際訓(xùn)練圖片大小是在0.5x640到1.5x640之間的,隨機(jī)取值,且取32的整數(shù)倍(受下采樣的倍率影響)
AutoAnchor(For training custom data)一般自己數(shù)據(jù)集啟用,數(shù)據(jù)集的目標(biāo)大小與常見的數(shù)據(jù)集目標(biāo)差異過大時(shí),建議采用,他會(huì)自動(dòng)生成新的anchor,遷移學(xué)習(xí)時(shí)該方法不可用
Warmup and Cosine LR scheduler以cos函數(shù)的形式改變學(xué)習(xí)率
EMA(Exponential Moving Average)相當(dāng)于給學(xué)習(xí)的變量增加動(dòng)量,更新參數(shù)會(huì)更加平滑
Mixed precision混合精度訓(xùn)練,可減少GPU顯存占用,理論減半,加速兩倍訓(xùn)練,適合非常大型網(wǎng)絡(luò)模型的訓(xùn)練,需要GPU支持該方法
Evolve hyper-parameters煉丹,建議采用官方的超參數(shù)
其他 損失計(jì)算λ是超參數(shù),平衡因子
平衡不同尺度損失對(duì)每個(gè)目標(biāo)的權(quán)重設(shè)置
P3–小目標(biāo)
P4–中等目標(biāo)
P5–大目標(biāo)
消除grid敏感度tx,ty – 網(wǎng)絡(luò)預(yù)測(cè)的目標(biāo)中心點(diǎn)相對(duì)于當(dāng)前grid cell左上角的偏移參數(shù)
cx,cy – 當(dāng)前grid cell左上角的坐標(biāo)
問題仍然是目標(biāo)中心點(diǎn)落在grid cell邊界上時(shí)所產(chǎn)生的正無窮和負(fù)無窮的問題
解決方法引入縮放因子,同yolov4
另外的變換,對(duì)高寬進(jìn)行改進(jìn)
修改原因:https://github.com/ultralytics/yolov5/issues/471
th,tw過大會(huì)出現(xiàn)指數(shù)爆炸,訓(xùn)練不穩(wěn)定的情況,改用之后,限制在0~4之間
匹配正樣本(Bulid targets)先計(jì)算gt與每個(gè)anchor的高度和寬度比值
然后求rw-max和rh-max,計(jì)算gt與anchor在高度和寬度方向的差異,差異越小,這兩個(gè)數(shù)據(jù)越接近于1
最后計(jì)算在高度和寬度方向差異大的比例
設(shè)立閾值anchor-t,若r-max小于anchor-t,則匹配成功,anchor-t的取值是跟上面的縮放后的值域有關(guān)
后續(xù)步驟與yolov4一致
通過之前的消除grid網(wǎng)格敏感度,可以得到更多的正樣本數(shù)量,上圖所示三個(gè)網(wǎng)格的AT2都會(huì)對(duì)應(yīng)成正樣本,根據(jù)上面提到的右下角公式可以推斷左上角的網(wǎng)格不在內(nèi),因?yàn)樽笊辖屈c(diǎn)與黑點(diǎn)的x,y偏移量是超過公式提供的值域的,因此不算在內(nèi)
右下角極端情況,x,y偏移量分別剛好等于0.5,1.5,這時(shí)只采用剛好落入該grid cell的anchor框,yolov5中這種cell的擴(kuò)散都是上下左右方向的,不會(huì)有斜對(duì)角
yoloxAnchor-Free思想(Fcos網(wǎng)絡(luò)用過)
decoupled detection head–解耦檢測(cè)頭
advanced label assigning strategy(SimOTA)–更好的正負(fù)樣本匹配的策略
前言網(wǎng)絡(luò)結(jié)構(gòu)(以yolox-l為例)它是基于YOLO v5構(gòu)建的,所以Backbone以及PAN部分和YOLO v5是一模一樣的,注意這里說的YOLO v5是對(duì)應(yīng)tag:v5.0
版本的(開頭有focus模塊,中間用的是SPP結(jié)構(gòu)),而我們之前講的YOLO v5文章中是tag:v6.1
版本,所以在Backbone部分有些細(xì)微區(qū)別
除了右邊的三個(gè)檢測(cè)頭,剩下的部分都是yolov5-l
采用解耦和耦合的檢測(cè)頭的對(duì)比,新的檢測(cè)頭參數(shù)是不共享的,F(xiàn)ocus中是共享的
乘4代表只預(yù)測(cè)四回參數(shù),不需要再乘以anchor模板個(gè)數(shù),anchor-free的網(wǎng)絡(luò)特點(diǎn)
Anchor-Free與yolov4、v5相比,四個(gè)參數(shù)的計(jì)算去除了anchor的高寬參數(shù),凸顯anchor-free思想
不考慮anchor
損失計(jì)算檢測(cè)頭有三個(gè)分支,分類分支Cls,回歸分支Reg,以及Obj分支(正樣本gt標(biāo)簽為1,負(fù)樣本gt標(biāo)簽為0)
Anchor-Point—由于是anchor-free方法,這指的是特征圖中的每一個(gè)grid-cell,Npos代表的就是被分為正樣本的grid-cell個(gè)數(shù)
正負(fù)樣本匹配SimOTASimOTA是由OTA(Optimal Transport Assignment)簡(jiǎn)化得到的,OTA也是曠視科技
同年出的一篇文章,論文名稱叫做《Optimal transport assignment for object detection》
目的是將匹配正負(fù)樣本的過程看成一個(gè)最優(yōu)傳輸問題。
消融實(shí)驗(yàn)均基于yolov3比較
計(jì)算cost時(shí)需要進(jìn)行預(yù)篩選,否則計(jì)算成本會(huì)很高
fixed center area–通過計(jì)算得到這個(gè)區(qū)域框,該區(qū)域框與GT box的重合部分的anchor-point(圖中黃色√) 右側(cè)公式除了類別損失和回歸損失之外,還加了一項(xiàng)
對(duì)交集區(qū)域取反,也就是圖中黑色√的anchor point,在其前乘以一個(gè)很大的參數(shù),這里是10萬
這樣在最小化cost的過程中,就會(huì)逼迫優(yōu)先選擇交集之內(nèi)的anchor point,不夠時(shí)再選取黑色的部分
表1:將每個(gè)anchor point與gt計(jì)算cost,得到一個(gè)cost矩陣
IoU是每個(gè)anchor point預(yù)測(cè)的目標(biāo)邊界框和每個(gè)gt之間的IoU,這個(gè)數(shù)值在計(jì)算回歸損失時(shí)會(huì)得到
n_candidate_k = min(10, ious_in_boxes_matrix.size(1)) 在10和anchor point個(gè)數(shù)之間取最小,上圖得到的是6,根據(jù)IoU選取前六個(gè)anchor point得到表2
dynamic_ks = torch.clamp(topk_ious.sum(1).int(), min=1)
針對(duì)每個(gè)gt所分配的正樣本個(gè)數(shù)是不一樣的,是動(dòng)態(tài)計(jì)算得到的
對(duì)每一行求和再去整(向下取整),也就是說對(duì)gt1,有三個(gè)anchor point與之對(duì)應(yīng),gt2同理,
計(jì)算得到每個(gè)gt的dynamic_ks之后,根據(jù)dynamic_ks以及cost分配對(duì)應(yīng)的Anchor point,根據(jù)最小化cost原則,選取cost表(表1)中三個(gè)最小的cost值所對(duì)應(yīng)的anchor point
以上圖為例,gt1選取A1 A2 A5, gt2選取A3 A4 A5,進(jìn)而得到anchor point分配矩陣,如下圖
這里A5對(duì)gt1和gt2都是正樣本,為了消除歧義,此時(shí)需對(duì)比一開始計(jì)算的cost矩陣,將anchor point分配給cost較小的那個(gè)gt,上圖gt2更小,因此A5的真實(shí)標(biāo)簽就是gt2,得到下圖
此時(shí),就已經(jīng)找到了所有的正樣本,也就是將gt分配給了對(duì)應(yīng)的anchor point,其他均為負(fù)樣本
正負(fù)樣本匹配完之后,便可計(jì)算損失
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧