
文章目錄
- 一、YOLOX 介紹
- 二、YOLOX 的改進點
- (1)解耦合頭部
- (2)資料增強
- (3)Anchor-free
- (4)SimOTA
- 三、實驗與效果
- (1)訓練引數設定
- (2)YOLOv3 & YOLOX
- (3)YOLOv5 & YOLOX
- (4)YOLOX-Tiny & YOLOX-Nano
- (5)模型大小與資料增強策略
- 四、總結
一、YOLOX 介紹
YOLOX 在 YOLO 系列的基礎上做了一系列作業,其主要貢獻在于:在 YOLOv3 的基礎上,引入了Decoupled Head,Data Aug,Anchor Free 和SimOTA 樣本匹配的方法,構建了一種anchor-free的端到端目標檢測框架,并且達到了一流的檢測水平,
此外,本文提出的 YOLOX-L 模型在視頻感知挑戰賽(CVPR 2021年自動駕駛研討會)上獲得了第一名,作者還提供了支持ONNX、TensorRT、NCNN和Openvino的部署版本,Github 開源地址為:
https://github.com/Megvii-BaseDetection/YOLOX

二、YOLOX 的改進點
在過去的兩年里,目標檢測學術界的主要進展集中在無錨檢測器,高級標簽分配策略,以及端到端(NMS-free)檢測器,考慮到YOLOv4和YOLOv5對于基于錨點的管道可能有些過度優化,本文作者選擇YOLOv3-Darknet53作為基線,在此基礎上進行了改進,
(1)解耦合頭部
在目標檢測中,分類和回歸任務之間的沖突是一個眾所周知的問題,因此,用于分類和定位的解耦合頭在大多數單階段和雙階段探測器中得到了廣泛的應用,然而,作為YOLO系列的主干和特征金字塔(例如,FPN,PAN),在不斷進化的程序中,它們的探測頭仍然保持耦合,如下圖2所示:

實驗表明,解耦合檢測頭能加快模型收斂速度、提高檢測精度,同時也會帶來一點額外的引數量和計算成本:
1) 用一個解耦的頭部代替YOLO的頭部,大大提高了收斂速度,如下圖所示:

2)分離的頭部對于 End-to-End YOLO 是必不可少的,從下表可以看出:耦合頭的End-to-End YOLO檢測性能AP降低了4.2%,而解耦頭的YOLO降幅僅減小到0.8%AP,因此,用一個如圖2所示的輕型解耦頭替換了YOLO檢測頭,

3)將檢測頭解耦無疑會增加運算的復雜度,但經過權衡速度和性能上的得失,作者最終使用 1個1x1 的卷積先進行降維,并在分類和回歸分支里各使用了 2個3x3 卷積,最終調整到僅僅增加一點點引數,YOLOX 在 s,m,l,x 模型速度上的輕微下降也全源自于此,在下表中展示了V100上Batch=1的推理時間,Decoupled Head 帶來了1.1%的性能提升,

表面上看,Decoupled Head 提升了 YOLOX 的性能和收斂速度,但更深層次的,它為 YOLO 與檢測下游任務的一體化帶來可能,例如 YOLOX + Yolact/CondInst/SOLO ,可實作端側的實體分割,
(2)資料增強
當模型容量足夠大的時候,相對于先驗知識(各種 tricks,hand-crafted rules ),更多的后驗(資料/資料增強)才會產生本質影響,通過使用 COCO 提供的 ground-truth mask 標注,作者在 YOLOX 上嘗試了 Copypaste,下表表明,在 48.6mAP 的 YOLOX-Large 模型上,使用 Copypaste 帶來0.8%的漲點,

但是 Copypaste 的實作依賴于目標的 mask 標注,而 mask 標注在常規的檢測業務上是稀缺的資源,而由于 MixUp 和 Copypaste 有著類似的貼圖的行為,還不需要 mask 標注,因此作者在 Mixup 上進行了修改,實作了在原理上更接近 Copypaste 的 Mixup 資料增強方式,
在整個實驗中,作者使用的是 Mosaic 和修改后的 Mixup 資料增強方式,需要注意的是:在模型訓練結束前的15個 epoch 要關掉 Mosaic 和 Mixup ,因為 Mosaic + Mixup 生成的訓練圖片,遠遠脫離自然圖片的真實分布,并且 Mosaic 大量的裁剪操作會帶來很多不準確的標注框,
(3)Anchor-free
對于基于 anchors 的目標檢測器,為了獲得最優的檢測性能,需要在訓練前進行聚類分析來確定一組最優錨點,但是這也帶來了一些問題:
- 聚類得到的錨框一般只能用在該資料集上,并不是通用的;
- 錨框增加了檢測頭的復雜度以及生成結果的數量;
- Anchor Free 的解碼代碼邏輯更簡單,可讀性更高,
因此,無錨探測器(比如Fcos、Cornernet等)在過去兩年中發展迅速,一些作業表明,無錨檢測器的性能可以與基于錨的檢測器相媲美,Anchor-free 機制顯著減少了需要啟發式調整的設計引數的數量和涉及的許多技巧(例如,錨定群集、網格敏感),使得檢測器,特別是其訓練和解碼階段變得相當簡單,
基于Anchor-free 的方法,將每個位置的預測從3個減少到1個,并讓它們直接預測4個值,即網格左上角的兩個偏移量,以及預測框的高度和寬度,通過這樣的修改降低了檢測器的引數和GFLOP,使其速度更快,但獲得了更好的性能42.9%AP,
(4)SimOTA
很多人可能質疑為什么 Anchor Free 現在可以上 YOLO ,并且性能不降反升?
其實這與樣本匹配有著密不可分的聯系,與 Anchor Free 比起來,樣本匹配在業界似乎沒有什么關注度,但是一個好的樣本匹配演算法可以天然緩解擁擠場景的檢測問題,緩解極端長寬比的物體的檢測效果差的問題,以及極端大小目標正樣本不均衡的問題,甚至可能可以緩解旋轉物體檢測效果不好的問題,這些問題本質上都是樣本匹配的問題,
其實,作者在之前的作業 OTA 中就充分考慮到了樣本匹配的 4 個重要的因素,通過把樣本匹配建模成最優傳輸問題,求得了全域資訊下的最優樣本匹配方案,這 4 個因素分別是:
- loss/quality/prediction aware:基于網路自身的預測來計算 anchor box 或者 anchor point 與 gt 的匹配關系,充分考慮到了不同結構/復雜度的模型可能會有不同行為,是一種真正的 dynamic 樣本匹配,
- center prior : 考慮到感受野的問題,以及大部分場景下,目標的質心都與目標的幾何中心有一定的聯系,將正樣本限定在目標中心的一定區域內做 loss/quality aware 樣本匹配能很好地解決收斂不穩定的問題,
- dynamic k:也就是為不同目標設定不同的正樣本數量,
- global information:有些 anchor box/point 處于正樣本之間的交界處、或者正負樣本之間的交界處,這類 anchor box/point 的正負劃分,甚至若為正,該是誰的正樣本,都應充分考慮全域資訊,
值得注意的是,OTA 最大的問題是會增加約 20~25 %的額外訓練時間,對于動輒 300epoch 的 COCO 訓練來說是有些吃不消的,此外 Sinkhorn-Iter 也會占用大量的顯存,所以在 YOLOX 上,我們去掉了 OTA 里的最優方案求解程序,保留上面 4 點的前 3 點,因此,YOLOX 采用的樣本匹配方案被稱為 SimOTA ( 即簡化的 OTA ),
三、實驗與效果
除了 DarkNet53,我們還在其他不同大小的主干上測驗了 YOLOX,在這些主干上,YOLOX 相對于所有對應的主干都取得了一致的改進,
(1)訓練引數設定
YOLOX 的訓練設定與基線基本保持一致,在 COCO Train 2017 上訓練了總共 300 個 epochs,采用的是隨機梯度下降(SGD)進行訓練,動量引數為0.9,學習率:lr x batch_size/64,初始的lr=0.01,并且之后采用余弦衰減,權重衰減系數為0.0005,
(2)YOLOv3 & YOLOX
下表實驗結果表明,YOLOX 在 640×640 解析度的 COCO 資料集上將 YOLOv3 的 AP 提升到了47.3%,大大超過了目前 YOLOv3 的最佳實踐 44.3% 的 AP,

(3)YOLOv5 & YOLOX
為了進行公平的比較,作者采用了YOLOv5的主干網路,包括修改后的 CSPNet、SiLU 激活函式和PAN頭,作者還遵循它的比例規則構建了YOLOX、YOLOX-M、YOLOX-L和YOLOX-X模型,與YOLOv5相比,我們的模型AP提高了1.0%-3.0%,只增加了一點額外的時間成本(來自解耦的頭部),

(4)YOLOX-Tiny & YOLOX-Nano
作者將模型進一步縮小為YOLOX-Tiny,以與YOLOv4-Tiny進行比較,對于移動設備,采用深度卷積的方法構建了一個只有0.91M引數和1.08G FLOP的YOLOX-Nano模型,如下表所示:YOLOX的性能很好,模型尺寸甚至比對應的模型還要小,

(5)模型大小與資料增強策略
作者發現,在不同規模的模型上,合適的增強策略是不同的,雖然對YOLOX-L應用混合可以使AP提高0.9%,但對于YOLOX-Nano這樣的小模型,最好減弱這種增強作用,
具體地說,在訓練小模型YOLOX-S、YOLOX-TINY和YOLOX-Nano時,我們去掉了MixUp增強,削弱了馬賽克,這樣的改進將YOLOX-Nano的AP從24.0%提高到25.3%,

四、總結
作者在YOLO系列的基礎之上,進行了一系列的改進,構建了一個名為 YOLOX 的高性能 Anchor-free 檢測器,采用了一些最新的先進檢測技術,比如解耦頭部、無錨點和先進的標簽分配策略,這使得YOLOX 實作了速度和精度之間的最佳平衡,值得注意的是,YOLOX 在 COCO 資料集上,將YOLOv3的架構性能提升至47.3%AP,超過當前最佳實踐3.0%的AP,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/292339.html
標籤:其他
