赞
踩
新建label文件夹保持标签
打开数据集文件进行标注
快捷键w进行标注,输入标签名,保存,继续下一张
生成的标签文件为xml文件:
包含图片信息和标注的object信息(坐标、类别)
将数据集划分为训练集、测试集、验证集。训练集:验证集:测试集=8:1:1
在YOLOv8代码ultralytics/目录下新建data.py文件,将数据集的data和label文件夹进行拆分:
import os import random import shutil # 原数据集目录(相对目录) root_dir = 'datasets' # 划分比例:训练集:验证集:测试集=8:1:1 train_ratio = 0.8 valid_ratio = 0.1 test_ratio = 0.1 # 设置随机种子 random.seed(42) # 拆分后数据集目录 split_dir = 'datasets/traffic' os.makedirs(os.path.join(split_dir, 'train/images'), exist_ok=True) os.makedirs(os.path.join(split_dir, 'train/labels'), exist_ok=True) os.makedirs(os.path.join(split_dir, 'valid/images'), exist_ok=True) os.makedirs(os.path.join(split_dir, 'valid/labels'), exist_ok=True) os.makedirs(os.path.join(split_dir, 'test/images'), exist_ok=True) os.makedirs(os.path.join(split_dir, 'test/labels'), exist_ok=True) # 获取图片文件列表 image_files = os.listdir(os.path.join(root_dir, 'images')) label_files = os.listdir(os.path.join(root_dir, 'labels')) # 随机打乱文件列表 combined_files = list(zip(image_files, label_files))#图片、标签转化为列表 random.shuffle(combined_files)#打乱 image_files_shuffled, label_files_shuffled = zip(*combined_files)#重新获取 # 根据比例计算划分的边界索引 train_bound = int(train_ratio * len(image_files_shuffled))#图片总数*训练集比例 valid_bound = int((train_ratio + valid_ratio) * len(image_files_shuffled)) # 将图片和标签文件移动到相应的目录 for i, (image_file, label_file) in enumerate(zip(image_files_shuffled, label_files_shuffled)): if i < train_bound: shutil.copy(os.path.join(root_dir, 'images', image_file), os.path.join(split_dir, 'train/images', image_file)) shutil.copy(os.path.join(root_dir, 'labels', label_file), os.path.join(split_dir, 'train/labels', label_file)) elif i < valid_bound: shutil.copy(os.path.join(root_dir, 'images', image_file), os.path.join(split_dir, 'valid/images', image_file)) shutil.copy(os.path.join(root_dir, 'labels', label_file), os.path.join(split_dir, 'valid/labels', label_file)) else: shutil.copy(os.path.join(root_dir, 'images', image_file), os.path.join(split_dir, 'test/images', image_file)) shutil.copy(os.path.join(root_dir, 'labels', label_file), os.path.join(split_dir, 'test/labels', label_file))
最后生成的目录文件:
在ultralytics/datasets/下新建xx.yaml文件。
yolo predict model=yolov8n.pt imgsz=640 conf=0.25
# Ultralytics YOLO 声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/425330
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。