柚子快報(bào)激活碼778899分享:目標(biāo)檢測(cè)——YOLOX算法解讀
柚子快報(bào)激活碼778899分享:目標(biāo)檢測(cè)——YOLOX算法解讀
論文:YOLOX: Exceeding YOLO Series in 2021(2021.7.18) 作者:Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, Jian Sun 鏈接:https://arxiv.org/abs/2107.08430 代碼:https://github.com/Megvii-BaseDetection/YOLOX
YOLO系列算法解讀: YOLOv1通俗易懂版解讀、SSD算法解讀、YOLOv2算法解讀、YOLOv3算法解讀、YOLOv4算法解讀、YOLOv5算法解讀、YOLOR算法解讀、YOLOX算法解讀、YOLOv6算法解讀、YOLOv7算法解讀、YOLOv8算法解讀、YOLOv9算法解讀、YOLOv10算法解讀
PP-YOLO系列算法解讀: PP-YOLO算法解讀、PP-YOLOv2算法解讀、PP-PicoDet算法解讀、PP-YOLOE算法解讀、PP-YOLOE-R算法解讀
文章目錄
1、算法概述2、YOLOX細(xì)節(jié)3、實(shí)驗(yàn)4、總結(jié)
1、算法概述
YOLOX是曠視科技2021年提出的目標(biāo)檢測(cè)算法,它基于YOLOv3-SPP進(jìn)行改進(jìn),將原有的anchor-based調(diào)整為了anchor-free形式,并且集成了其他先進(jìn)檢測(cè)技術(shù)(比如decoupled head、label assignment SimOTA)取得了SOTA性能。類似于YOLOv5,它也提供了多個(gè)尺度版本的模型,Nano/Tiny/s/m/l/x,而且該方法的ONNX、TensorRT、NCNN、OpenVino推理模型均已開源。下圖是YOLOX與其他檢測(cè)算法的對(duì)比情況圖: 以我實(shí)際的使用情況來看,對(duì)比YOLOv5算法,YOLOX在檢測(cè)精度方面確實(shí)比YOLOv5更加優(yōu)秀,但速度會(huì)稍微慢一點(diǎn)點(diǎn)。
2、YOLOX細(xì)節(jié)
作者以YOLOv3-SPP為基準(zhǔn),即backbone為Darknet-53,neck為SPP+FPN,head部分為分3個(gè)特征圖輸出NxNx(3x(4+1+80))。YOLOX對(duì)其進(jìn)行一步步改進(jìn),下面來看具體的改進(jìn)手段。
首先訓(xùn)練YOLOv3-SPP baseline 和YOLOv3論文中不一樣的是,作者增加了一些策略,比如在訓(xùn)練過程中加入EMA權(quán)重更新技術(shù),cosine學(xué)習(xí)率下降,IoUloss和IoU感知分支;用BCEloss訓(xùn)練分類分支和obj分支,用IoUloss訓(xùn)練回歸分支。對(duì)于數(shù)據(jù)增強(qiáng)部分,作者只采用了隨機(jī)水平翻轉(zhuǎn)和顏色抖動(dòng)以及多尺度訓(xùn)練,沒有使用隨機(jī)尺寸裁剪(因?yàn)樽髡哒J(rèn)為這和后面的馬賽克數(shù)據(jù)增強(qiáng)重疊了,不好評(píng)估馬賽克數(shù)據(jù)增強(qiáng)帶來的影響)。最終在COCO val數(shù)據(jù)集上是38.5%mAP。Decoupled head 在目標(biāo)檢測(cè)中,分類與回歸任務(wù)的沖突是一種常見問題。因此,分類與定位頭的解耦已被廣泛應(yīng)用到單階段、兩階段檢測(cè)中。然而YOLOv3/v4/v5都沒有把檢測(cè)頭解耦,作者通過實(shí)驗(yàn)發(fā)現(xiàn),解耦檢測(cè)頭能讓訓(xùn)練收斂更快,如下圖: 解耦頭,意味著會(huì)檢測(cè)頭會(huì)多一個(gè)分支結(jié)構(gòu),所以參數(shù)量會(huì)增加,為了盡量少增加參數(shù),作者在進(jìn)入預(yù)測(cè)分支之前先用1x1卷積將特征通道減少,然后再接分類分支和回歸分支。其結(jié)構(gòu)如下所示: Strong data augmentation 數(shù)據(jù)增強(qiáng)部分,作者將Mosaic和MixUp添加到增強(qiáng)策略中,以提高YOLOX的性能。在模型訓(xùn)練過程中采用MixUp和Mosaic對(duì)數(shù)據(jù)進(jìn)行增強(qiáng),并在最后15個(gè)epoch關(guān)閉它。實(shí)際應(yīng)用下來看,最后15epoch關(guān)閉數(shù)據(jù)增強(qiáng)很有用。Anchor-free Anchor-based方法的弊端:1、需要在優(yōu)化之前,聚類分析數(shù)據(jù)集標(biāo)注框的情況,這會(huì)導(dǎo)致訓(xùn)練出來的模型使用場景及泛化性能受限。2、錨框設(shè)計(jì)增加了檢測(cè)頭的復(fù)雜性,預(yù)測(cè)框數(shù)量會(huì)根據(jù)錨框設(shè)計(jì)的增加而增加。 而無錨框機(jī)制顯著減少了需要啟發(fā)式調(diào)整的設(shè)計(jì)參數(shù)的數(shù)量和涉及的許多技巧(例如,錨框聚類,網(wǎng)格敏感)的良好性能,使檢測(cè)器的訓(xùn)練和解碼階段大大簡化。將anchor-based調(diào)整為anchor-free比較簡單,作者將每個(gè)位置的預(yù)測(cè)從3個(gè)(YOLOv3是每個(gè)grid設(shè)置3個(gè)anchor)減少到1個(gè),并使它們直接預(yù)測(cè)4個(gè)值,即網(wǎng)格左上角的兩個(gè)偏移量,以及預(yù)測(cè)框的高度和寬度。改成anchor-free后,作者參考FCOS,將每個(gè)目標(biāo)的中心定位正樣本并預(yù)定義一個(gè)尺度范圍以便于對(duì)每個(gè)目標(biāo)指派FPN特征尺度。經(jīng)過這個(gè)改進(jìn)后,模型參數(shù)和GFLOPs都減少了,推理速度更快,而且性能還提升至42.9%mAP了。Multi positives 上面的匹配策略,一個(gè)gt框只能匹配一個(gè)正樣本(因?yàn)椴捎胏enter location匹配),這意味著會(huì)忽略掉周邊高質(zhì)量預(yù)測(cè)框,所以作者劃定gt框中心點(diǎn)3x3的區(qū)域內(nèi)匹配正樣本,這個(gè)區(qū)域就類似于FCOS中的”center sampling”。這一改進(jìn)促使模特mAP提升至45.0%。SimOTA OTA從全局角度分析標(biāo)簽分配,并將分配過程制定為最優(yōu)運(yùn)輸(Optimal Transport, OT)問題,從而產(chǎn)生當(dāng)前分配策略中的SOTA性能。然而,在實(shí)踐中我們發(fā)現(xiàn)用Sinkhorn-Knopp算法求解OT問題帶來了額外25%的訓(xùn)練時(shí)間,這對(duì)于訓(xùn)練來說是相當(dāng)昂貴的。因此,我們將其簡化為動(dòng)態(tài)top-k策略,命名為SimOTA,以獲得近似解。在SimOTA中,預(yù)測(cè)框pj與gt框gi的匹配代價(jià)計(jì)算為 λ為平衡系數(shù),前者為gi與pj的分類損失,后者為gi與pj的回歸損失。 對(duì)于每一個(gè)gt框gi,選擇前topk個(gè)與之損失最小的預(yù)測(cè)框,且該預(yù)測(cè)框中心點(diǎn)在gi中心點(diǎn)3x3的范圍內(nèi)的可作為該gt框gi的正樣本,其余則作為負(fù)樣本。通過這個(gè)改進(jìn),mAP又提升至47.3%。End-to-end YOLO 即模型最后直接輸出結(jié)果,不需要最后做nms,這樣的改進(jìn)會(huì)導(dǎo)致掉點(diǎn),所以作者最終沒有采用。
下面是上述改進(jìn)的消融實(shí)驗(yàn)結(jié)果: 從表中可以看出,數(shù)據(jù)增強(qiáng),劃分3x3領(lǐng)域取更多正樣本和SimOTA動(dòng)態(tài)匹配正樣本這三個(gè)改進(jìn)對(duì)YOLOX提升比較大。
Other Backbones 仿照YOLOv5的網(wǎng)絡(luò)規(guī)模改進(jìn)得到Y(jié)OLOX-S/M/L/X,仿照YOLOv4-Tiny提出YOLOX-Tiny及YOLOX-Nano,實(shí)驗(yàn)結(jié)果均表明YOLOX的這些改進(jìn)很優(yōu)秀。
3、實(shí)驗(yàn)
與現(xiàn)如今其他檢測(cè)算法對(duì)比
4、總結(jié)
YOLOX和YOLOv5是我個(gè)人用得比較熟練的算法,工程代碼都仔細(xì)研讀過,寫得都是非常優(yōu)秀,代碼結(jié)構(gòu)清晰明了,如今YOLOX和YOLOv5都在工業(yè)界得到了廣泛的應(yīng)用,就我個(gè)人使用感覺而言,YOLOX的精度是略高于YOLOv5的,但速度比YOLOv5稍慢,兩個(gè)算法都有不同的應(yīng)用版本,可以方便各個(gè)平臺(tái)適配;個(gè)人使用下來,YOLOX似乎對(duì)小目標(biāo)漏檢比較多,YOLOv5泛化性能更強(qiáng)一點(diǎn)。
柚子快報(bào)激活碼778899分享:目標(biāo)檢測(cè)——YOLOX算法解讀
文章來源
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。