成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

YOLOv6:又快又準的目標檢測框架開源啦

原創 精選
人工智能 新聞
本文介紹了美團視覺智能部在目標檢測框架方面的優化及實踐經驗,我們針對 YOLO 系列框架,在訓練策略、主干網絡、多尺度特征融合、檢測頭等方面進行了思考和優化,設計了新的檢測框架-YOLOv6,初衷來自于解決工業應用落地時所遇到的實際問題。

作者:楚怡、凱衡等 

近日,美團視覺智能部研發了一款致力于工業應用的目標檢測框架 YOLOv6,能夠同時專注于檢測的精度和推理效率。在研發過程中,視覺智能部不斷進行了探索和優化,同時吸取借鑒了學術界和工業界的一些前沿進展和科研成果。在目標檢測權威數據集 COCO 上的實驗結果顯示,YOLOv6 在檢測精度和速度方面均超越其他同體量的算法,同時支持多種不同平臺的部署,極大簡化工程部署時的適配工作。特此開源,希望能幫助到更多的同學。

1. 概述

YOLOv6 是美團視覺智能部研發的一款目標檢測框架,致力于工業應用。本框架同時專注于檢測的精度和推理效率,在工業界常用的尺寸模型中:YOLOv6-nano 在 COCO 上精度可達 35.0% AP,在 T4 上推理速度可達 1242 FPS;YOLOv6-s 在 COCO 上精度可達 43.1% AP,在 T4 上推理速度可達 520 FPS。在部署方面,YOLOv6 支持 GPU(TensorRT)、CPU(OPENVINO)、ARM(MNN、TNN、NCNN)等不同平臺的部署,極大地簡化工程部署時的適配工作。目前,項目已開源至Github,傳送門:??YOLOv6??。歡迎有需要的小伙伴們Star收藏,隨時取用。

精度與速度遠超 YOLOv5 和 YOLOX 的新框架

目標檢測作為計算機視覺領域的一項基礎性技術,在工業界得到了廣泛的應用,其中 YOLO 系列算法因其較好的綜合性能,逐漸成為大多數工業應用時的首選框架。至今,業界已衍生出許多 YOLO 檢測框架,其中以 YOLOv5[1]、YOLOX[2] 和 PP-YOLOE[3] 最具代表性,但在實際使用中,我們發現上述框架在速度和精度方面仍有很大的提升的空間。基于此,我們通過研究并借鑒了業界已有的先進技術,開發了一套新的目標檢測框架——YOLOv6。該框架支持模型訓練、推理及多平臺部署等全鏈條的工業應用需求,并在網絡結構、訓練策略等算法層面進行了多項改進和優化,在 COCO 數據集上,YOLOv6 在精度和速度方面均超越其他同體量算法,相關結果如下圖 1 所示:

圖片

圖1-1 YOLOv6 各尺寸模型與其他模型性能對比

圖片

圖1-2 YOLOv6 與其他模型在不同分辨率下性能對比圖 1-1 展示了不同尺寸網絡下各檢測算法的性能對比,曲線上的點分別表示該檢測算法在不同尺寸網絡下(s/tiny/nano)的模型性能,從圖中可以看到,YOLOv6 在精度和速度方面均超越其他 YOLO 系列同體量算法。圖 1-2 展示了輸入分辨率變化時各檢測網絡模型的性能對比,曲線上的點從左往右分別表示圖像分辨率依次增大時(384/448/512/576/640)該模型的性能,從圖中可以看到,YOLOv6 在不同分辨率下,仍然保持較大的性能優勢。

2. YOLOv6關鍵技術介紹

YOLOv6 主要在 Backbone、Neck、Head 以及訓練策略等方面進行了諸多的改進:

  • 我們統一設計了更高效的 Backbone 和 Neck :受到硬件感知神經網絡設計思想的啟發,基于 RepVGG style[4] 設計了可重參數化、更高效的骨干網絡 EfficientRep Backbone 和 Rep-PAN Neck。
  • 優化設計了更簡潔有效的 Efficient Decoupled Head,在維持精度的同時,進一步降低了一般解耦頭帶來的額外延時開銷。
  • 在訓練策略上,我們采用Anchor-free 無錨范式,同時輔以 SimOTA[2] 標簽分配策略以及 SIoU[9] 邊界框回歸損失來進一步提高檢測精度。

2.1 Hardware-friendly 的骨干網絡設計

YOLOv5/YOLOX 使用的 Backbone 和 Neck 都基于 CSPNet[5] 搭建,采用了多分支的方式和殘差結構。對于 GPU 等硬件來說,這種結構會一定程度上增加延時,同時減小內存帶寬利用率。下圖 2 為計算機體系結構領域中的 Roofline Model[8] 介紹圖,顯示了硬件中計算能力和內存帶寬之間的關聯關系。

圖片

圖2 Roofline Model 介紹圖

于是,我們基于硬件感知神經網絡設計的思想,對 Backbone 和 Neck 進行了重新設計和優化。該思想基于硬件的特性、推理框架/編譯框架的特點,以硬件和編譯友好的結構作為設計原則,在網絡構建時,綜合考慮硬件計算能力、內存帶寬、編譯優化特性、網絡表征能力等,進而獲得又快又好的網絡結構。對上述重新設計的兩個檢測部件,我們在 YOLOv6 中分別稱為 EfficientRep Backbone 和 Rep-PAN Neck,其主要貢獻點在于:

  1. 引入了 RepVGG[4] style 結構。
  2. 基于硬件感知思想重新設計了 Backbone 和 Neck。

RepVGG[4] Style 結構是一種在訓練時具有多分支拓撲,而在實際部署時可以等效融合為單個 3x3 卷積的一種可重參數化的結構(融合過程如下圖 3 所示)。通過融合成的 3x3 卷積結構,可以有效利用計算密集型硬件計算能力(比如 GPU),同時也可獲得 GPU/CPU 上已經高度優化的 NVIDIA cuDNN 和 Intel MKL 編譯框架的幫助。

實驗表明,通過上述策略,YOLOv6 減少了在硬件上的延時,并顯著提升了算法的精度,讓檢測網絡更快更強。以 nano 尺寸模型為例,對比 YOLOv5-nano 采用的網絡結構,本方法在速度上提升了21%,同時精度提升 3.6% AP。

圖片

圖3 Rep算子的融合過程[4]

EfficientRep Backbone:在 Backbone 設計方面,我們基于以上 Rep 算子設計了一個高效的Backbone。相比于 YOLOv5 采用的 CSP-Backbone,該 Backbone 能夠高效利用硬件(如 GPU)算力的同時,還具有較強的表征能力。

下圖 4 為 EfficientRep Backbone 具體設計結構圖,我們將 Backbone 中 stride=2 的普通 Conv 層替換成了 stride=2 的 RepConv層。同時,將原始的 CSP-Block 都重新設計為 RepBlock,其中 RepBlock 的第一個 RepConv 會做 channel 維度的變換和對齊。另外,我們還將原始的 SPPF 優化設計為更加高效的 SimSPPF。

圖片

圖4 EfficientRep Backbone 結構圖

Rep-PAN:在 Neck 設計方面,為了讓其在硬件上推理更加高效,以達到更好的精度與速度的平衡,我們基于硬件感知神經網絡設計思想,為 YOLOv6 設計了一個更有效的特征融合網絡結構。

Rep-PAN 基于 PAN[6] 拓撲方式,用 RepBlock 替換了 YOLOv5 中使用的 CSP-Block,同時對整體 Neck 中的算子進行了調整,目的是在硬件上達到高效推理的同時,保持較好的多尺度特征融合能力(Rep-PAN 結構圖如下圖 5 所示)。

圖片

圖5 Rep-PAN 結構圖

2.2 更簡潔高效的 Decoupled Head

在 YOLOv6 中,我們采用了解耦檢測頭(Decoupled Head)結構,并對其進行了精簡設計。原始 YOLOv5 的檢測頭是通過分類和回歸分支融合共享的方式來實現的,而 YOLOX 的檢測頭則是將分類和回歸分支進行解耦,同時新增了兩個額外的 3x3 的卷積層,雖然提升了檢測精度,但一定程度上增加了網絡延時。

因此,我們對解耦頭進行了精簡設計,同時綜合考慮到相關算子表征能力和硬件上計算開銷這兩者的平衡,采用 Hybrid Channels 策略重新設計了一個更高效的解耦頭結構,在維持精度的同時降低了延時,緩解了解耦頭中 3x3 卷積帶來的額外延時開銷。通過在 nano 尺寸模型上進行消融實驗,對比相同通道數的解耦頭結構,精度提升 0.2% AP 的同時,速度提升6.8%。

圖片

圖6 Efficient Decoupled Head 結構圖

2.3 更有效的訓練策略

為了進一步提升檢測精度,我們吸收借鑒了學術界和業界其他檢測框架的先進研究進展:Anchor-free 無錨范式 、SimOTA 標簽分配策略以及 SIoU 邊界框回歸損失。

Anchor-free 無錨范式

YOLOv6 采用了更簡潔的 Anchor-free 檢測方法。由于 Anchor-based檢測器需要在訓練之前進行聚類分析以確定最佳 Anchor 集合,這會一定程度提高檢測器的復雜度;同時,在一些邊緣端的應用中,需要在硬件之間搬運大量檢測結果的步驟,也會帶來額外的延時。而 Anchor-free 無錨范式因其泛化能力強,解碼邏輯更簡單,在近幾年中應用比較廣泛。經過對 Anchor-free 的實驗調研,我們發現,相較于Anchor-based 檢測器的復雜度而帶來的額外延時,Anchor-free 檢測器在速度上有51%的提升。

SimOTA 標簽分配策略

為了獲得更多高質量的正樣本,YOLOv6 引入了 SimOTA [4]算法動態分配正樣本,進一步提高檢測精度。YOLOv5 的標簽分配策略是基于 Shape 匹配,并通過跨網格匹配策略增加正樣本數量,從而使得網絡快速收斂,但是該方法屬于靜態分配方法,并不會隨著網絡訓練的過程而調整。

近年來,也出現不少基于動態標簽分配的方法,此類方法會根據訓練過程中的網絡輸出來分配正樣本,從而可以產生更多高質量的正樣本,繼而又促進網絡的正向優化。例如,OTA[7] 通過將樣本匹配建模成最佳傳輸問題,求得全局信息下的最佳樣本匹配策略以提升精度,但 OTA 由于使用了Sinkhorn-Knopp 算法導致訓練時間加長,而 SimOTA[4]算法使用 Top-K 近似策略來得到樣本最佳匹配,大大加快了訓練速度。故 YOLOv6 采用了SimOTA 動態分配策略,并結合無錨范式,在 nano 尺寸模型上平均檢測精度提升 1.3% AP。

SIoU 邊界框回歸損失

為了進一步提升回歸精度,YOLOv6 采用了 SIoU[9] 邊界框回歸損失函數來監督網絡的學習。目標檢測網絡的訓練一般需要至少定義兩個損失函數:分類損失和邊界框回歸損失,而損失函數的定義往往對檢測精度以及訓練速度產生較大的影響。

近年來,常用的邊界框回歸損失包括IoU、GIoU、CIoU、DIoU loss等等,這些損失函數通過考慮預測框與目標框之前的重疊程度、中心點距離、縱橫比等因素來衡量兩者之間的差距,從而指導網絡最小化損失以提升回歸精度,但是這些方法都沒有考慮到預測框與目標框之間方向的匹配性。SIoU 損失函數通過引入了所需回歸之間的向量角度,重新定義了距離損失,有效降低了回歸的自由度,加快網絡收斂,進一步提升了回歸精度。通過在 YOLOv6s 上采用 SIoU loss 進行實驗,對比 CIoU loss,平均檢測精度提升 0.3% AP。

3. 實驗結果

經過以上優化策略和改進,YOLOv6 在多個不同尺寸下的模型均取得了卓越的表現。下表 1 展示了 YOLOv6-nano 的消融實驗結果,從實驗結果可以看出,我們自主設計的檢測網絡在精度和速度上都帶來了很大的增益。圖片

表1 YOLOv6-nano 消融實驗結果下表 2 展示了 YOLOv6 與當前主流的其他 YOLO 系列算法相比較的實驗結果。從表格中可以看到:

圖片

表2 YOLOv6各尺寸模型性能與其他模型的比較

  • YOLOv6-nano 在 COCO val 上 取得了 35.0% AP 的精度,同時在 T4 上使用 TRT FP16  batchsize=32 進行推理,可達到 1242FPS 的性能,相較于 YOLOv5-nano 精度提升 7% AP,速度提升 85%。
  • YOLOv6-tiny 在 COCO val 上 取得了 41.3% AP 的精度, 同時在 T4 上使用 TRT FP16  batchsize=32 進行推理,可達到 602FPS 的性能,相較于 YOLOv5-s 精度提升 3.9% AP,速度提升 29.4%。
  • YOLOv6-s 在 COCO val 上 取得了 43.1% AP 的精度, 同時在 T4 上使用 TRT FP16 batchsize=32 進行推理,可達到 520FPS 的性能,相較于 YOLOX-s 精度提升 2.6% AP,速度提升 38.6%;相較于 PP-YOLOE-s 精度提升 0.4% AP的條件下,在T4上使用 TRT FP16 進行單 batch 推理,速度提升 71.3%。

4. 總結與展望

本文介紹了美團視覺智能部在目標檢測框架方面的優化及實踐經驗,我們針對 YOLO 系列框架,在訓練策略、主干網絡、多尺度特征融合、檢測頭等方面進行了思考和優化,設計了新的檢測框架-YOLOv6,初衷來自于解決工業應用落地時所遇到的實際問題。

在打造 YOLOv6 框架的同時,我們探索和優化了一些新的方法,例如基于硬件感知神經網絡設計思想自研了 EfficientRep Backbone、Rep-Neck 和 Efficient Decoupled Head,同時也吸收借鑒了學術界和工業界的一些前沿進展和成果,例如 Anchor-free、SimOTA 和 SIoU 回歸損失。在 COCO 數據集上的實驗結果顯示,YOLOv6 在檢測精度和速度方面都屬于佼佼者。

未來我們會持續建設和完善 YOLOv6 生態,主要工作包括以下幾個方面:

  1. 完善 YOLOv6 全系列模型,持續提升檢測性能。
  2. 在多種硬件平臺上,設計硬件友好的模型。
  3. 支持 ARM 平臺部署以及量化蒸餾等全鏈條適配。
  4. 橫向拓展和引入關聯技術,如半監督、自監督學習等等。
  5. 探索 YOLOv6 在更多的未知業務場景上的泛化性能。
責任編輯:張燕妮 來源: 美團技術團隊
相關推薦

2024-05-27 09:27:02

2024-07-22 13:49:38

YOLOv8目標檢測開發

2022-12-15 22:01:04

TLog日志標簽

2016-11-28 14:11:32

搜索

2017-10-02 16:13:47

深度學習目標檢測計算機視覺

2024-11-18 17:31:27

2024-08-06 11:01:03

2024-07-03 10:46:10

2024-10-07 11:12:55

2025-01-06 08:20:00

YOLOv11目標檢測Python

2023-04-24 16:25:47

3D開發

2024-06-19 09:54:58

2024-12-13 09:17:45

2023-02-02 09:00:00

2024-07-03 09:39:52

2019-10-18 16:05:32

框架開發Java

2024-07-09 08:50:23

2023-05-09 10:16:42

人工智能python版本

2020-10-22 13:10:56

機器學習人工智能計算機
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕av第一页 | 色资源在线观看 | 成人日b视频 | 亚洲精品乱码8久久久久久日本 | 国产福利91精品一区二区三区 | 国产精品久久久久久久久久99 | 亚洲精品一二三区 | 一区二区三区在线观看视频 | 国产精品1区2区 | 久久99视频这里只有精品 | 亚洲三区在线观看 | 国产精品99久久久久久久久久久久 | 国产aⅴ精品 | 国产毛片毛片 | 中文字幕第九页 | 日本三级全黄三级三级三级口周 | 亚洲午夜视频在线观看 | 免费毛片网站在线观看 | 超碰在线免费av | 日韩精品在线视频免费观看 | 国产偷录叫床高潮录音 | 国产精品污www一区二区三区 | 午夜精品一区二区三区免费视频 | 天天干天天操天天爽 | 国产片一区二区三区 | 鲁一鲁资源影视 | 国产丝袜一区二区三区免费视频 | 午夜视频一区二区 | 国产精品日日摸夜夜添夜夜av | 天天天天天操 | 在线观看日韩精品视频 | 精品一区二区三区免费毛片 | 成人精品在线视频 | 日韩视频在线播放 | 久久精品一区 | 久久免费视频1 | 欧美视频免费在线 | 欧美国产精品久久久 | 亚洲国产精品suv | 日本一卡精品视频免费 | 婷婷综合 |