<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 6700字,需瀏覽 14分鐘

           ·

          2022-06-30 02:50

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



          • 1. 概述

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

          • 2. YOLOv6關(guān)鍵技術(shù)介紹

            • 2.1 Hardware-friendly 的骨干網(wǎng)絡(luò)設(shè)計

            • 2.2 更簡潔高效的 Decoupled Head

            • 2.3 更有效的訓(xùn)練策略

          • 3. 實驗結(jié)果

          • 4. 總結(jié)與展望

          1. 概述

          YOLOv6 是美團視覺智能部研發(fā)的一款目標檢測框架,致力于工業(yè)應(yīng)用。本框架同時專注于檢測的精度和推理效率,在工業(yè)界常用的尺寸模型中: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 的新框架

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

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

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

          2. YOLOv6關(guān)鍵技術(shù)介紹

          YOLOv6 主要在 Backbone、Neck、Head 以及訓(xùn)練策略等方面進行了諸多的改進:
          • 我們統(tǒng)一設(shè)計了更高效的 Backbone 和 Neck :受到硬件感知神經(jīng)網(wǎng)絡(luò)設(shè)計思想的啟發(fā),基于 RepVGG style[4] 設(shè)計了可重參數(shù)化、更高效的骨干網(wǎng)絡(luò) EfficientRep Backbone 和 Rep-PAN Neck。
          • 優(yōu)化設(shè)計了更簡潔有效的 Efficient Decoupled Head,在維持精度的同時,進一步降低了一般解耦頭帶來的額外延時開銷。
          • 在訓(xùn)練策略上,我們采用Anchor-free 無錨范式,同時輔以 SimOTA[2] 標簽分配策略以及 SIoU[9] 邊界框回歸損失來進一步提高檢測精度。

          2.1 Hardware-friendly 的骨干網(wǎng)絡(luò)設(shè)計

          YOLOv5/YOLOX 使用的 Backbone 和 Neck 都基于 CSPNet[5] 搭建,采用了多分支的方式和殘差結(jié)構(gòu)。對于 GPU 等硬件來說,這種結(jié)構(gòu)會一定程度上增加延時,同時減小內(nèi)存帶寬利用率。下圖 2 為計算機體系結(jié)構(gòu)領(lǐng)域中的 Roofline Model[8] 介紹圖,顯示了硬件中計算能力和內(nèi)存帶寬之間的關(guān)聯(lián)關(guān)系。
          圖2 Roofline Model 介紹圖
          于是,我們基于硬件感知神經(jīng)網(wǎng)絡(luò)設(shè)計的思想,對 Backbone 和 Neck 進行了重新設(shè)計和優(yōu)化。該思想基于硬件的特性、推理框架/編譯框架的特點,以硬件和編譯友好的結(jié)構(gòu)作為設(shè)計原則,在網(wǎng)絡(luò)構(gòu)建時,綜合考慮硬件計算能力、內(nèi)存帶寬、編譯優(yōu)化特性、網(wǎng)絡(luò)表征能力等,進而獲得又快又好的網(wǎng)絡(luò)結(jié)構(gòu)。對上述重新設(shè)計的兩個檢測部件,我們在 YOLOv6 中分別稱為 EfficientRep Backbone 和 Rep-PAN Neck,其主要貢獻點在于:
          1. 引入了 RepVGG[4] style 結(jié)構(gòu)。
          2. 基于硬件感知思想重新設(shè)計了 Backbone 和 Neck。
          RepVGG[4] Style 結(jié)構(gòu)是一種在訓(xùn)練時具有多分支拓撲,而在實際部署時可以等效融合為單個 3x3 卷積的一種可重參數(shù)化的結(jié)構(gòu)(融合過程如下圖 3 所示)。通過融合成的 3x3 卷積結(jié)構(gòu),可以有效利用計算密集型硬件計算能力(比如 GPU),同時也可獲得 GPU/CPU 上已經(jīng)高度優(yōu)化的 NVIDIA cuDNN 和 Intel MKL 編譯框架的幫助。
          實驗表明,通過上述策略,YOLOv6 減少了在硬件上的延時,并顯著提升了算法的精度,讓檢測網(wǎng)絡(luò)更快更強。以 nano 尺寸模型為例,對比 YOLOv5-nano 采用的網(wǎng)絡(luò)結(jié)構(gòu),本方法在速度上提升了21%,同時精度提升 3.6% AP。
          圖3 Rep算子的融合過程[4]
          EfficientRep Backbone:在 Backbone 設(shè)計方面,我們基于以上 Rep 算子設(shè)計了一個高效的Backbone。相比于 YOLOv5 采用的 CSP-Backbone,該 Backbone 能夠高效利用硬件(如 GPU)算力的同時,還具有較強的表征能力。
          下圖 4 為 EfficientRep Backbone 具體設(shè)計結(jié)構(gòu)圖,我們將 Backbone 中 stride=2 的普通 Conv 層替換成了 stride=2 的 RepConv層。同時,將原始的 CSP-Block 都重新設(shè)計為 RepBlock,其中 RepBlock 的第一個 RepConv 會做 channel 維度的變換和對齊。另外,我們還將原始的 SPPF 優(yōu)化設(shè)計為更加高效的 SimSPPF。
          圖4 EfficientRep Backbone 結(jié)構(gòu)圖
          Rep-PAN:在 Neck 設(shè)計方面,為了讓其在硬件上推理更加高效,以達到更好的精度與速度的平衡,我們基于硬件感知神經(jīng)網(wǎng)絡(luò)設(shè)計思想,為 YOLOv6 設(shè)計了一個更有效的特征融合網(wǎng)絡(luò)結(jié)構(gòu)。
          Rep-PAN 基于 PAN[6] 拓撲方式,用 RepBlock 替換了 YOLOv5 中使用的 CSP-Block,同時對整體 Neck 中的算子進行了調(diào)整,目的是在硬件上達到高效推理的同時,保持較好的多尺度特征融合能力(Rep-PAN 結(jié)構(gòu)圖如下圖 5 所示)。
          圖5 Rep-PAN 結(jié)構(gòu)圖

          2.2 更簡潔高效的 Decoupled Head

          在 YOLOv6 中,我們采用了解耦檢測頭(Decoupled Head)結(jié)構(gòu),并對其進行了精簡設(shè)計。原始 YOLOv5 的檢測頭是通過分類和回歸分支融合共享的方式來實現(xiàn)的,而 YOLOX 的檢測頭則是將分類和回歸分支進行解耦,同時新增了兩個額外的 3x3 的卷積層,雖然提升了檢測精度,但一定程度上增加了網(wǎng)絡(luò)延時。
          因此,我們對解耦頭進行了精簡設(shè)計,同時綜合考慮到相關(guān)算子表征能力和硬件上計算開銷這兩者的平衡,采用 Hybrid Channels 策略重新設(shè)計了一個更高效的解耦頭結(jié)構(gòu),在維持精度的同時降低了延時,緩解了解耦頭中 3x3 卷積帶來的額外延時開銷。通過在 nano 尺寸模型上進行消融實驗,對比相同通道數(shù)的解耦頭結(jié)構(gòu),精度提升 0.2% AP 的同時,速度提升6.8%。

          圖6 Efficient Decoupled Head 結(jié)構(gòu)圖

          2.3 更有效的訓(xùn)練策略

          為了進一步提升檢測精度,我們吸收借鑒了學(xué)術(shù)界和業(yè)界其他檢測框架的先進研究進展:Anchor-free 無錨范式 、SimOTA 標簽分配策略以及 SIoU 邊界框回歸損失。
          Anchor-free 無錨范式
          YOLOv6 采用了更簡潔的 Anchor-free 檢測方法。由于 Anchor-based檢測器需要在訓(xùn)練之前進行聚類分析以確定最佳 Anchor 集合,這會一定程度提高檢測器的復(fù)雜度;同時,在一些邊緣端的應(yīng)用中,需要在硬件之間搬運大量檢測結(jié)果的步驟,也會帶來額外的延時。而 Anchor-free 無錨范式因其泛化能力強,解碼邏輯更簡單,在近幾年中應(yīng)用比較廣泛。經(jīng)過對 Anchor-free 的實驗調(diào)研,我們發(fā)現(xiàn),相較于Anchor-based 檢測器的復(fù)雜度而帶來的額外延時,Anchor-free 檢測器在速度上有51%的提升。
          SimOTA 標簽分配策略
          為了獲得更多高質(zhì)量的正樣本,YOLOv6 引入了 SimOTA [4]算法動態(tài)分配正樣本,進一步提高檢測精度。YOLOv5 的標簽分配策略是基于 Shape 匹配,并通過跨網(wǎng)格匹配策略增加正樣本數(shù)量,從而使得網(wǎng)絡(luò)快速收斂,但是該方法屬于靜態(tài)分配方法,并不會隨著網(wǎng)絡(luò)訓(xùn)練的過程而調(diào)整。
          近年來,也出現(xiàn)不少基于動態(tài)標簽分配的方法,此類方法會根據(jù)訓(xùn)練過程中的網(wǎng)絡(luò)輸出來分配正樣本,從而可以產(chǎn)生更多高質(zhì)量的正樣本,繼而又促進網(wǎng)絡(luò)的正向優(yōu)化。例如,OTA[7] 通過將樣本匹配建模成最佳傳輸問題,求得全局信息下的最佳樣本匹配策略以提升精度,但 OTA 由于使用了Sinkhorn-Knopp 算法導(dǎo)致訓(xùn)練時間加長,而 SimOTA[4]算法使用 Top-K 近似策略來得到樣本最佳匹配,大大加快了訓(xùn)練速度。故 YOLOv6 采用了SimOTA 動態(tài)分配策略,并結(jié)合無錨范式,在 nano 尺寸模型上平均檢測精度提升 1.3% AP。
          SIoU 邊界框回歸損失
          為了進一步提升回歸精度,YOLOv6 采用了 SIoU[9] 邊界框回歸損失函數(shù)來監(jiān)督網(wǎng)絡(luò)的學(xué)習(xí)。目標檢測網(wǎng)絡(luò)的訓(xùn)練一般需要至少定義兩個損失函數(shù):分類損失和邊界框回歸損失,而損失函數(shù)的定義往往對檢測精度以及訓(xùn)練速度產(chǎn)生較大的影響。
          近年來,常用的邊界框回歸損失包括IoU、GIoU、CIoU、DIoU loss等等,這些損失函數(shù)通過考慮預(yù)測框與目標框之前的重疊程度、中心點距離、縱橫比等因素來衡量兩者之間的差距,從而指導(dǎo)網(wǎng)絡(luò)最小化損失以提升回歸精度,但是這些方法都沒有考慮到預(yù)測框與目標框之間方向的匹配性。SIoU 損失函數(shù)通過引入了所需回歸之間的向量角度,重新定義了距離損失,有效降低了回歸的自由度,加快網(wǎng)絡(luò)收斂,進一步提升了回歸精度。通過在 YOLOv6s 上采用 SIoU loss 進行實驗,對比 CIoU loss,平均檢測精度提升 0.3% AP。

          3. 實驗結(jié)果

          經(jīng)過以上優(yōu)化策略和改進,YOLOv6 在多個不同尺寸下的模型均取得了卓越的表現(xiàn)。下表 1 展示了 YOLOv6-nano 的消融實驗結(jié)果,從實驗結(jié)果可以看出,我們自主設(shè)計的檢測網(wǎng)絡(luò)在精度和速度上都帶來了很大的增益。
          表1 YOLOv6-nano 消融實驗結(jié)果
          下表 2 展示了 YOLOv6 與當前主流的其他 YOLO 系列算法相比較的實驗結(jié)果。從表格中可以看到:
          表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. 總結(jié)與展望

          本文介紹了美團視覺智能部在目標檢測框架方面的優(yōu)化及實踐經(jīng)驗,我們針對 YOLO 系列框架,在訓(xùn)練策略、主干網(wǎng)絡(luò)、多尺度特征融合、檢測頭等方面進行了思考和優(yōu)化,設(shè)計了新的檢測框架-YOLOv6,初衷來自于解決工業(yè)應(yīng)用落地時所遇到的實際問題。
          在打造 YOLOv6 框架的同時,我們探索和優(yōu)化了一些新的方法,例如基于硬件感知神經(jīng)網(wǎng)絡(luò)設(shè)計思想自研了 EfficientRep Backbone、Rep-Neck 和 Efficient Decoupled Head,同時也吸收借鑒了學(xué)術(shù)界和工業(yè)界的一些前沿進展和成果,例如 Anchor-free、SimOTA 和 SIoU 回歸損失。在 COCO 數(shù)據(jù)集上的實驗結(jié)果顯示,YOLOv6 在檢測精度和速度方面都屬于佼佼者。
          未來我們會持續(xù)建設(shè)和完善 YOLOv6 生態(tài),主要工作包括以下幾個方面:
          1. 完善 YOLOv6 全系列模型,持續(xù)提升檢測性能。
          2. 在多種硬件平臺上,設(shè)計硬件友好的模型。
          3. 支持 ARM 平臺部署以及量化蒸餾等全鏈條適配。
          4. 橫向拓展和引入關(guān)聯(lián)技術(shù),如半監(jiān)督、自監(jiān)督學(xué)習(xí)等等。
          5. 探索 YOLOv6 在更多的未知業(yè)務(wù)場景上的泛化性能。
          同時也歡迎社區(qū)同學(xué)加入我們,共同建設(shè)一個適合工業(yè)應(yīng)用的更快更準的目標檢測框架。

          5. 參考文獻

          [1] YOLOv5, https://github.com/ultralytics/yolov5
          [2] YOLOX: Exceeding YOLO Series in 2021, https://arxiv.org/abs/2107.08430
          [3] PP-YOLOE: An evolved version of YOLO, https://arxiv.org/abs/2203.16250
          [4] RepVGG: Making VGG-style ConvNets Great Again, https://arxiv.org/pdf/2101.03697
          [5] CSPNet: A New Backbone that can Enhance Learning Capability of CNN, https://arxiv.org/abs/1911.11929
          [6] Path aggregation network for instance segmentation, https://arxiv.org/abs/1803.01534
          [7] OTA: Optimal Transport Assignment for Object Detection, https://arxiv.org/abs/2103.14259
          [8] Computer Architecture: A Quantitative Approach
          [9] SIoU Loss: More Powerful Learning for Bounding Box Regression, https://arxiv.org/abs/2205.12740

          6. 作者簡介

          楚怡、凱衡、亦非、程孟、秦皓、一鳴、紅亮、林園等,均來自美團基礎(chǔ)研發(fā)平臺/視覺智能部。

          ——The  End——

          分享

          收藏

          點贊

          在看

          瀏覽 34
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  www.欧美黄 | 极品粉嫩 | 用力艹骚逼 | 在线香蕉 | 欧美偷拍一区二区三区 |