本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net
YOLOv8 项目地址:https://github.com/ultralytics/ultralytics
项目目录如下:
准备数据集部分,可以参照我的这篇文章: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'] # 你的类别标签名
需要修改一下 "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
其他的参数按需修改,然后按回车开始训练。
需要修改:
"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
在终端运行此脚本以后,是这样的:
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
运行此命令以后,是这样的:
跟踪结果:
欢迎交流。祝各位训练顺利。
Comments | NOTHING