YOLOv8:官方项目训练

这篇具有很好参考价值的文章主要介绍了YOLOv8:官方项目训练。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 基础解读

        detect/train.py中有DetectionTrainer类,继承自BaseTrainer类,并实现了诸如get_dataloader, get_model等接口。

        setup_model接口用于准备模型,首先会检查self.model是否是torch.nn.Module,即已经是导入的模型。如果不是,检查当前从配置文件导入的模型是pt模型还是yaml模型。之后,会调用get_model接口进行模型的创建(包含load checkpoint)。

2. 配置

        配置文件位于./ultralytics/yolo/cfg/default.yaml

(1)训练配置

        在Train settings部分,配置model, data, model_save_dir,enable_log

和log_dir路径。分别表示训练的算法网络、数据路径、模型存储路径、是否开启日志和日志存储路径。

(2)推理、测试配置

        在Prediction settings部分,配置
predict_model, source, result_dir,此外在Val/Test settings部分配置conf, iou等。

3. 运行记录

运行如下指令训练:

python3 ultralytics/yolo/v8/detect/train.py

(1)错误1

        No module named 'ultralytics'

        解决:

        事实上,YOLOv8源代码中已经包含了ultralytics的一些东西,无需再安装,因此这个时候可以在ultralytics/yolo/v8/detect/train.py文件的起始位置加上如下代码即可。

        import os

        import sys

        sys.path.append("/2T/001_AI/1003_YOLOv8/001_AL/001_YOLOv8")

(2)错误2:

        遇到错误:No module named 'git'

        解决:

        pip3 install gitpython

(3)错误3:

        No module named 'thop'

        解决:

        pip3 install thop

4. 按照示例代码运行

        如果想使用官方代码直接运行,在解决完成上述问题后,直接运行如下代码即可。

python3 ultralytics/yolo/v8/detect/train.py

        此时,终端打印如下:

YOLOv8:官方项目训练,YOLOv8,YOLO

YOLOv8:官方项目训练,YOLOv8,YOLO

YOLOv8:官方项目训练,YOLOv8,YOLO

5. 训练自己的数据

训练自己的数据时,需要根据自己的数据标注格式修改部分代码,主要是ultralytics/yolo/data/datasets/路径下的yaml文件,如添加VOC_Power48.xml。

在配置数据yaml文件之前,需要通过几个步骤预处理,获取train、val、test数据集。本处以VOC数据标注转coco数据格式进行举例说明。

(1)VOC转YOLO格式数据集

YOLO格式仅是一种叫法,形式如下,不必深究。

[class_id, Xcenter, Ycenter, Width, Height]

VOC数据集普遍以LabelImg软件进行标注,获取一份与图像数据同名的标注文件。如000000.jpg对应000000.xml。为了便于YOLO系列使用,普遍会将VOC数据标注转换为YOLO标注形式,即000000.jpg对应000000.txt标注文件。

运行转换脚本:step_1_voc2yolo_convert.py

(2)划分train、val、test

在上一步制作完成YOLO格式的标注文件后,需要将数据集按照一定的比例划分为训练集(train.txt)、评估集(val.txt)和测试集(test.txt)。

划分数据集运行脚本:step_3_split_train_val_test.py

有两点需要注意:

a. 为了尽量增多训练和评估样本数量,测试集可使用未标注的文件;

b. 经过当前脚本生成的是txt文件,内容为路径列表,如图1所示。训练时在VOC_Power48.xml导入该txt文件路径即可(如图2)。

YOLOv8:官方项目训练,YOLOv8,YOLO

图1 训练数据集(train.txt)样例

YOLOv8:官方项目训练,YOLOv8,YOLO

图2 数据文件配置

(3)测试数据

经过第一步的转换(step_1_voc2yolo_convert.py)以后,可通过脚本step_2_optional_draw_for_validate.py指定文件名(.jpg)和标注文件(.txt)进行数据的测试

6. Finetune

执行finetune的时候,只需要将default.py中的model替换成已有的pt模型即可。

7. 训练策略

训练的数据增强部分最后10 epoch关闭Mosaic增强更有利于模型收敛的稳定,同时训练epoch数从300增大到500使得模型训练更充分。

从上面可以看出,YOLOv8集合了之前提出的诸如YOLOX、YOLOv6、YOLOv7和PPYOLOE等算法的相关设计,尤其是Head标签分配和Loss部分以及PP-YOLOE非常相似。YOLOv8集百家所长达到了实时检测界的一个新高度。

8. 继续训练与恢复训练

继续训练是指使用已保存的ckpt中的weights、optimizer和其他等参数,从头开始训练,一般情况下epoch从0开始。

恢复训练是指使用已保存的ckpt中的weights、optimizer和epoch等参数作为(pretrained weights)继续训练,一般情况下epoch>0。

工程中,在resume_training阶段做了修改,当执行resume训练时,start_epoch接上次,当Finetune训练时,start_epoch从0开始。

配置文件中(default.yaml, 或由DEFAULT_CFG_PATH指定的其他配置文件)有以下几个可选的配置:

(1)model为yaml文件(resume==False)

执行Training from scratch。

(2)model为pt模型文件(resume==False)

执行Finetune training。

(3)resume为指定的pt模型文件(忽略model指定内容)

当resume为指定的pt时,执行resume训练。

特别说明

代码初始运行时会有check_amp操作,此时会自动下载yolov8n.pt用于检查。文章来源地址https://www.toymoban.com/news/detail-697545.html

到了这里,关于YOLOv8:官方项目训练的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从零开始训练 YOLOv8最新8.1版本教程说明(包含Mac、Windows、Linux端 )同之前的项目版本代码有区别

    从零开始训练 YOLOv8 - 最新8.1版本教程说明 本文适用Windows/Linux/Mac:从零开始使用Windows/Linux/Mac训练 YOLOv8 算法项目 《芒果 YOLOv8 目标检测算法 改进》 适用于芒果专栏改进 YOLOv8 算法 官方 YOLOv8 算法 第一步 配置环境 首先 点击这个链接 https://github.com/ultralytics/ultralytics/tree/v8.1

    2024年01月25日
    浏览(55)
  • FPS游戏实战数据集|yolov8训练模型导出|C/C++项目|驱动鼠标模拟人工|加密狗USB硬件虚拟化

    目录 数据集准备 训练模型 模型部署 总结 YOLO(You Only Look Once)是一种基于深度学习的目标检测算法,能够快速准确地识别图像中的目标。在游戏领域,YOLO可以应用于游戏场景中的人物识别和动作捕捉等方面。本文将介绍如何使用YOLO识别游戏人物。 15000张FPS实战数据集yolo

    2024年02月05日
    浏览(50)
  • 【YOLO系列】YOLOv8算法(尖端SOTA模型)

    在这里粗略回顾一下YOLOv5,这里直接提供YOLOv5的整理的结构图吧 Backbone:CSPDarkNet结构,主要结构思想的体现在C3模块,这里也是梯度分流的主要思想所在的地方; PAN-FPN:双流的FPN,必须香,也必须快,但是量化还是有些需要图优化才可以达到最优的性能,比如cat前后的scal

    2024年02月02日
    浏览(29)
  • 【YOLO系列】YOLOv8 -【教AI的陶老师】

    详细结构图 这样搞有什么意义?【获得不同尺寸的输出】 c2f 详细结构 yolo v8 损失函数 与 yolo v5 的区别

    2024年02月03日
    浏览(32)
  • YOLO8实战:yolov8实现行人跟踪计数

    本篇文章首先介绍YOLOV8实现人流量跟踪计数的原理,文末附代码 yolo8人流量统计 引言:行人跟踪统计是智能监控系统中的重要功能,可以广泛应用于人流控制、安全监控等领域。传统的行人跟踪算法往往受到光照、遮挡等因素的干扰,难以实现准确跟踪。随着深度学习技术的

    2024年02月06日
    浏览(47)
  • 改进YOLO系列:改进YOLOv8,教你YOLOv8如何添加20多种注意力机制,并实验不同位置。

    注意力机制(Attention Mechanism)是深度学习中一种重要的技术,它可以帮助模型更好地关注输入数据中的关键信息,从而提高模型的性能。注意力机制最早在自然语言处理领域的序列到序列(seq2seq)模型中得到广泛应用,后来逐渐扩展到了计算机视觉、语音识别等多个领域。

    2024年02月16日
    浏览(31)
  • 从YOLOv1到YOLOv8的YOLO系列最新综述【2023年4月】

    作者: Juan R. Terven 、 Diana M. Cordova-Esparaza 摘要: YOLO已经成为 机器人 、 无人驾驶汽车 和 视频监控应用 的核心实时物体检测系统。我们对YOLO的演变进行了全面的分析,研究了从最初的YOLO到YOLOv8每次迭代的创新和贡献。我们首先描述了标准指标和后处理;然后,我们讨论了

    2024年02月04日
    浏览(45)
  • RT-DETR论文阅读笔记(包括YOLO版本训练和官方版本训练)

    论文地址: RT-DETR论文地址 代码地址: RT-DETR官方下载地址 大家如果想看更详细训练、推理、部署、验证等教程可以看我的另一篇博客里面有更详细的介绍 内容回顾: 详解RT-DETR网络结构/数据集获取/环境搭建/训练/推理/验证/导出/部署  目录 一、介绍  二、相关工作 2.1、实

    2024年02月03日
    浏览(27)
  • YoloV8改进策略:Block改进|Mamba-UNet改进YoloV8,打造全新的Yolo-Mamba网络

    本文尝试使用Mamba的VSSBlock替换YoloV8的Bottleneck,打造最新的Yolo-Mamba网络。 在医学图像分析的最新进展中,卷积神经网络(CNN)和视觉转换器(ViT)都取得了显著的基准成绩。前者通过其卷积操作在捕获局部特征方面表现出色,而后者则通过利用自注意力机制实现了出色的全局

    2024年02月20日
    浏览(45)
  • 【YOLO】Windows 下 YOLOv8 使用 TensorRT 进行模型加速部署

    本文全文参考文章为 win10下 yolov8 tensorrt模型加速部署【实战】 本文使用的代码仓库为 TensorRT-Alpha 注:其他 Yolov8 TensorRT 部署项目:YOLOv8 Tensorrt Python/C++部署教程 安装Visual Studio 2019或者Visual Studio 2022、Nvidia驱动 安装cuda,cudnn、opencv、tensorrt并进行相应的环境配置,这里不做配

    2024年02月11日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包