Project Icon

YOLOv6

高性能目标检测框架支持多场景应用

YOLOv6是一款高效的目标检测框架,提供从轻量级到大型的多种模型选择。它在速度和精度上取得平衡,支持量化和移动端部署,适用于各种实时检测场景。最新版本还引入了分割功能,扩展了应用范围。YOLOv6不仅适用于工业领域,还可广泛应用于安防、交通等多个领域。

English | 简体中文


在 Colab 中打开 在 Kaggle 中打开

YOLOv6

论文实现:

最新动态

基准测试

模型尺寸mAP验证集
0.5:0.95
速度T4
trt fp16 b1
(fps)
速度T4
trt fp16 b32
(fps)
参数量
(M)
计算量
(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 模型的输入分辨率为 1280x1280。
  • 速度在搭载 TensorRT 7.2 的 T4 上测试。
  • 参考测速教程复现 YOLOv6 的速度结果。
  • YOLOv6 的参数量和计算量是在部署模型上估算的。
旧版模型
模型尺寸mAP验证集
0.5:0.95
速度T4
trt fp16 b1
(fps)
速度T4
trt fp16 b32
(fps)
参数量
(M)
计算量
(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
  • 速度在搭载 TensorRT 7.2 的 T4 上测试。

量化模型 🚀

模型尺寸精度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
  • 速度测试使用TensorRT 8.4在T4上进行。
  • 精度是在300轮训练的模型上测得的。

移动端基准测试

模型尺寸mAPval
0.5:0.95
sm8350
(ms)
mt6853
(ms)
sdm660
(ms)
参数量
(M)
FLOPS
(G)
YOLOv6Lite-S320*32022.47.9911.9941.860.550.56
YOLOv6Lite-M320*32025.19.0813.2747.950.790.67
YOLOv6Lite-L320*32028.011.3716.2061.401.090.87
YOLOv6Lite-L320*19225.07.029.6636.131.090.52
YOLOv6Lite-L224*12818.93.634.9917.761.090.24
  • 从模型大小和输入图像比例的角度,我们在移动端构建了一系列模型,以便在不同场景下灵活应用。
  • 所有检查点都经过400轮训练,没有使用蒸馏。
  • mAP和速度结果是在COCO val2017数据集上评估的,输入分辨率为表中的尺寸。
  • 速度在MNN 2.3.0 AArch64上使用2个线程通过arm82加速测试。推理预热进行10次,循环执行100次。
  • 高通888(sm8350)、天玑720(mt6853)和高通660(sdm660)分别对应高、中、低端的不同性能芯片,可作为模型在不同芯片下能力的参考。
  • 参考测试NCNN速度教程复现YOLOv6Lite的NCNN速度结果。

快速开始

安装

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

在COCO数据集上复现我们的结果

请参考训练COCO数据集

在自定义数据集上微调

单GPU

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

多GPU(推荐使用DDP模式)

# P5模型
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模型
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:添加基于锚框的辅助分支并使用锚框辅助训练模式(目前不支持P6模型)
  • conf:选择配置文件以指定网络/优化器/超参数。我们建议在自定义数据集上训练时使用yolov6n/s/m/l_finetune.py。
  • data:准备数据集并在data.yaml中指定数据集路径(COCOYOLO格式COCO标签
  • 确保您的数据集结构如下:
├── coco
│   ├── annotations
│   │   ├── instances_train2017.json
│   │   └── instances_val2017.json
│   ├── images
│   │   ├── train2017
│   │   └── val2017
│   ├── labels
│   │   ├── train2017
│   │   ├── val2017
│   ├── LICENSE
│   ├── README.txt

YOLOv6支持不同的输入分辨率模式。详情请参见如何设置输入大小

恢复训练

如果训练过程中断,可以通过以下方式恢复训练

# 单GPU训练
python tools/train.py --resume

# 多GPU训练
python -m torch.distributed.launch --nproc_per_node 8 tools/train.py --resume

上述命令将自动在YOLOv6目录中找到最新的检查点,然后恢复训练过程。

您也可以通过以下方式为--resume参数指定检查点路径

# 请记得将/path/to/your/checkpoint/path替换为您想要恢复训练的检查点路径。
--resume /path/to/your/checkpoint/path

这将从您提供的特定检查点恢复训练。

评估

在COCO val2017数据集上使用640×640或1280x1280分辨率复现mAP

# P5模型
python tools/eval.py --data data/coco.yaml --batch 32 --weights yolov6s.pt --task val --reproduce_640_eval
# P6模型
python tools/eval.py --data data/coco.yaml --batch 32 --weights yolov6s6.pt --task val --reproduce_640_eval --img 1280
  • verbose:设置为True以打印每个类别的mAP。
  • do_coco_metric:设置为True / False以启用/禁用pycocotools评估方法。
  • do_pr_metric:设置为True / False以打印或不打印精确度和召回率指标。
  • config-file:指定配置文件以定义所有评估参数,例如:yolov6n_with_eval_params.py

推理

首先,从YOLOv6 release下载预训练模型或使用您训练的模型进行推理。

然后,使用tools/infer.py运行推理

# P5模型
python tools/infer.py --weights yolov6s.pt --source img.jpg / imgdir / video.mp4
# P6模型
python tools/infer.py --weights yolov6s6.pt --img 1280 1280 --source img.jpg / imgdir / video.mp4

如果你想在本地摄像头或网络摄像头上进行推理,可以运行:

# P5模型
python tools/infer.py --weights yolov6s.pt --webcam --webcam-addr 0
# P6模型
python tools/infer.py --weights yolov6s6.pt --img 1280 1280 --webcam --webcam-addr 0

webcam-addr可以是本地摄像头的编号ID或RTSP地址。

部署
教程
第三方资源

常见问题(持续更新)

如果你有任何问题,欢迎加入我们的微信群讨论交流。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号