YOLOv8训练自定义数据集(超详细)

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

借鉴 YOLOv8训练自己的数据集(超详细)_AI追随者的博客-CSDN博客

一、准备训练环境

  1. 安装 requirements.txt

下载:https://raw.githubusercontent.com/ultralytics/ultralytics/main/requirements.txt

然后在你 目录下执行

pip install -r requirements.txt

它的 requirements 主要是以下 包,用下面代码检查下自己还缺哪些,补上就好。


pip show matplotlib         
pip show numpy              
pip show opencv-python      
pip show Pillow             
pip show PyYAML             
pip show requests           
pip show scipy              
pip show torch              
pip show torchvision        
pip show tqdm               
pip show tensorboard        
pip show pandas             
pip show seaborn            
pip show psutil 
pip show thop               
pip show certifi            

  1. 安装ultralytics


pip install ultralytics

二、 准备自己的数据集

dataSet
images
label
xml

先 把 用labelImage 标注 完的图片和xml文件 分别放到 images 和 xml 文件夹里,运行 split_train_val.py,切分好数据。再运行 voc2yolo.py ,把数据集格式转换成yolo_txt格式。

也可以通过聚类获得先验框

utils下有 autoanchor.py文件,那么就可以采用自动获取anchors。yolov8好像可以自动调用来获取先验框了,参考这篇

三、模型训练

1、下载预训练模型

在YOLOv8的GitHub开源网址上下载对应版本的模型

2、训练

接下来就可以开始训练模型了,命令如下:


yolo task=detect mode=train model=yolov8n.yaml data=mydata.yaml epochs=100 batch=16

以上参数解释如下:

task:选择任务类型,可选['detect', 'segment', 'classify', 'init']

mode: 选择是训练、验证还是预测的任务蕾西 可选['train', 'val', 'predict']

model: 选择yolov8不同的模型配置文件,可选yolov8s.yaml、yolov8m.yaml、yolov8l.yaml、yolov8x.yaml

data: 选择生成的数据集配置文件

epochs:指的就是训练过程中整个数据集将被迭代多少次,显卡不行你就调小点。

batch:一次看完多少张图片才进行权重更新,梯度下降的mini-batch,显卡不行你就调小点。

更多参数的含义以及怎么调参,参考这篇

训练过程:

YOLOv8训练自定义数据集(超详细)

如果中途遇到 下载 Arial.ttf 文件的报错,是因为 训练时需要Arial.ttf字体,本地没有,但是下载网站有可能被 墙了,你只能下通过其他方法下载。

Downloading https://ultralytics.com/assets/Arial.ttf to C:\Users\Teddy\AppData\Roaming\Ultralytics\Arial.ttf...

解决方案

点击这个Arial.ttf字体链接进行下载,然后上传到yolov5项目的根目录即可。

或者 它 提示的 :

C:\Users\Teddy\AppData\Roaming\Ultralytics\

训练完了之后,它的结果会保存在:

ultralytics\ultralytics\models\v8\runs\detect\

如果想断点续训:

大部分网上的教程目前只有以下这种,


yolo task=detect mode=train model=yolov8n.yaml data=mydata.yaml epochs=10 batch=8

而没有如何断点续训的方法,当然可以参考 yolov5 的,我通过 查看 v8的 源代码,发现它命令的参数都在这个文件里。

.\ultralytics\ultralytics\yolo\cfg\default.yaml

注意里面有个参数 是 resume,将其设置为resume=True即可,


yolo task=detect mode=train model=yolov8n.yaml data=mydata.yaml epochs=3 batch=8  resume=True 

博主运行后,便是接着上一次训练完10个epoch继续训练


model# 预训练模型或初始模型路径data# 上文 coco.yaml 的路径epochs# 迭代轮数batch# 根据显存调节device# 调用显卡数量,如:0,1,2,3workers# 调用 cpu 核心数)resume# 是否为断点续训,若是,则需把 model 路径改为上次保存的 best.pt 的路径

3、训练过程的可视化

在训练过程的可视化tensorboard tensorboard --logdir ./ 然后打开localhost:6006即可,效果如下:

YOLOv8训练自定义数据集(超详细)

备注:

训练的一些参数解释


# Train settings -------------------------------------------------------------------------------------------------------
model:  # 模型文件的路径,即yolov8n.pt, yolov8n.yaml  
data:  # 数据文件的路径,i.e. i.e. coco128.yaml
epochs: 100  # 训练的epoch数量
patience: 50  # 50个周期等待没有明显的改善,尽早停止训练
batch: 16  # number of images per batch (-1 for AutoBatch)
imgsz: 640  # #输入图像大小为整数或w,h
save: True  #保存 checkpoints 并预测结果
save_period: -1 # 每x个epoch保存一次检查点 (disabled if < 1)
cache: False  # True/ram, disk or False. 使用缓存进行数据加载
device:  # 要运行的设备,即cuda Device =0或Device =0,1,2,3或Device =cpu
workers: 8  # 用于数据加载的工作线程数(如果是DDP,则为每个RANK)
project:  # 项目名称
name:  # 实验名称
exist_ok: False  # 是否覆盖现有实验
pretrained: False  # whether to use a pretrained model
optimizer: SGD  # optimizer to use, choices=['SGD', 'Adam', 'AdamW', 'RMSProp']
verbose: True  # whether to print 详细 output
seed: 0  # 随机种子的重现性
deterministic: True  # 是否启用确定性模式
single_cls: False  # 将多类数据训练为单个类 
image_weights: False  # 使用加权图像选择进行训练
rect: False  # 如果模式为'train',则支持矩形训练;如果模式为'val',则支持矩形计算。
Mask_ratio: 4 #掩码下采样比(仅限段训练)
cos_lr: False  # 使用余弦学习速率调度器 
close_mosaic: 10  # 最后10个epoch 禁用 马赛克增强
resume: False  # 从上一个检查点开始恢复培训
min_memory: False  # 最小化内存占用损失函数,, choices=[False, True, <roll_out_thr>]
# Segmentation  #分割
overlap_mask: True  #掩码在训练过程中应该重叠(仅限训练段)
mask_ratio: 4  #  #掩码下采样比(仅限段训练) (segment train only)
# Classification
dropout: 0.0  # 使用Dropout正则化(仅分类 train)

4、多卡训练

多卡训练其实很简单,不需要使用繁琐的命令行指令,仅需把device='0,1,2,3’即可,注意一定要加\和引号哦


yolo task=detect mode=val model=runs/detect/train3/weights/best.pt data=data/fall.yaml device=0

4、模型验证

使用如下命令,即可完成对验证数据的评估。


yolo task=detect mode=val model=runs/detect/train3/weights/best.pt data=data/fall.yaml device=0

5、模型测试

source需要指定为自己的图像路径,或者摄像头(0)。

yolo task=detect mode=predict model=runs/detect/train3/weights/best.pt source=data/images device=0


yolo task=detect mode=predict source=''...

source:  # source directory for images or videos
show: False  # show results if possible
save_txt: False  # save results as .txt file
save_conf: False  # save results with confidence scores
save_crop: False  # save cropped images with results
hide_labels: False  # hide labels
hide_conf: False  # hide confidence scores
vid_stride: 1  # video frame-rate stride
line_thickness: 3  # bounding box thickness (pixels)
visualize: False  # visualize model features
augment: False  # apply image augmentation to prediction sources
agnostic_nms: False  # class-agnostic NMS
classes:  # filter results by class, i.e. class=0, or class=[0,2,3]
retina_masks: False  # use high-resolution segmentation masks
boxes: True # Show boxes in segmentation predictions

主要填写:


source# 源文件路径,可以是图片或视频show# 是否展示图片或视频classes# 显示哪些类别,类别在上文的 coco.yaml 中列出

例如:


yolo predict model=yolov8n.pt source="https://ultralytics.com/images/bus.jpg" show classes=0
YOLOv8训练自定义数据集(超详细)

这两个模型输出的结果保存在文件夹detect中

ultralytics\models\v8\runs\detect\train
  1. 视频测试

使用自己拍摄的一小段视频放入images文件夹中

YOLOv8训练自定义数据集(超详细)

在命令行中输入下面这行代码:


yolo task=detect mode=predict source=./data/images/IMG_7772.mp4

然后在你命令行里会得到输出结果,以及保存的位置。

6、模型导出

使用如下命令,即可完成训练模型的导出。

yolo task=detect mode=export model=runs/detect/train3/weights/best.pt

7、模型格式转换

在export.py中,为了将pt文件转化成onnx,需要保证--include参数包括onnx,接着直接运行即可完成权重文件的格式转换。

8使用yolov8n.onnx模型

推理代码参考pytorch yolov5 onnx推理_anny_jra的博客-CSDN博客,YoloV5模型的简单使用_yolov5n模型_王小希ww的博客-CSDN博客 这两篇。

这里做了小改进,可以在不安装torch,torchvision情况下,使用numpy + onnxruntime-gpu,直接进行yolov5n.onnx模型的推理。

也可以转ncnn

ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架。ncnn 从设计之初深刻考虑手机端的部署和使用。无第三方依赖,跨平台,手机端 cpu 的速度快于目前所有已知的开源框架。

怎么转,为了防止文章冗余,大家可以参考这篇

电脑摄像头测试

使用本机摄像头测试Yolov8实时检测(),参考 这篇


yolo task=detect mode=predict source=0

YOLOv8 也可以在 Python 中调用,详情可查看官方 Docs。

5 常见问题🌟

Q1:windows系统路径中不能出现中文,Linux可以出现

Q2:出现“页面太小,无法完成操作”

可能是虚拟内存不足,调大虚拟内存

Wiin系统可以尝试将线程 --workers设为0

Q3:memory error

内存超了,减小 --batch-size

YOLO系列的解析

YOLOv8训练自定义数据集(超详细)

一文彻底搞懂YOLOv8(网络结构+代码+实操) https://www.elecfans.com/d/2114965.html

 文章来源地址https://www.toymoban.com/news/detail-415253.html

到了这里,关于YOLOv8训练自定义数据集(超详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 在自定义数据集上训练 YOLOv8 进行目标检测

    这是目标检测中令人惊叹的 AI 模型之一。在这种情况下,您无需克隆存储库、设置要求并配置模型,就像在 YOLOv5 及其之前的版本中所做的那样。 在 YOLOv8 中,不需要执行这些手动任务。您只需安装 Ultralytics 即可,我将向您展示如何通过一个简单的命令安装它。 这是一个提

    2024年02月01日
    浏览(38)
  • YOLOv8训练自己的数据集(超详细)

    本人的笔记本电脑系统是:Windows10 YOLO系列最新版本的YOLOv8已经发布了,详细介绍可以参考我前面写的博客,目前ultralytics已经发布了部分代码以及说明,可以在github上下载YOLOv8代码,代码文件夹中会有requirements.txt文件,里面描述了所需要的安装包。 本文最终安装的pytorch版本

    2024年02月03日
    浏览(32)
  • 【yolov8】从0开始搭建部署YOLOv8,环境安装+推理+自定义数据集搭建与训练,一小时掌握

    bilibili详细视频教程 github链接:https://github.com/ultralytics/ultralytics git拉取项目: git clone https://github.com/ultralytics/ultralytics.git 首先查看pytorch支持的最高版本 PyTorch https://pytorch.org/ 然后查看N卡系统支持最高的版本 然后权衡下载支持最高版本的CUDA和cuDNN CUDA工具包 https://developer.n

    2024年01月17日
    浏览(40)
  • 【YOLO】YOLOv8实操:环境配置/自定义数据集准备/模型训练/预测

    源码链接:https://github.com/ultralytics/ultralytics yolov8和yolov5是同一作者,相比yolov5,yolov8的集成性更好了,更加面向用户了 YOLO命令行界面(command line interface, CLI) 方便在各种任务和版本上训练、验证或推断模型。CLI不需要定制或代码,可以使用yolo命令从终端运行所有任务。 如果

    2023年04月24日
    浏览(37)
  • YOLOv5-7.0-seg+YOLOv8-seg自定义数据集训练

    下载源码   https://github.com/ultralytics/yolov5.git 参考链接   yolov5-实例分割 1.如何使用yolov5实现实例分割,并训练自己的数据集_哔哩哔哩_bilibili 目录: - datasets     - JPEImages #存放图片和标注后的json文件以及转换后的txt文件     - classes-4 #存放切分好的数据集         - images    

    2024年02月01日
    浏览(39)
  • 【v8初体验】利用yolov8训练COCO数据集或自定义数据集

    github地址:https://github.com/ultralytics/ultralytics YOLOv5目前仍然是很受到大家环境的,v8作为v5的升级之作效果的提升也非常明显,但相比YOLOv5确实没有作出较大改进,主要改进如下: Backbone : 主干部分主要是将所有C3模块更换成C2f模块,C2f借鉴了YOLOv7的思想,个人感觉应该是这种多

    2023年04月27日
    浏览(27)
  • 完整且详细的Yolov8复现+训练自己的数据集

    Yolov8 的源代码下载: ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch ONNX CoreML TFLite (github.com) https://github.com/ultralytics/ultralytics Yolov8的权重下载: Releases · ultralytics/assets · GitHub Ultralytics assets. Contribute to ultralytics/assets development by creating an account on GitHub. https://github.com/ultralytics/assets

    2024年02月16日
    浏览(22)
  • OpenCV与AI深度学习 | 实战 | YOLOv8自定义数据集训练实现手势识别 (标注+训练+预测 保姆级教程)

    本文来源公众号 “OpenCV与AI深度学习” ,仅用于学术分享,侵权删,干货满满。 原文链接:实战 | YOLOv8自定义数据集训练实现手势识别 (标注+训练+预测 保姆级教程)     本文将手把手教你用YoloV8训练自己的数据集并实现手势识别。 【1】安装torch, torchvision对应版本,这里先

    2024年04月23日
    浏览(52)
  • windows下配置pytorch + yolov8+vscode,并自定义数据进行训练、摄像头实时预测

    最近由于工程需要,研究学习了一下windows下如何配置pytorch和yolov8,并自己搜集数据进行训练和预测,预测使用usb摄像头进行实时预测。在此记录一下全过程 1. vscode安装 windows平台开发python,我采用vscode作为基础开发平台,点击 https://code.visualstudio.com/进入vscode官网,下载对应

    2024年02月16日
    浏览(38)
  • 适合小白的超详细yolov8环境配置+实例运行教程,从零开始教你如何使用yolov8训练自己的数据集(Windows+conda+pycharm)

      目录 一、前期准备+所需环境配置  1.1. 虚拟环境创建 1.2 下载yolov8源码,在pycharm中进行配置 1.2.1 下载源码 1.2.2 在pycharm终端中配置conda 1.3 在pycharm的terminal中激活虚拟环境  1.4 安装requirements.txt中的相关包 1.5 pip安装其他包 1.6 预训练权重的下载  1.7 验证环境配置是否成功

    2024年02月05日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包