【YOLO系列复现】二、基于YOLOv6的目的检测:YOLOv6练习本身的数据集(史诗级详细教程)

[复制链接]
发表于 2025-12-19 07:03:04 | 显示全部楼层 |阅读模式
 官方模子:YOLOv6/README_cn.md at main · meituan/YOLOv6
目次
1、模子和环境预备
1.1 模子下载
1.2 依靠环境安装
1.3 权重文件下载
1.4 环境测试
2、设置文件和数据集预备
2.1 预备数据集
2.2 设置文件预备
2.3 BUG修改
 3、模子练习
3.1 模子练习
3.2 练习效果先容        
(1). best_ckpt.pt
(2). last_ckpt.pt
(3)区别总结
4、模子评估与推理
4.1 模子评估
4.2 模子推理
参数详解


1、模子和环境预备

1.1 模子下载

        起首要做的是将yolov6模子克隆到当地,yolov6模子官网:YOLOv6,你可以点击内里进去下载到当地,也可以 通过git clone的方式下载到当地,如下:
  1. git clone https://github.com/meituan/YOLOv6
复制代码


  • 通过git clone的方式下载到当地: 

下载到当地后,有一个YOLOv6文件夹,如上。
1.2 依靠环境安装

终端指令进入到YOLOv6文件夹下载,举行依靠包按,如下:
  1. cd YOLOv6
  2. pip install -r requirements.txt
复制代码


  • 安装如下图: 

1.3 权重文件下载

依靠环境安装完成后,举行模子权重文件下载,yolov6的权重文件有多个版本
进入这个地点下载权重:YOLOv6,找到如下Benchmark模块,如下:

        必要用什么模子,就点击对应的模子直接举行下载,比方我用的是yolov6s.pt,即我下载的YOLOv6-S,每一个模子都有本身的特点,详细先容在下面。
        YOLOv6 是一种高效的及时目的检测模子,提供了多种预练习权重模子,每个模子都有其特定的特点和应用场景。以下是 YOLOv6 提供的一些常见预练习权重模子及其重要区别:
模子特点和区别:
1.YOLOv6-N (Nano)
(1)特点


  • 推理速率极快,但在精度上有肯定断送。
  • 极其轻量级的模子,适当资源非常受限的装备。
(2)实用场景物联网物联网装备、低功耗嵌入式体系等。
(3)权重文件:yolov6n.pt
2.YOLOv6-S (Small)
(1) 特点


  • 较小的模子巨细,适当资源受限的装备。
  • 推理速率较快,精度较高。
(2) 实用场景


  • 移动装备、嵌入式体系等对模子巨细和推理速率有较高要求的场景。
(3) 权重文件:yolov6s.pt
3.YOLOv6-M (Medium)
(1) 特点


  • 模子巨细介于 Small 和 Large 之间。
  • 精度和速率的均衡较好。
(2) 实用场景


  • 一样寻常用途的目的检测使命,既必要肯定的精度又必要较快的推理速率。
(3) 权重文件:yolov6m.pt
4.YOLOv6-L (Large)
(1) 特点


  • 较大的模子巨细,具有更高的精度。
  • 推理速率相对较慢。
(2) 实用场景


  • 高精度要求的使命,如安全监控监控、医学影像分析等。
(3) 权重文件:yolov6l.pt
5.YOLOv6-N6 (Nano with 1280x1280 input)
(1) 特点


  • 极轻量级模子,但输入分辨率进步到 1280x1280,进步了精度。
  • 推理速率仍然较快。
(2) 实用场景


  • 必要在资源受限装备上得到更高精度的场景。
(3) 权重文件:yolov6n6.pt
6.YOLOv6-S6 (Small with 1280x1280 input)
(1) 特点


  • 较小的模子巨细,输入分辨率进步到 1280x1280,进步了精度。
  • 推理速率较快。
(2) 实用场景


  • 必要在移动装备上得到更高精度的场景。
(3) 权重文件:yolov6s6.pt
7.YOLOv6-M6 (Medium with 1280x1280 input)
(1) 特点


  • 模子巨细介于 Small 和 Large 之间,输入分辨率进步到 1280x1280,进步了精度。
  • 精度和速率的均衡较好。
(2) 实用场景


  • 一样寻常用途的目的检测使命,必要更高的精度。
(3) 权重文件:yolov6m6.pt
8.YOLOv6-L6 (Large with 1280x1280 input)
(1) 特点


  • 较大的模子巨细,输入分辨率进步到 1280x1280,具有最高的精度。
  • 推理速率最慢。
(2) 实用场景


  • 必要最高精度的场景,如科学研究、高精度工业检测等。
(3) 权重文件:yolov6l6.pt
选择符合的模子
选择符合的 YOLOv6 模子取决于您的详细需求:


  • 资源限定:如果装备资源有限,选择 Nano 或 Small
  • 精度要求:如果必要高精度,选择 Large 或 L6
  • 速率要求:如果必要快速推理,选择 Nano 或 Small
  • 通用用途:如果必要均衡精度和速率,选择 Medium 或 M6
在YOLOv6目次下新建一个weights文件夹,把下载的权重模子放到该文件夹下:

1.4 环境测试

环境摆设预备好之后,实验推理,测试环境是否摆设乐成。
在YOLOv6目次下运行如下代码
  1. python tools/infer.py
复制代码


  • 运行截图: 

        可以看到推理效果存放到runs/inference/exp文件夹下的,即进入该文件夹下(/YOLOv6/runs/inference/exp/images/),可以看到如下推理效果,表现环境预备乐成,接下来就可以举行模子练习了。 

2、设置文件和数据集预备

2.1 预备数据集

        YOLOv6 支持多种格式的数据集,可以YOLO、COCO、VOC等格式的数据集,本次实验我采取的YOLO格式的数据集,YOLO数据集制作参考:数据标注,参考这篇文章的的“一、数据标注篇”下的“2、数据标注与处置惩罚”的“2.1 图像标注部门”,将图片和标注文件,按照如下布局举行放置:
  1. datasets/
  2. ├── images/
  3. │   ├── train/
  4. │   │   ├── image1.jpg
  5. │   │   ├── image2.jpg
  6. │   │   └── ...
  7. │   ├── val/
  8. │   │   ├── image1.jpg
  9. │   │   ├── image2.jpg
  10. │   │   └── ...
  11. │   └── test/
  12. │       ├── image1.jpg
  13. │       ├── image2.jpg
  14. │       └── ...
  15. ├── labels/
  16. │   ├── train/
  17. │   │   ├── image1.txt
  18. │   │   ├── image2.txt
  19. │   │   └── ...
  20. │   ├── val/
  21. │   │   ├── image1.txt
  22. │   │   ├── image2.txt
  23. │   │   └── ...
复制代码
2.2 设置文件预备

        我的实验基于牛马的目的检测,故我的数据是牛和马的数据集,因此我的目的检测的种别是2,对应的标署名称为:cow(牛)、马(horse)。
在如下路径下设置文件:/YOLOv6/data/dataset.yaml,设置文件修改如下:


2.3 BUG修改

        YOLOv6模子还是有一个BUG的,不知道是,什么时间可以修复,就是模子练习的时间找不到YOLOv6模子,实验的时间,这一步可以先跳过,直接去练习,如果练习不报这个错误的话就不消管。
        如果练习报错,说找不到什么文件的话,就将下列代码复制到YOLOv6/tools/目次下的train.py的文件里,目的是将YOLOv6 的路径添加到train.py文件中,如下图:
  1. import sys
  2. sys.path.insert(0, '/mnt/workspace/YOLO系列/YOLOv6')
复制代码
(注意“YOLOv6路径选择本身所放文件的绝对路径,比方我的YOLOv6文件是下载到/mnt/workspace/YOLO系列/路径下的,故我的路径是:/mnt/workspace/YOLO系列/YOLOv6”)


 3、模子练习

3.1 模子练习

环境、依靠、数据集、设置文件等预备好后,接下来就是举行模子练习。


  • 模子练习:
  1. python tools/train.py --batch 32 --epochs 30 --conf configs/yolov6s_finetune.py --data data/dataset.yaml --fuse_ab
复制代码


  • 参数详解:
1.--batch 32


  • 分析:设置批量巨细(batch size)。
  • 作用:批量巨细决定了每次前向传播和反向传播处置惩罚的样本数量。较大的批量巨细可以使用 GPU 的并行盘算本事,但会占用更多的内存。
  • 默认值:通常默认值为 16 或 32,详细取决于硬件设置。
2.--epochs 30


  • 分析:设置练习的轮数(epochs)。
  • 作用:每个 epoch 表现整个练习数据集被遍历一次。增长 epochs 数量可以进步模子的练习效果,但也大概增长过拟合的风险。
  • 默认值:通常默认值为 100 或更高,详细取决于使命的复杂性和数据集的巨细。
3.--conf configs/yolov6s_finetune.py


  • 分析:指定设置文件的路径。
  • 作用:设置文件包罗模子的架构、优化器设置、学习率调理等告急参数。yolov6s_finetune.py 是一个用于微调的设置文件。
  • 默认值:没有默认值,必须指定。
4.--data data/dataset.yaml


  • 分析:指定命据集设置文件的路径。
  • 作用:数据集设置文件界说了练习、验证和测试数据集的路径以及种别信息。dataset.yaml 文件通常包罗图像路径和标签路径。
  • 默认值:没有默认值,必须指定。
5.--fuse_ab


  • 分析:启用融合利用(fuse operation)。
  • 作用:融合利用可以优化模子的性能,特别是在推理阶段。--fuse_ab 参数通常用于优化模子的卷积层。
  • 默认值:通常默认环境下不启用,必要手动添加此参数。
模子练习过程如下:


模子练习完成: 

3.2 练习效果先容        

        上图可以看出模子练习完成后,将练习的效果存放到runs/train/exp目次下,进入到该目次下,如下: 

该目次下有一个weights权重文件,内里存放的练习好的模子权重:

        在 YOLOv6 模子练习过程中,通常会天生多个权重文件,此中最常见的两个是 best_ckpt.pt 和 last_ckpt.pt。这两个文件有差别的用途和寄义:
(1). best_ckpt.pt



  • 分析:这是在整个练习过程中体现最好的模子权重文件。
  • 选择标准:通常根据验证集上的某个评估指标(如 mAP,即均匀精度均值)来选择最佳模子。当某个 epoch 的验证集性能到达最优时,模子的权重会被生存为 best_ckpt.pt。
  • 用途:用于终极的模子摆设和测试。由于这是在验证集上体现最好的模子,以是通常会选择它作为终极模子。
(2). last_ckpt.pt



  • 分析:这是练习竣事时末了一个 epoch 的模子权重文件。
  • 选择标准:无论末了一个 epoch 的验证集性能怎样,都会生存这个模子的权重。
  • 用途:用于继续练习或举行进一步的微调。如果练习过程制止,可以使用 last_ckpt.pt 从末了一个 epoch 继续练习。
(3)区别总结



  • 最佳性能 vs 最新状态

    • best_ckpt.pt 是在验证集上体现最好的模子,通常用于终极的模子摆设和测试。
    • last_ckpt.pt 是练习竣事时的最新模子,通常用于继续练习或微调。

        综上所述,best_ckpt.pt是练习过程中体现最好的模子,故后续的模子评估和模子推理摆设都用改模子。
4、模子评估与推理

4.1 模子评估

接下来是用练习好的最佳的权重模子best_ckpt.pt模子举行模子评估:
  1. python tools/eval.py --data data/dataset.yaml --batch 32 --weights ./runs/train/exp1/weights/best_ckpt.pt --task val
复制代码
参数详解:
(1)--data  data/dataset.yaml


  • 分析:指定命据集设置文件的路径。
  • 作用:数据集设置文件界说了练习、验证和测试数据集的路径以及种别信息。dataset.yaml 文件通常包罗图像路径和标签路径。
(2)--batch 32


  • 分析:设置批量巨细(batch size)。
  • 作用:批量巨细决定了每次前向传播处置惩罚的样本数量。较大的批量巨细可以使用 GPU 的并行盘算本事,但会占用更多的内存。

(3)--weights runs/train/exp1/weights/best_ckpt.pt


  • 分析:指定模子权重文件的路径。
  • 作用:模子权重文件包罗练习好的模子参数。在这里,您指定了 best_ckpt.pt 文件,这是在验证集上体现最好的模子权重。

(4)--task val


  • 分析:指定使命范例。
  • 作用:val 表现在验证集上举行评估。其他大概的值包罗 test(在测试集上举行评估)。
(5)模子评估过程截图示例:


如上图,模子评估后效果存放到runs/val/exp目次下,进入到该目次就可以看到模子评估的效果了。
4.2 模子推理

接下来是模子推理,模子推理如下:
  1. python tools/infer.py  --weights ./runs/train/exp1/weights/best_ckpt.pt --source  ./data/datasets/images/test
复制代码
参数详解

(1)--weights runs/train/exp1/weights/best_ckpt.pt


  • 分析:指定模子权重文件的路径。
  • 作用:模子权重文件包罗练习好的模子参数。在这里,您指定了 best_ckpt.pt 文件,这是在验证集上体现最好的模子权重。
(2)--source data/datasets/images/test


  • 分析:指定输入数据的路径。
  • 作用:输入数据可以是单个图像文件、目次中的多个图像文件或视频文件。在这里,您指定了一个包罗测试图像的目次。
 (3)模子推理过程如下:

        模子推测乐成后,如上图,推测效果存放到runs/inference/exp目次下,进入该目次,就可以看到推测的效果,推测的效果部门示比方下: 
 


 


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表