吊打一切現有版本的YOLO!曠視重磅開源YOLOX:新一代目標檢測性能速度擔當!
導讀
YOLO系列終于又回到了Anchor-free的懷抱,不用費勁心思去設計anchor了!曠視開源新的高性能檢測器YOLOX,本文將近兩年來目標檢測領域的各個角度的優(yōu)秀進展與YOLO進行了巧妙地集成組合,性能大幅提升。
paper: https://arxiv.org/abs/2107.08430
code: https://github.com/Megvii-BaseDetection/YOLOX
本文是曠視科技在目標檢測方面的最新技術總結,同時也是CVPR2021自動駕駛競賽冠軍方案的技術總結。本文將近兩年來目標檢測領域的各個角度的優(yōu)秀進展與YOLO進行了巧妙地集成組合(比如解耦頭、數據增廣、標簽分配、Anchor-free機制等)得到了YOLOX,性能取得了大幅地提升,同時仍保持了YOLO系列一貫地高效推理。此外值得一提的是,YOLO系列終于又回到了Anchor-free的懷抱,不用費勁心思去設計anchor了。
Abstract
本文針對YOLO系列進行了一些經驗性改進,構建了一種新的高性能檢測器YOLOX。本文將YOLO檢測器調整為了Anchor-Free形式并集成了其他先進檢測技術(比如decoupled head、label assignment SimOTA)取得了SOTA性能,比如:
對于YOLO-Nano,所提方法僅需0.91M參數+1.08G FLOPs取得了25.3%AP指標,以1.8%超越了NanoDet;
對于YOLOv3,所提方法將指標提升到了47.3%,以3%超越了當前最佳;
具有與YOLOv4-CSP、YOLOv5-L相當的參數量,YOLOX-L取得了50.0%AP指標同事具有68.9fps推理速度(Tesla V100),指標超過YOLOv5-L 1.8%;
值得一提的是,YOLOX-L憑借單模型取得了Streaming Perception(Workshop on Autonomous Driving at CVPR 2021)競賽冠軍。
此外,值得一提的,該方法的ONNX、TensorRT、NCNN、OpenVino推理模型均已開源,為什么還不去體驗一把呢???
YOLOX
YOLOX-DarkNet53
我們選擇YOLOv3+DarkNet53作為基線,接下來,我們將逐步介紹YOLOX的整個系統(tǒng)設計。
Implementation Details 我們的訓練配置從基線模型到最終模型基本一致。在COCO train2017上訓練300epoch并進行5epoch的warm-up。優(yōu)化器為SGD,學習率為,初始學習率為0.01,cosine學習機制。weight decay設置為0.0005,momentum設置為0.9, batch為128(8GPU)。輸入尺寸從448以步長32均勻過渡到832. FPS與耗時采用FP-16精度、bs=1在Tesla V100測試所得。
YOLOv3 baseline 基線模型采用了DarkNet53骨干+SPP層(即所謂的YOLOv3-SPP)。我們對原始訓練策略進行輕微調整:添加了EMA權值更新、cosine學習率機制、IoU損失、IoU感知分支。我們采用BCE損失訓練cls與obj分支,IoU損失訓練reg分支。這些廣義的訓練技巧與YOLOX的關鍵改進是正交的,因此,我們將其添加到baseline中。此外,我們添加了RandomHorizontalFlip、ColorJitter以及多尺度數據增廣,移除了RandomResizedCrop?;谏鲜鲇柧毤记?,基線模型在COCO val上取得了38.5%AP指標,見Figure2.
Decoupled Head 在目標檢測中,分類與回歸任務的沖突是一種常見問題。因此,分類與定位頭的解耦已被廣泛應用到單階段、兩階段檢測中。然而,隨著YOLO系列的骨干、特征金字塔的進化,單其檢測頭仍處于耦合狀態(tài),見上圖。
我們分析發(fā)現:檢測頭耦合會影響模型性能。采用解耦頭替換YOLO的檢測頭可以顯著改善模型收斂速度,見上圖。解耦頭對于端到端版本YOLO非常重要,可參考下表。因此,我們將YOLO的檢測頭替換為輕量解耦頭,見上面的Figure2:它包含一個卷積進行通道降維,后接兩個并行分支(均為卷積)。注:輕量頭可以帶來1.1ms的推理耗時。
Strong data augmentation 我們添加了Mosaic與Mixup兩種數據增廣以提升YOLOX的性能。Mosaic是U版YOLOv3中引入的一種有效增廣策略,后來被廣泛應用于YOLOv4、YOLOv5等檢測器中。MixUp早期是為圖像分類設計后在BoF中進行修改用于目標檢測訓練。通過這種額外的數據增廣,基線模型取得了42.0%AP指標。注:由于采用了更強的數據增廣,我們發(fā)現ImageNet預訓練將毫無意義,因此,所有模型我們均從頭開始訓練。
Anchor-free YOLOv4、YOLOv5均采用了YOLOv3原始的anchor設置。然而anchor機制存在諸多問題:(1) 為獲得最優(yōu)檢測性能,需要在訓練之前進行聚類分析以確定最佳anchor集合,這些anchor集合存在數據相關性,泛化性能較差;(2) anchor機制提升了檢測頭的復雜度。
Anchor-free檢測器在過去兩年得到了長足發(fā)展并取得了與anchor檢測器相當的性能。將YOLO轉換為anchor-free形式非常簡單,我們將每個位置的預測從3下降為1并直接預測四個值:即兩個offset以及高寬。參考FCOS,我們將每個目標的中心定位正樣本并預定義一個尺度范圍以便于對每個目標指派FPN水平。這種改進可以降低檢測器的參數量于GFLOPs進而取得更快更優(yōu)的性能:42.9%AP。
Multi positives 為確保與YOLOv3的一致性,前述anchor-free版本僅僅對每個目標賦予一個正樣本,而忽視了其他高質量預測。參考FCOS,我們簡單的賦予中心區(qū)域為正樣本。此時模型性能提升到45.0%,超過了當前最佳U版YOLOv3的44.3%。
SimOTA 先進的標簽分配是近年來目標檢測領域的另一個重要進展?;谖覀兊腛TA研究,我們總結了標簽分配的四個關鍵因素:(1) loss/quality aware; (2) center prior; (3) dynamic number of positive anchors; (4) global view。OTA滿足上述四條準則,因此我們選擇OTA作為候選標簽分配策略。具體來說,OTA從全局角度分析了標簽分配并將其轉化為最優(yōu)運輸問題取得了SOTA性能。
然而,我們發(fā)現:最優(yōu)運輸問題優(yōu)化會帶來25%的額外訓練耗時。因此,我們將其簡化為動態(tài)top-k策略以得到一個近似解(SimOTA)。SimOTA不僅可以降低訓練時間,同時可以避免額外的超參問題。SimOTA的引入可以將模型的性能從45.0%提升到47.3%,大幅超越U版YOLOv的44.3%。
End-to-End YOLO 我們參考PSS添加了兩個額外的卷積層,one-to-one標簽分配以及stop gradient。這些改進使得目標檢測器進化成了端到端形式,但會輕微降低性能與推理速度。因此,我們將該改進作為可選模塊,并未包含在最終模型中。
Other Backbones
除了DarkNet53外,我們還測試其他不同尺寸的骨干,YOLOX均取得了一致的性能提升。
Modified CSPNet in YOLOv5 為公平對比,我們采用了YOLOv5的骨干,包含CSPNet、SiLU激活以及PAN頭。我們同樣還延續(xù)了其縮放規(guī)則得到了YOLOX-S、YOLOX-M、YOLOX-L以及YOLOX-X等模型。對比結果見下表,可以看到:僅需非常少的額外的推理耗時,所提方法取得了3.0%~1.0%的性能提升。
Tiny and Nano detectors 我們進一步收縮模型得到YOLOX-Tiny以便于與YOLOv4-Tiny對比??紤]到端側設備,我們采用深度卷積構建YOLOX-nano模型,它僅有0.91M參數量+1.08GFLOPs計算量。性能對比見下表,可以看到:YOLOX在非常小的模型尺寸方面表現仍然非常優(yōu)異。
Model size and data augmentation 在所有實驗中,我們讓所有模型保持幾乎相同的學習率機制和優(yōu)化參數。然而,我們發(fā)現:合適的增廣策略會隨模型大小而變化。從下表可以看到:MixUp可以幫助YOLOX-L取得0.9%AP指標提升,但會弱化YOLOX-Nano的性能。基于上述對比,當訓練小模型時,我們移除MixUp,并弱化Mosaic增廣,模型性能可以從24.0%提升到25.3%。而對于大模型則采用默認配置。
Comparison with the SOTA
上表對比了所提YOLOX與其他SOTA檢測器的性能對比,從中可以看到:相比YOLOv3、YOLOv4、YOLOv5系列,所提YOLOX取得了最佳性能,同時具有極具競爭力的推理速度??紤]到上表中推理速度的不可控因素,我們在同一平臺上進行了統(tǒng)一對比,見下圖。所以,YOLOX就是目標檢測領域高性能+高速度的新一代擔當。
1st Place on Streaming Perception Challenge
上圖截取自CVPR自動駕駛競賽官網,本文所提YOLOX(BaseDet)取得了冠軍。所提交的模型為YOLOX-L,推理采用了TensorRT,推理速度小于33ms。
*博客內容為網友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。