YOLOv8 训练自己的数据集 教程 (并使用YOLOv8-track跟踪)

YOLOv8项目地址:https://github.com/ultralytics/ultralytics

项目目录如下:

1.准备数据集

        准备数据集部分,可以参照我的这篇文章:YOLOv5-5.0 训练自己的数据集教程(附带YOLOv3教程)

        数据集存放样式:

        新建一个 ViewCategory.py ,脚本如下:(需要修改第40行,改成你自己的xml文件地址)

import os
from unicodedata import name
import xml.etree.ElementTree as ET
import glob


def count_num(indir):
    label_list = []
    # 提取xml文件列表
    os.chdir(indir)
    annotations = os.listdir('.')
    annotations = glob.glob(str(annotations) + '*.xml')

    dict = {}  # 新建字典,用于存放各类标签名及其对应的数目
    for i, file in enumerate(annotations):  # 遍历xml文件

        # actual parsing
        in_file = open(file, encoding='utf-8')
        tree = ET.parse(in_file)
        root = tree.getroot()

        # 遍历文件的所有标签
        for obj in root.iter('object'):
            name = obj.find('name').text
            if (name in dict.keys()):
                dict[name] += 1  # 如果标签不是第一次出现,则+1
            else:
                dict[name] = 1  # 如果标签是第一次出现,则将该标签名对应的value初始化为1

    # 打印结果
    print("各类标签的数量分别为:")
    for key in dict.keys():
        print(key + ': ' + str(dict[key]))
        label_list.append(key)
    print("标签类别如下:")
    print(label_list)


if __name__ == '__main__':
    # xml文件所在的目录,修改此处
    indir = 'data_cu/Annotations'
    count_num(indir)  # 调用函数统计各类标签数目

        运行这个脚本,就能看到如下内容:

 2.在你的数据集的文件夹下,创建xxx.yaml

        用来存放训练集,验证集以及测试集的txt文件

        格式如下:


train: D:/Py_projects/yolov8/data_cu/dataSet_path/train.txt    #训练集路径
val: D:/Py_projects/yolov8/data_cu/dataSet_path/val.txt
test: D:/Py_projects/yolov8/data_cu/dataSet_path/test.txt

nc: 1    # 你的类别数

names: ['fanqie']    # 你的类别标签名

3.训练(在终端中使用):

        需要修改一下"data=xxx"这句,用刚才第二步,你自己数据集下创建的的yaml文件。

yolo task=detect mode=train model=yolov8s.pt data=data_cu/tmt_cu.yaml batch=16 epochs=100 imgsz=640 workers=2 device=0

        其他的参数按需修改,然后按回车开始训练。

4.验证val(在终端中使用)

 需要修改:

"model=xxx"这句,改成你刚才训练完后的best.pt文件路径。

"data=xxx"这句,用你数据集下创建的的yaml文件。

yolo task=detect mode=val model=runs/detect/train/weights/best.pt data=data_cu/tmt_cu.yaml device=0

 在终端运行此脚本以后,是这样的:

5.跟踪(在终端中使用)

 YOLOv8里内置两个跟踪的yaml,文件路径如图所示:

 我通过命令 "tracker=bytetrack.yaml"  启用了bytetrack跟踪;

“source=xxx” 就是你要去跟踪的文件路径,我这里的跟踪文件放在data文件夹下;

“model=xxx” 就是你刚才训练以后的best.pt文件路径。

yolo track model=runs/detect/train2/weights/best.pt source=data/DSCF3037.MOV tracker=bytetrack.yaml

        运行此命令以后,是这样的:

        跟踪结果:

欢迎交流。祝各位训练顺利。

  • 16
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 27
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值