目标检测-One Stage-YOLOv6

文章目录

  • 前言
  • 一、YOLOv6的网络结构和流程
  • 二、YOLOv6的创新点
  • 总结


前言

YOLOv6 是美团视觉智能部研发的一款目标检测框架,致力于工业应用。论文题目是《YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications》。

和YOLOv4、YOLOv5等不同的是,YOLOv6对网络结构的改动较大。

除了模型的结构之外,YOLOv6的数据增强和YOLOv5的保持一致;而标签分配上则是和YOLOX一样,采用了SimOTA;并且引入了新的边框回归损失:SIOU。


提示:以下是本篇文章正文内容,下面内容可供参考

一、YOLOv6的网络结构和流程

YOLOv6给出了5个版本:YOLOv6-NYOLOv6-TYOLOv6-SYOLOv6-MYOLOv6-L

YOLOv6的网络结构图如下,可以看出改进在于:
目标检测-One Stage-YOLOv6_第1张图片

  1. Backbone:基于RepVGG设计了一个高效的Backbone–EfficientRep。相比于 YOLOv5 采用的 CSP-Backbone,该 Backbone 能够高效利用硬件(如 GPU)算力的同时,还具有较强的表征能力
    目标检测-One Stage-YOLOv6_第2张图片

ps:

  • YOLOv5/YOLOX 使用的 Backbone 和 Neck 都基于 CSPNet搭建,采用了多分支的方式和残差结构。对于 GPU 等硬件来说,这种结构会一定程度上增加延时,同时减小内存带宽利用率。
  • EfficientRep基于RepVGG Style 结构,这种结构是一种在训练时具有多分支拓扑,而在实际部署时可以等效融合为单个 3x3 卷积的一种可重参数化的结构。通过融合成的 3x3 卷积结构,可以有效利用计算密集型硬件计算能力(比如 GPU),同时也可获得 GPU/CPU 上已经高度优化的 NVIDIA cuDNN 和 Intel MKL 编译框架的帮助。
  • 简而言之,就是仅在训练时使用多路径拓扑,在推理时使用单路径拓扑
    目标检测-One Stage-YOLOv6_第3张图片
  1. Neck:基于RepBlock设计了Rep-PAN,实质上是将PAN中的CSP-Block替换为RepBlock

ps:用 RepBlock 替换了 YOLOv5 中使用的 CSP-Block,同时对整体 Neck 中的算子进行了调整,目的是在硬件上达到高效推理的同时,保持较好的多尺度特征融合能力
目标检测-One Stage-YOLOv6_第4张图片

  1. 设计了更加高效的Decoupled head,YOLOX的解耦头中,新增了两个额外的3x3卷积,这样也会一定程度增加运算的复杂度。YOLOv6基于Hybrid Channels的策略重新设计出了一个更高效的解耦头结构(即将中间的3×3卷积层的数量减少到只有一个。Head的宽度由backbone和neck的宽度乘数共同缩放)。在不怎么改变精度的情况下降低延时,达到了速度与精度的均衡。

目标检测-One Stage-YOLOv6_第5张图片

二、YOLOv6的创新点

  • 结合Rep算子改进了Backbone和Neck,使其更适于GPU
  • 简化了Decoupled head,在保证精度的情况下降低延时
  • 结合了一些先进的tricks:Anchor-free、SimOTA 、SIoU loss

ps:关于IoU loss的进化史可以参考IoU Loss综述,SIoU重新考虑关于距离和形状的考虑,并加入了Angle和IoU成本


总结

YOLOv6达成新SOTA,在MS COCO数据集test-dev 2017上进行评估,YOLOv6-L在NVIDIA Tesla T4上实现了52.5%的AP和70%的AP50 ,速度约为50 FPS

目标检测-One Stage-YOLOv6_第6张图片

你可能感兴趣的:(目标检测,目标检测,YOLO,人工智能,计算机视觉,深度学习)