当前位置: 首页 > news >正文

绝了,超越YOLOv7、v8,YOLOv6 v3.0正式发布

超越YOLOv7、v8! YOLOv6 v3.0正式发布!!!

YOLOv6 全新版本v3.0正式发布!
引入新的网络架构和训练方案,其中YOLOv6-S以484 FPS的速度达到45.0% AP,超过YOLOv5-S、YOLOv8-S,其代码刚刚开源

由于前段时间Ultralytics公司透露出V8的发布消息,美团也坐不住了,YOLO社区一直情绪高涨!

随着中国农历新年2023(兔年)的到来,美团技术团队对YOLOv6进行了许多新的网络架构和训练方案的改进。此版本标识为YOLOv6 v3.0。 

论文代码都已经开源!!!

GitHub地址:https://github.com/meituan/YOLOv6

论文地址:https://arxiv.org/abs/2301.05586 

 

论文 

 摘要:

        自我们的前两个版本以来,YOLO社区一直处于高涨的情绪中 在2023年兔年到来之际,我们对YOLOv6的网络架构和训练方案进行了许多新的改进。这个版本被确定为YOLOv6 v3.0。对于性能的一瞥,我们的YOLOv6N在COCO数据集上达到了37.5%的AP,用NVIDIA Tesla T4 GPU测试的吞吐量为1187 FPS。YOLOv6S在484 FPS的情况下达到了45.0%的AP,超过了其他相同规模的主流检测器(YOLOv5-S、YOLOv8S、YOLOX-S和PPYOLOE-S)。而YOLOv6-M/L在相似的推理速度下,也比其他检测器取得了更好的准确性表现(分别为50.0%/52.8%)。此外,通过扩展骨干和颈部设计,我们的YOLOv6-L6实现了最先进的实时准确性。我们仔细进行了广泛的实验,以验证每个改进组件的有效性。我们的代码可在https://github.com/meituan/YOLOv6提供。

网络结构改进

 YOLOv6的颈部(图中是N和S)。注意M/L,RepBlocks被替换为CSPStackRep。 (b) 一个BiC模块的结构。(c) 一个SimCSPSPPF块。

具体更新如下:

  • 检测器的颈部更新了一个双向的串联(BiC)模块,以提供更准确的定位信号。SPPF[5]被简化成SimCSPSPPF块,它带来了性能上的提升,而速度上的下降可以忽略不计。
  • 提出了一种锚辅助训练(AA T)策略,在不触及推理效率的前提下,享受基于锚和无锚范式的优势。
  • 深化了YOLOv6,使其在骨干和颈部有了另一个阶段,这加强了它在高分辨率输入的COCO数据集上达到了新的最先进的性能。
  • 涉及到一种新的自我蒸馏策略,以提高YOLOv6小模型的性能,其中DFL[8]的较重分支在训练期间被作为增强的辅助回归分支,并在推理时被移除,以避免速度明显下降。

具体的更新思路可以查看论文。

新旧模型对比

v3.0版本

模型输入尺寸mAPval
0.5:0.95
速度T4
trt fp16 b1
(fps)
速度T4
trt fp16 b32
(fps)
Params
(M)
FLOPs
(G)
YOLOv6-N64037.577911874.711.4
YOLOv6-S64045.033948418.545.3
YOLOv6-M64050.017522634.985.8
YOLOv6-L64052.89811659.6150.7
YOLOv6-N6128044.922828110.449.8
YOLOv6-S6128050.39810841.4198.0
YOLOv6-M6128055.2475579.6379.5
YOLOv6-L6128057.22629140.4673.4
  • 除了 YOLOv6-N6/S6 模型是训练了300轮的结果,其余模型均为自蒸馏训练之后的结果;
  • mAP 和速度指标是在 COCO val2017 数据集上评估的,P5模型输入分辨率为 640×640,P6模型输入分辨率为 1280×1280;
  • 速度是在 T4 上测试的,TensorRT 版本为 7.2;
  • 复现 YOLOv6 的速度指标,请查看 速度测试 教程;
  • YOLOv6 的参数和计算量是在推理模式下计算的;

旧版模型

模型输入尺寸mAPval
0.5:0.95
速度T4
trt fp16 b1
(fps)
速度T4
trt fp16 b32
(fps)
Params
(M)
FLOPs
(G)
YOLOv6-N64035.9300e
36.3400e
80212344.311.1
YOLOv6-T64040.3300e
41.1400e
44965915.036.7
YOLOv6-S64043.5300e
43.8400e
35849517.244.2
YOLOv6-M64049.517923334.382.2
YOLOv6-L-ReLU64051.711314958.5144.0
YOLOv6-L64052.59812158.5144.0
  • 速度是在 T4 上测试的,TensorRT 版本为 7.2;

 量化模型

模型输入尺寸精度mAPval
0.5:0.95
速度T4
trt b1
(fps)
速度T4
trt b32
(fps)
YOLOv6-N RepOpt640INT834.811141828
YOLOv6-N640FP1635.98021234
YOLOv6-T RepOpt640INT839.87411167
YOLOv6-T640FP1640.3449659
YOLOv6-S RepOpt640INT843.3619924
YOLOv6-S640FP1643.5377541
  • 速度是在 T4 上测试的,TensorRT 版本为 8.4;
  • 精度是在训练 300 epoch 的模型上测试的;

 快速开始

安装

git clone https://github.com/meituan/YOLOv6
cd YOLOv6
pip install -r requirements.txt

在coco数据集上复现请参考教程 训练 COCO 数据集.

在自定义数据集上微调模型

单卡

# P5 models
python tools/train.py --batch 32 --conf configs/yolov6s_finetune.py --data data/dataset.yaml --fuse_ab --device 0
# P6 models
python tools/train.py --batch 32 --conf configs/yolov6s6_finetune.py --data data/dataset.yaml --img 1280 --device 0

多卡(推荐使用DDP模式)

# P5 models
python -m torch.distributed.launch --nproc_per_node 8 tools/train.py --batch 256 --conf configs/yolov6s_finetune.py --data data/dataset.yaml --fuse_ab --device 0,1,2,3,4,5,6,7
# P6 models
python -m torch.distributed.launch --nproc_per_node 8 tools/train.py --batch 128 --conf configs/yolov6s6_finetune.py --data data/dataset.yaml --img 1280 --device 0,1,2,3,4,5,6,7
  • fuse_ab: 增加anchor-based预测分支并使用联合锚点训练模式 (P6模型暂不支持此功能)
  • conf: 配置文件路径,里面包含网络结构、优化器配置、超参数信息。如果您是在自己的数据集训练,我们推荐您使用yolov6n/s/m/l_finetune.py配置文件;
  • data: 数据集配置文件,以 COCO 数据集为例,您可以在 COCO 下载数据, 在这里下载 YOLO 格式标签;
  • 确保您的数据集按照下面这种格式来组织;
├── coco
│   ├── annotations
│   │   ├── instances_train2017.json
│   │   └── instances_val2017.json
│   ├── images
│   │   ├── train2017
│   │   └── val2017
│   ├── labels
│   │   ├── train2017
│   │   ├── val2017

其它详情请看: GitHub地址:https://github.com/meituan/YOLOv6

最后附一篇详细的介绍文章:超越YOLOv8!| YOLOv6 v3.0正式来袭! 

相关文章:

  • 概论_第3章_二维随机变量__边缘概率密度
  • JS逆向之补环境过瑞数详解
  • 【程序员陪你过大年】html+css+js 实现春节动态烟花特效及服务器部署
  • 通讯录小练习:柔性数组和文件操作实现
  • 十三.动态内存管理
  • 【8】SCI易中期刊推荐——图像处理领域(中科院4区)
  • 计算机视觉未来发展与走向
  • 【每日一道智力题】之猴子搬香蕉
  • 集成学习、Bagging集成原理、随机森林构造过程、随机森林api与案例、boosting集成原理、梯度提升决策树(GBDT)、XGBoost与泰勒展开式
  • 第一层:封装
  • 【BP靶场portswigger-客户端14】点击劫持-5个实验(全)
  • 【PaaS】分享一家最近发现的宝藏Paas厂家
  • C语言—基于realloc函数实现的通讯录
  • 【云原生】k8s 一键部署(ansible)
  • Java使用Zxing二维码生成
  • 自己简单写的 事件订阅机制
  • [译]如何构建服务器端web组件,为何要构建?
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • Kibana配置logstash,报表一体化
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Mac转Windows的拯救指南
  • Python学习之路16-使用API
  • Vue 2.3、2.4 知识点小结
  • 程序员该如何有效的找工作?
  • 电商搜索引擎的架构设计和性能优化
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 怎么将电脑中的声音录制成WAV格式
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • Mac 上flink的安装与启动
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • ${factoryList }后面有空格不影响
  • (52)只出现一次的数字III
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (zt)最盛行的警世狂言(爆笑)
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (动态规划)5. 最长回文子串 java解决
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (一)WLAN定义和基本架构转
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)Mysql的优化设置
  • .NET delegate 委托 、 Event 事件,接口回调
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • [Arduino学习] ESP8266读取DHT11数字温湿度传感器数据
  • [C#]使用PaddleInference图片旋转四种角度检测