PP-yoloE论文的理解
目錄
1.簡單回顧PP-YOLOv2
2.本文的貢獻(xiàn)
2.1?anchor free
2.2 Backbone and Neck
2.2.1 ESE的原始架構(gòu)?
2.3?TAL和T-head
2.3.1?TAL
2.4 Efficient Task-aligned Head(ET-head)?
2.4.1?varifocal loss (VFL)
2.4.2?distribution focal loss(DFL)
3. 實驗
3.1 與sota檢測器相比
涉及到的論文
出自:百度 2022.44.2
論文:https://arxiv.org/pdf/2203.16250.pdf
代碼:https://github.com/PaddlePaddle/PaddleDetection
?PP-YOLOE的整體框架圖:
1.簡單回顧PP-YOLOv2
論文:https://arxiv.org/abs/2104.10419
代碼:https://github.com/paddlepaddle/paddledetection
主干ResNet50-vd,deformable convolution,PAN neck with SPP layer and DropBlock【7】,lightweight IOU aware head。 主干激活使用relu,neck 激活使用mish。 loss函數(shù)有分類loss,回歸loss和目標(biāo)loss,且PP-yolov2使用了IoU loss和Iou aware loss;
2.本文的貢獻(xiàn)
①anchor-free
②powerful backbone and neck equipped with CSPRepResStage
③ET-head
④TAL動態(tài)label assign
2.1?anchor free
原因:基于anchor的方法摻雜太多人工設(shè)定,且同一組anchor參數(shù)無法適用于所有數(shù)據(jù)集;
細(xì)節(jié):anchor free方法參考FCOS【25】,PPYOLOE中的anchor free方法,主要就是將之前anchor base中預(yù)測相較于anchor的xywh,改進(jìn)為預(yù)測ltrb(left,top,right,bottom),并將ltrb結(jié)果乘上當(dāng)前特征圖的stride。
結(jié)果:速度略有提升,且ap下降0.3;
2.2 Backbone and Neck
提出了RepResBlock:
使用了resdiual connections和dense connection,將這種模塊用于backbone和neck中;
參考TreeBlock【20】,作者提出了RepResBlock,訓(xùn)練階段如fig3(b),推理階段如圖3(c),簡化的TreeBlock如fig3(a),將concat替換成element-wise add operation就得到了fig3(b)作者的backbone命名為CSPRepResBlock,包括三個卷積和四個RepResBlock,如fig3(d) 通過ESE(Effective Squeeze and Extraction) layer施加通道注意力。?
2.2.1 ESE的原始架構(gòu)?
SE(Squeeze-and-Excitation(SE))結(jié)構(gòu):
?
ESE結(jié)構(gòu):
區(qū)別:se有兩個fc,ese只有一個fc;
2.3?TAL和T-head
物體檢測方法的2個局限性: ? ?
①分類和定位的獨立性。分類和定位一般用的是2個獨立的分支,這樣使得2個任務(wù)之間缺乏交互,在預(yù)測的時候就會出現(xiàn):得分高的預(yù)測位置不準(zhǔn),位置準(zhǔn)的預(yù)測得分不高。 ?
?②任務(wù)無關(guān)的樣本分配:對于分類最優(yōu)的anchor和對于定位最優(yōu)的anchor往往并不是同一個。
解決辦法:TOOD提出任務(wù)對齊頭(Task-aligned head, T-head)和新的任務(wù)對齊學(xué)習(xí)(Task-aligned Learning, TAL)來更明確地對齊兩個任務(wù); 操作流程:首先,T-head對FPN特征進(jìn)行預(yù)測。然后,計算每個定位點的任務(wù)對齊度量,TAL根據(jù)此度量為T-head生成學(xué)習(xí)信號。最后,T-head對分類和定位的分布進(jìn)行相應(yīng)的調(diào)整。其中,最對齊的錨通過概率圖prob (probability map)獲得更高的分類得分,通過學(xué)習(xí)偏移獲得更準(zhǔn)確的錨框預(yù)測。
2.3.1?TAL
Task Alignment Learning:為了進(jìn)一步指導(dǎo)T-Head做出與任務(wù)對齊的預(yù)測提出TAL。
它包括一個分配策略和新?lián)p失的函數(shù);
分配策略 ①Task-aligned Sample Assignment:
1)對齊良好的錨點應(yīng)能聯(lián)合精確定位預(yù)測出較高的分類分?jǐn)?shù);
2)不對齊的錨應(yīng)具有較低的分類評分,并隨后予以抑制。
②Anchor alignment metric:分類得分和IoU的高階組合來衡量任務(wù)對齊程度,?
?
其中:s和u分別表示分類分?jǐn)?shù)和IOU值
③Training sample assignment:選擇t值最大的m個錨點為正樣本,而使用其余的錨點作為負(fù)樣本;?
損失函數(shù)
t^是對t的歸一化
2.4 Efficient Task-aligned Head(ET-head)?
解決的點:分類和定位的任務(wù)沖突 ? ?
YOLOX使用了decopled head 該方法的缺點:導(dǎo)致分類任務(wù)和定位任務(wù)分離,使得兩個任務(wù)獨立; 缺乏特定任務(wù)學(xué)習(xí);
解決方法:參考TOOD【5】,優(yōu)化得到ET-head 改進(jìn)點: ?
?①相比較TOOD,使用ESE block替換layer attention。 ? ?
②分類分支添加了shortcut。 ? ?
③分類分支使用varifocal loss (VFL),優(yōu)點:這種實現(xiàn)使得iou高的正樣本對損耗的貢獻(xiàn)相對較大,促使模型更加關(guān)注高質(zhì)量樣本; ?
?④回歸分支使用distribution focal loss(DFL)。
最終loss:
結(jié)果:map提升0.5;
2.4.1?varifocal loss (VFL)
focal loss:
其中a用來均衡正負(fù)樣本的權(quán)重,y為gt,前景類的預(yù)測概率p∈[0,1],(1-p)的r次和p的r次用來調(diào)制每個樣本的權(quán)重。使困難樣本有更高的權(quán)重; VFL從focal loss中借鑒了樣本加權(quán)思想來解決類不平衡問題;
VFL loss:
其中p是預(yù)測的IACS(分類)得分,q是目標(biāo)IoU得分。 對于訓(xùn)練中的正樣本,將q設(shè)置為生成的bbox和gt box之間的IoU;而對于負(fù)樣本,q為0。
2.4.2?distribution focal loss(DFL)
參考:《Generalized Focal Loss: Learning Qualified and Distributed Bounding Boxes for Dense Object Detection》 -清華大學(xué),南京大學(xué) https://blog.csdn.net/qq_52302919/article/details/125304230 ? https://zhuanlan.zhihu.com/p/310229973?
3. 實驗
實驗數(shù)據(jù):MS COCO-2017(80個類別,118000張圖片)
數(shù)據(jù)處理細(xì)節(jié):random crop,random horizontal filp,color distortion,和multi-scale;
參數(shù)設(shè)置細(xì)節(jié):SGD,momentum=0.9,weight decay=5e-4,cosine learning rate schedule,epochs=300,warmup epochs=5,base learning rate=0.01,batch size=64;exponential moving average(EMA) 硬件設(shè)備:8*32G V100 GPU
3.1 與sota檢測器相比
科普性相關(guān)信息
一文看懂Label Assignment--標(biāo)簽分配最新論文總結(jié) - 知乎
涉及到的論文
《Bag of Tricks for Image Classification with Convolutional Neural Networks》
可學(xué)習(xí)的各種訓(xùn)練策略(文中用于分類):
1.學(xué)習(xí)率的調(diào)整
當(dāng)batch_size=256時,初始化lr=0.1,當(dāng)batch_size=b,則學(xué)習(xí)率調(diào)整為
? ?
如:b=128,
2.學(xué)習(xí)率熱身效應(yīng)
在訓(xùn)練初期使用較小的學(xué)習(xí)率進(jìn)行熱身,逐漸增大到設(shè)置的學(xué)習(xí)率,則前m個batches使用warm up使用的學(xué)習(xí)率:
? ? ,1<=i<=qm
3.使的網(wǎng)絡(luò)初始階段更容易訓(xùn)練
Zero γ(可查看原文)
4.只對卷積層和全連接層的weight的weights使用weight decay
在SGD中優(yōu)化中相當(dāng)于L2正則,作者認(rèn)為并不是所有的參數(shù)weight decay;
5.其他策略
(使用廣泛,不一一細(xì)講了):
1.提升模型的訓(xùn)練速度,FP16和FP32的混合訓(xùn)練;
2.ResNet網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化;
3.Cosine Learning Rate Decay;
4.Label Smoothing
5.Knowledge Distillation
6.Mixup Training
參考:https://www.jianshu.com/p/02a76ac73d48
《Dropblock:A regularization method for convolutional networks:Advaces in neural information process system》
dropblock:一種正則化方法,在ImageNet分類任務(wù)中,使用Resnet-50精度提升了1.6%個點,在coco檢測任務(wù)中,精度提升了1.6%。
SPP layer :將不同尺寸使用max pooling輸出為固定長度的尺寸
Relu激活:又稱為修正線性單元(Rectified Linear Unit),是一種分段線性函數(shù),其彌補(bǔ)了sigmoid函數(shù)以及tanh函數(shù)的梯度消失問題。
函數(shù):
ReLU函數(shù)的優(yōu)點:
1. 在輸入為正數(shù)的時候(對于大多數(shù)輸入 z 空間來說),不存在梯度消失問題。
2. 計算速度要快很多。ReLU函數(shù)只有線性關(guān)系,不管是前向傳播還是反向傳播,都比sigmod和tanh要快很多。(sigmod和tanh要計算指數(shù),計算速度會比較慢)
ReLU函數(shù)的缺點:
當(dāng)輸入為負(fù)時,梯度為0,會產(chǎn)生梯度消失問題。
參考鏈接:https://zhuanlan.zhihu.com/p/139696588
mish激活:
一種自正則的非單調(diào)神經(jīng)激活函數(shù),平滑的激活函數(shù)允許更好的信息深入神經(jīng)網(wǎng)絡(luò),從而得到更好的準(zhǔn)確性和泛化。根據(jù)論文實驗,該函數(shù)在最終準(zhǔn)確度上比Swish(+0.494%)和ReLU(+ 1.671%)都有提高。
函數(shù):
圖形來自于:https://wenku.baidu.com/view/9cbad2976adc5022aaea998fcc22bcd126ff4236.html?
IOU loss的使用:
標(biāo)檢測任務(wù)的損失函數(shù)由Classificition Loss和Bounding Box Regeression Loss兩部分構(gòu)成。
Bounding Box Regression Loss Function的演進(jìn)路線是:
Smooth L1 Loss --> IoU Loss --> GIoU Loss --> DIoU Loss --> CIoU Loss
Iou loss提出前,大家主要通過4個坐標(biāo)點獨立回歸Bounding box(bbox,邊界框),這樣做的缺點有:
目標(biāo)檢測的評價方式是使用IoU,而實際回歸坐標(biāo)框的時候使用4個坐標(biāo)點,二者是不等價的,如下圖所示;
L1或者L2 Loss相同的框,其IoU 不是唯一的
通過4個坐標(biāo)點回歸坐標(biāo)框的方式,是假設(shè)4個點相互獨立的,沒有考慮其相關(guān)性,實際4個坐標(biāo)點具有一定的相關(guān)性
基于L1和L2的距離的loss對于尺度 不具有 不變性
————————————————
版權(quán)聲明:本文為CSDN博主「尋找永不遺憾」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_45377629/article/details/124911293
?《Fcos:Fully convolutional one-stage object detection》
提出的無anchor的網(wǎng)絡(luò)結(jié)構(gòu):
分類使用fcoal loss,回歸使用iou loss;center-ness大小為0-1,用BCE loss計算。用于抑制FCOS產(chǎn)生的低質(zhì)量的bbox,尤其是那些離目標(biāo)中心較遠(yuǎn)的locations?;
residual connections:
殘差鏈接主要是為了解決梯度消失問題;
dense connections :
密集連接主要是使用更多的感受野擴(kuò)大中間特征;
總結(jié)
以上是生活随笔為你收集整理的PP-yoloE论文的理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IDEA开发工具2018破解版教程
- 下一篇: 煽情的儿子521=随笔