YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications
Chuyi Li, Lulu Li, Hongliang Jiang, Kaiheng Weng, Yifei Geng, Liang Li, Zaidan Ke, Qingyuan Li, Meng Cheng, Weiqiang Nie, Yiduo Li, Bo Zhang, Yufei Liang, Linyuan Zhou, Xiaoming Xu, Xiangxiang Chu, Xiaoming Wei, Xiaolin Wei
- 為中國美團公司團隊發表。
- 文中有說明其命名為YOLOv6有得到YOLO系列作者的同意。
動機
- RepVGG的重參數化(Reparameterization)技術沒被妥善運用。
- 認為沒有必要要求小型網路和大型網路的一致性。
- 重參數化的detector的異構配置(heterogenous configuration)在訓練以及推論過程中會降低效能。
技術採用
- 提升準確度但不會增加很多推論時間:
- PTQ(post-training quantization)
- QAT(Quantization-aware training)
- 小模型用Single-path backbone,大模型用multi-branch block。
- 在YOLOv6中執行分類以及回歸任務進行self distillation策略。
- 採用RepOptimizer和channel-wise distillation改良量化(quantization)技術。
架構
Backbone
- 小模型採用RepBlock。
- RepBlock:
- RepConv:(inference時RepBlock改成RepConv)
- 大模型採用CSPstackRep Block。
- CSPstackRep Block:
- 訓練用RepVGG,推論用RepConv
- 並加入CSP(Cross stage partial),不會增加運算成本並達到提升準確度之目的。
Neck
- YOLOv4以及YOLOv5採用PAN,YOLOv6改良成RepPAN。
- 小模型: 將YOLOv5所使用的CSP-Block改成使用RepBlock。
- 大模型: 將YOLOv5所使用的CSP-Block改成使用CSPStackRep Block。
Head
- 跟YOLOX一樣採用Anchor free的形式。
- Bounding Box回歸直接預測anchor point到bounding box四個邊的距離。
- 使用Efficient Decoupled Head。
- 採用混和通道(hybrid-channel)策略建立更有效率的decoupled head。
損失函數
-
因為採用anchor free因此有以下Loss:
-
VariFocal loss(Classification)
- Focal loss用以解決資料不平衡的問題。
- 為解決正樣本與負樣本不同的重要程度的問題,改良Focal loss成VariFocal Loss。
-
SIOU以及GIOU(box regression)
- 各種IOU方法:
- G-IOU、D-IOU以及C-IOU已經在YOLOv4-上篇說明過。
- α-IoU:
- 在IOU項增加α指數項,提升提度的改進速度。(該論文提到α=3比較好)
- 可以用在先前講過的IOU上。
- SIoU:
- 同時考慮了正解框與預測框之間的角度、距離、形狀以及IOU。
-
Distribution Focal Loss(DFL)(probability loss):
-
TAL(object loss)
- 一開始使用FCOS減少低品質的Bounding Box,使其在後處理的過程當中能被過濾掉,但是最終該方法用在YOLOv6沒有任何好的效益。
其他Loss說明:
- Quality Focal Loss:結合分類結果值與定位品質。
- Poly Loss:替不同任務和資料庫採用weighted的多項式係數。
YOLOv6的其他提升準確度方法以及實驗結果將於YOLOv6-下篇進行說明。
文章使用之圖片擷取自該篇論文