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 所示:

YOLOv6:又快又准的目标检测框架开源啦

图1-1 YOLOv6 各尺寸模型与其他模型性能对比

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。
  • 优化了更简洁高效的高效解耦头,不仅保持了精度,还进一步降低了一般解耦头带来的额外延迟开销。
    [En]

    * A more concise and efficient Efficient Decoupled Head is optimized, which not only maintains the accuracy, but also further reduces the extra delay overhead caused by the general decoupling head.

  • 在训练策略上,我们采用Anchor-free 无锚范式,同时辅以 SimOTA[2] 标签分配策略以及 SIoU[9] 边界框回归损失来进一步提高检测精度。

2.1 Hardware-friendly 的骨干网络设计

YOLOv5/YOLOX 使用的 Backbone 和 Neck 都基于 CSPNet[5] 搭建,采用了多分支的方式和残差结构。对于 GPU 等硬件来说,这种结构会一定程度上增加延时,同时减小内存带宽利用率。下图 2 为计算机体系结构领域中的 Roofline Model[8] 介绍图,显示了硬件中计算能力和内存带宽之间的关联关系。

YOLOv6:又快又准的目标检测框架开源啦

图2 Roofline Model 介绍图

因此,本文基于硬件感知神经网络的设计思想,对脊椎和颈椎进行了重新设计和优化。该思想基于硬件的特点和推理框架/编译框架的特点,以硬件和编译器友好的结构为设计原则。在网络建设中,我们综合考虑了硬件计算能力、内存带宽、编译优化特性、网络表现能力等因素,从而得到一个快速、良好的网络结构。对于上面两个重新设计的检测组件,我们在YOLOv6中分别称之为EfficientRep Backbone和Rep-PAn Neck,它们的主要贡献如下:

[En]

Therefore, based on the idea of hardware-aware neural network design, we redesign and optimize Backbone and Neck. The idea is based on the characteristics of hardware and the characteristics of reasoning framework / compilation framework, and takes the hardware and compiler-friendly structure as the design principle. In the network construction, we comprehensively consider the hardware computing power, memory bandwidth, compilation optimization characteristics, network representation ability and so on, and then obtain a fast and good network structure. For the above two redesigned detection components, we call them EfficientRep Backbone and Rep-PAN Neck respectively in YOLOv6, and their main contributions are as follows:

  1. 引入了 RepVGG[4] style 结构。
  2. 基于硬件感知思想重新设计了 Backbone 和 Neck。

RepVGG[4] Style 结构是一种在训练时具有多分支拓扑,而在实际部署时可以等效融合为单个 3×3 卷积的一种可重参数化的结构(融合过程如下图 3 所示)。通过融合成的 3×3 卷积结构,可以有效利用计算密集型硬件计算能力(比如 GPU),同时也可获得 GPU/CPU 上已经高度优化的 NVIDIA cuDNN 和 Intel MKL 编译框架的帮助。

实验表明,通过以上策略,YOLOv6降低了硬件延迟,显著提高了算法的准确性,使检测网络更快更强。以纳米尺寸模型为例,与YOLOv5-Nano采用的网络结构相比,该方法的速度提高了21%,精度提高了3.6%。

[En]

Experiments show that through the above strategies, YOLOv6 reduces the delay in hardware, significantly improves the accuracy of the algorithm, and makes the detection network faster and stronger. Taking the nano size model as an example, compared with the network structure adopted by YOLOv5-nano, this method increases the speed by 21% and the accuracy by 3.6% AP.

YOLOv6:又快又准的目标检测框架开源啦

图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。

YOLOv6:又快又准的目标检测框架开源啦

图4 EfficientRep Backbone 结构图

Rep-PAN:在 Neck 设计方面,为了让其在硬件上推理更加高效,以达到更好的精度与速度的平衡,我们基于硬件感知神经网络设计思想,为 YOLOv6 设计了一个更有效的特征融合网络结构。

Rep-PAN 基于 PAN[6] 拓扑方式,用 RepBlock 替换了 YOLOv5 中使用的 CSP-Block,同时对整体 Neck 中的算子进行了调整,目的是在硬件上达到高效推理的同时,保持较好的多尺度特征融合能力(Rep-PAN 结构图如下图 5 所示)。

YOLOv6:又快又准的目标检测框架开源啦

图5 Rep-PAN 结构图

2.2 更简洁高效的 Decoupled Head

在 YOLOv6 中,我们采用了解耦检测头(Decoupled Head)结构,并对其进行了精简设计。原始 YOLOv5 的检测头是通过分类和回归分支融合共享的方式来实现的,而 YOLOX 的检测头则是将分类和回归分支进行解耦,同时新增了两个额外的 3×3 的卷积层,虽然提升了检测精度,但一定程度上增加了网络延时。

因此,我们简化了解耦报头的设计,综合考虑了相关算子的表示能力和硬件计算开销之间的平衡,并采用混合通道策略重新设计了一种更高效的解耦报头结构,既保持了解耦报头的精度,又降低了时延,并缓解了解耦报头中3×3卷积带来的额外时延开销。通过对纳米模型的烧蚀实验,与相同通道数的去耦头结构相比,精度提高了0.2%,速度提高了6.8%。

[En]

Therefore, we simplify the design of the decoupling header, and comprehensively consider the balance between the representation ability of the correlation operators and the computing overhead on the hardware, and redesign a more efficient decoupling header structure using Hybrid Channels strategy, which not only maintains the accuracy, but also reduces the delay, and alleviates the extra delay overhead caused by 3×3 convolution in the decoupling header. Through the ablation experiment on the nano size model, compared with the decoupling head structure with the same number of channels, the accuracy is improved by 0.2% AP and the speed is improved by 6.8%.

YOLOv6:又快又准的目标检测框架开源啦

图6 Efficient Decoupled Head 结构图

2.3 更有效的训练策略

为了进一步提高检测精度,我们借鉴了学术界和工业界其他检测框架的先进研究进展:无锚锚点自由范式、SIMOTA标签分配策略和SIoU包围盒回归损失。

[En]

In order to further improve the detection accuracy, we draw lessons from the advanced research progress of other detection frameworks in academia and industry: Anchor-free Anchor Free Paradigm, SimOTA tag allocation strategy and SIoU bounding box regression loss.

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] 边界框回归损失函数来监督网络的学习。目标检测网络的训练一般需要至少定义两个损失函数:分类损失和边界框回归损失,而损失函数的定义往往对检测精度以及训练速度产生较大的影响。

近年来,常用的边界盒回归损失包括欠条损失、GIOU损失、Ciou损失、DIoU损失等。这些损失函数通过考虑预测盒与目标盒的重叠度、中心点距离、纵横比等因素来衡量预测盒与目标盒之间的距离,从而引导网络将损失最小化以提高回归精度,但这些方法没有考虑预测盒与目标盒之间的方向匹配。SIoU损失函数通过引入所需回归之间的矢量角,重新定义了距离损失,有效降低了回归自由度,加快了网络收敛速度,进一步提高了回归精度。通过在YOLOv6S上进行SIoU损耗的实验,与Ciou损耗相比,平均检测精度提高了0.3%AP。

[En]

In recent years, the commonly used boundary box regression losses include IoU, GIoU, CIoU, DIoU loss and so on. These loss functions measure the gap between the prediction box and the target box by considering the degree of overlap between the prediction box and the target box, the distance between the center point, the aspect ratio and other factors, so as to guide the network to minimize the loss to improve the regression accuracy, but these methods do not take into account the direction matching between the prediction box and the target box. The SIoU loss function redefines the distance loss by introducing the vector angle between the required regression, which effectively reduces the degree of freedom of regression, speeds up the convergence of the network, and further improves the accuracy of regression. Through the experiment with SIoU loss on YOLOv6s, compared with CIoU loss, the average detection accuracy is improved by 0.3% AP.

3. 实验结果

经过上述优化策略和改进,众多不同尺寸的YOLOv6车型都取得了优异的性能。下表1显示了YOLOv6-Nano的烧蚀实验结果。从实验结果可以看出,我们自行设计的检测网络在准确率和速度上都有很大的提高。

[En]

After the above optimization strategies and improvements, YOLOv6 models in many different sizes have achieved excellent performance. Table 1 below shows the ablation experimental results of YOLOv6-nano. From the experimental results, we can see that our self-designed detection network has brought great gain in accuracy and speed.

YOLOv6:又快又准的目标检测框架开源啦

表1 YOLOv6-nano 消融实验结果

下面的表2显示了YOLOv6与其他主流YOLO算法的实验结果。您可以从该表中看到:

[En]

Table 2 below shows the experimental results of YOLOv6 compared with other mainstream YOLO algorithms. You can see from the table:

YOLOv6:又快又准的目标检测框架开源啦

表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,旨在解决工业应用落地中遇到的实际问题。

[En]

This paper introduces the optimization and practical experience of Meituan’s visual intelligence department in the target detection framework. Aiming at the YOLO series framework, we consider and optimize the training strategy, backbone network, multi-scale feature fusion, detection head and other aspects, and design a new detection framework-YOLOv6, which is originally intended to solve the practical problems encountered in the landing of industrial applications.

在构建YOLOv6框架的同时,基于硬件感知神经网络的设计思想,探索和优化了自主研发的高效Rep骨干、Rep-Neck和高效解耦头部等新方法,并借鉴了学术界和产业界的一些前沿进展和成果,如Anchor-Free、Simota和SIoU回归损失等。在COCO数据集上的实验结果表明,YOLOv6在检测精度和速度方面处于领先地位。

[En]

While building the YOLOv6 framework, we explore and optimize some new methods, such as self-developed EfficientRep Backbone, Rep-Neck and Efficient Decoupled Head based on the design idea of hardware-aware neural network, and draw lessons from some cutting-edge advances and achievements of academia and industry, such as Anchor-free, SimOTA and SIoU regression loss. The experimental results on COCO dataset show that YOLOv6 is a leader in terms of detection accuracy and speed.

今后,我们将继续建设和完善YOLOv6生态,主要工作包括以下几个方面:

[En]

In the future, we will continue to build and improve the YOLOv6 ecology, the main work includes the following aspects:

  1. 完善 YOLOv6 全系列模型,持续提升检测性能。
  2. 在多种硬件平台上,设计硬件友好的模型。
  3. 支持 ARM 平台部署以及量化蒸馏等全链条适配。
  4. 横向拓展和引入关联技术,如半监督、自监督学习等等。
  5. 探索 YOLOv6 在更多的未知业务场景上的泛化性能。

同时,我们也欢迎社会各界同学加入我们,共同构建适合工业应用的更快、更准确的目标检测框架。(加入YOLOv6技术交流群的方式附在文章末尾)

[En]

At the same time, we also welcome students from the community to join us to build a faster and more accurate target detection framework suitable for industrial applications. (the way to join the YOLOv6 technology exchange group is attached at the end of the article)

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. 作者简介

储怡、凯恒、伊菲、程萌、秦昊、伊明、洪亮、林媛等,均来自美团基础研发平台/视智部。

[En]

Chu Yi, Kai Heng, Yi Fei, Cheng Meng, Qin Hao, Yiming, Hongliang, Lin Yuan, etc., all come from Meituan basic R & D platform / Visual Intelligence Department.

欢迎加入YOLOv6开源技术交流群

YOLOv6:又快又准的目标检测框架开源啦

加入群后,可以直接与开源项目的作者交流,也希望这个开源项目能帮助到更多的学生。

[En]

After joining the group, you can directly communicate with the authors of the open source project, and we also hope that this open source project can help more students.

| ; | |

| | | |

Original: https://blog.csdn.net/MeituanTech/article/details/125437630
Author: 美团技术团队
Title: YOLOv6:又快又准的目标检测框架开源啦

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/6254/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

发表回复

登录后才能评论
免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部