Yolo系列的高效更精確的目標檢測框架
1
前言
YOLOX在YOLO系列的基礎上做了許多有意思的工作,其主要貢獻在于:在YOLOV3的基礎上,引入了“Decoupled Head”,“Data Augmentation”,“Anchor Free” 和“SimOTA樣本匹配”的方法,構建了一種anchor-free的端到端目標檢測框架,并且達到了頂級的檢測水平。
以在大量模型中獲得最先進的結果:對于YOLONano僅0.91M參數(shù)和1.08G FLOPs,研究者在COCO上獲得25.3%AP,超過NanoDet 1.8%AP;對于業(yè)界應用最廣泛的檢測器之一YOLOv3,在COCO上將其提升至47.3% AP,比當前最佳實踐高3.0% AP;對于參數(shù)量與YOLOv4-CSP、YOLOv5-L大致相同的YOLOX-L,研究者在Tesla V100上以68.9FPS的速度在COCO上實現(xiàn)了50.0% AP,比YOLOv5-L高出1.8% AP。此外,研究者使用單個YOLOX-L模型贏得了Streaming Perception Challenge(CVPR 2021自動駕駛研討會)的第一名。
2
背景
我們是在去年底萌生優(yōu)化YOLO系列的想法的,那時候我們組剛完成了AutoAssign,LLA,DeFCN,IQDet,OTA等工作,在基礎檢測尤其是Anchor Free和Label Assignment方向有一些自己的理解。而那時候的YOLO系列還停留在Anchor Based階段,樣本匹配也采用的是基于幾何先驗的一對一或一對N的方案上。而隨后出現(xiàn)的各項工作也基本是在往大輸入分辨率和大模型的方向走?;谶@樣的大背景,我們決定啟動YOLOX項目,想知道學術研究與工程落地到底能碰出什么樣的火花。
——摘自于《鏈接:https://www.zhihu.com/question/473350307/answer/2021031747》
用于YOLOX和其他最先進目標檢測器的精確模型(頂部)和移動設備上lite模型的尺寸精度曲線(底部)的速度-精度權衡。
YOLOX的設計,在大方向上主要遵循以下幾個原則:
所有組件全平臺可部署
避免過擬合 COCO,在保持超參規(guī)整的前提下,適度調參
不做或少做穩(wěn)定漲 點但缺乏新意的工作(更大模型,更多的數(shù)據(jù))
所以大家可以看到,首發(fā)的YOLOX沒有deformable conv,沒有用額外數(shù)據(jù)做pretrain,沒有momentum=0.937。回到YOLOX設計的具體細節(jié)上,認為與之前YOLO最大的區(qū)別在于Decoupled Head,Data Augmentation,Anchor Free和樣本匹配這幾個地方。下面將從這幾個方面展開聊。
3
YOLOX-新框架
Decoupled Head
Decoupled Head是學術領域一階段網(wǎng)絡一直以來的標準配置(RetinaNet,F(xiàn)COS等)。相比于它樸素的實現(xiàn)方法,“解耦頭”這個詞顯得有些高大上。研究者一開始并沒有計劃對檢測頭進行解耦,而是在將YOLOX推進到“端到端(無需NMS)”時發(fā)現(xiàn),不論調整損失權重還是控制梯度回傳,End2end的YOLOX始終比標準的YOLOX低4~5個點( 如下表 ),這與在DeFCN里獲得的認知不符。
偶然間研究者把原始的YOLO Head換成decoupled head,發(fā)現(xiàn)這里的差距又顯著縮小了,這樣的現(xiàn)象說明當前YOLO Head的表達能力可能有所欠缺。于是將decoupled hea 應用到了非End2End的YOLO上,結果就如下圖的所示:不僅在峰值的性能有所提升,收斂速度也明顯加快。結合之前End2end的實驗,這兩個現(xiàn)象充分說明YOLO系列一直以來使用的檢測頭可能是不合理的。
實驗表明,解耦合檢測頭能加快模型收斂速度、提高檢測精度,同時也會帶來一點額外的參數(shù)量和計算成本:
- 用一個解耦的頭部代替YOLO的頭部,大大提高了收斂速度,如上圖所示。
- 分離的頭部對于End-to-End的YOLO是必不可少的。從上表可以看出:耦合頭的End-to-End YOLO檢測性能AP降低了4.2%,而解耦頭的YOLO降幅僅減小到0.8%AP。因此,用一個如下圖所示的輕型解耦頭替換了YOLO檢測頭。
將檢測頭解耦會增加運算的復雜度,但經(jīng)過權衡速度和性能上的得失,研究者使用1個1x1 的卷積先降維,并在分類和回歸分支里各使用了2個3x3卷積,最終調整到僅僅增加一點點參數(shù),YOLOX在s,m,l,x模型速度上的輕微下降也全源自于此。在下表中展示了V100上Batch=1的推理時間,Decoupled Head帶來了1.1%的性能提升。
表面上看,Decoupled Head提升了YOLOX的性能和收斂速度,但更深層次的,它為YOLO與檢測下游任務的一體化帶來可能:例如,YOLOX+Yolact/CondInst/SOLO,可實現(xiàn)端側的實例分割;YOLOX + 34層輸出,實現(xiàn)端側人體的 17 個關鍵點檢測。
以往或許已經(jīng)有一些這方面的工作,但這些領域的SOTA依然擁有他們特殊的結構設計,使得該領域無法直接享用到YOLO系列發(fā)展的成果。如今一個打開了枷鎖的檢測頭,我們認為會讓YOLO與檢測的下游任務更深層次的結合,為檢測與下游任務的端到端一體化帶來一些變化。
Data Augmentation
Data Augmentation里面需要強調的一點是:要在訓練結束前的15個epoch關掉Mosaic 和Mixup ,這對于YOLOX非常重要。可以想象,Mosaic+Mixup生成的訓練圖片,遠遠脫離自然圖片的真實分布,并且Mosaic大量的crop操作會帶來很多不準確的標注框,見下圖:
當模型容量足夠大的時候,相對于先驗知識(各種 tricks,hand-crafted rules ),更多的后驗(數(shù)據(jù)/數(shù)據(jù)增強)才會產(chǎn)生本質影響。通過使用 COCO 提供的 ground-truth mask 標注,作者在 YOLOX 上嘗試了 Copypaste,下表表明,在 48.6mAP 的 YOLOX-Large 模型上,使用 Copypaste 帶來0.8%的漲點。
但是Copypaste的實現(xiàn)依賴于目標的mask標注,而mask標注在常規(guī)的檢測業(yè)務上是稀缺的資源。而由于MixUp和Copypaste有著類似的貼圖的行為,還不需要mask標注,因此作者在Mixup上進行了修改,實現(xiàn)了在原理上更接近Copypaste的Mixup數(shù)據(jù)增強方式。
Anchor Free
Anchor Free的好處是全方位的:
Anchor Based 檢測器為了追求最優(yōu)性能通常會需要對anchor box 進行聚類分析,這無形間增加了算法工程師的時間成本;
Anchor 增加了檢測頭的復雜度以及生成結果的數(shù)量,將大量檢測結果從NPU搬運到CPU上對于某些邊緣設備是無法容忍的。當然還有;
Anchor Free 的解碼代碼邏輯更簡單,可讀性更高。
至于為什么Anchor Free現(xiàn)在可以上YOLO ,并且性能不降反升,這與樣本匹配有密不可分的聯(lián)系。與Anchor Free比起來,樣本匹配在業(yè)界似乎沒有什么關注度。但是一個好的樣本匹配算法可以天然緩解擁擠場景的檢測問題( LLA、OTA里使用動態(tài)樣本匹配可以在CrowdHuman上提升FCOS將近10個點),緩解極端長寬比的物體的檢測效果差的問題,以及極端大小目標正樣本不均衡的問題。甚至可能可以緩解旋轉物體檢測效果不好的問題,這些問題本質上都是樣本匹配的問題。
loss/quality/prediction aware :基于網(wǎng)絡自身的預測來計算 anchor box 或者 anchor point 與 gt 的匹配關系,充分考慮到了不同結構/復雜度的模型可能會有不同行為,是一種真正的 dynamic 樣本匹配。而 loss aware 后續(xù)也被發(fā)現(xiàn)對于 DeTR 和 DeFCN 這類端到端檢測器至關重要。與之相對的,基于 IoU 閾值 /in Grid(YOLOv1)/in Box or Center(FCOS) 都屬于依賴人為定義的幾何先驗做樣本匹配,目前來看都屬于次優(yōu)方案。
center prior : 考慮到感受野的問題,以及大部分場景下,目標的質心都與目標的幾何中心有一定的聯(lián)系,將正樣本限定在目標中心的一定區(qū)域內做loss/quality aware樣本匹配能很好地解決收斂不穩(wěn)定的問題。
不同目標設定不同的正樣本數(shù)量(dynamic k):我們不可能為同一場景下的西瓜和螞蟻分配同樣的正樣本數(shù),如果真是那樣,那要么螞蟻有很多低質量的正樣本,要么西瓜僅僅只有一兩個正樣本。Dynamic k的關鍵在于如何確定k,有些方法通過其他方式間接實現(xiàn)了動態(tài)k,比如ATSS、PAA ,甚至RetinaNet ,同時,k的估計依然可以是prediction aware的,我們具體的做法是首先計算每個目標最接近的10個預測,然后把這個10個預測與GT的iou加起來求得最終的k,很簡單有效,對10這個數(shù)字也不是很敏感,在5~15調整幾乎沒有影響。
全局信息:有些anchor box/point處于正樣本之間的交界處、或者正負樣本之間的交界處,這類anchor box/point的正負劃分,甚至若為正,該是誰的正樣本,都應充分考慮全局信息。
下期我們簡單再說說YOLOX的部署支持及端到端!
4
*博客內容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。
物聯(lián)網(wǎng)相關文章:物聯(lián)網(wǎng)是什么