超详细yolov8训练数据集流程

目录

一,构建数据集

1,任意位置新建如下文件夹

2,xml转txt

3,划分数据集

二、配置yolov8训练文件

1,car文件夹下创建mydata.yaml(当然别的位置创建也行)

 2,修改yolov8x.yaml

 三、训练


一,构建数据集

1,任意位置新建如下文件夹

|------car(目标检测类别名)

|      |------dataSet(后续在文件夹下生成存放images中图像路径的txt文件)

|      |------images(不可改名,存放图像文件,图像不需要统一格式)

|      |------labels(不可改名,存放标签文件,标签与图像根据文件名一一对应)

|      |------xml(存放xml文件,labelImg的VOC格式打标生成的xml文件)

labelImg打标,可以打标为VOC格式(xml文件)和YOLO格式(txt文件)

如果打标为VOC格式,后续需要转成YOLO格式,也就是xml文件转换为txt文件

所以直接打标为YOLO格式就不需要xml转txt,也不需要xml文件夹。

但是,xml转txt容易,txt转xml就难了

labelimg安装与使用:labelimg数据打标

2,xml转txt

 代码如下,按提示修改即可

#trans
# voc_to_yolo.py

import os
import xml.etree.ElementTree as ET
from fnmatch import fnmatch


# 转换之前先修改类别和路径
classes  = ["car"]
# 指定路径
IN_PATH  = "./xml"           # xml文件夹路径
OUT_PATH = "./labels"        # txt文件夹路径

# 一般情况不修改:类别起始编号start_number
start_number = 0



# (lx,ly,rx,ry) -> (cx,xy,w,h)
def convert(size, box):
    dw = 1. / size[0]
    dh = 1. / size[1]
    x = (box[0] + box[1]) / 2.0
    y = (box[2] + box[3]) / 2.0
    w = box[1] - box[0]
    h = box[3] - box[2]
    x = x * dw
    w = w * dw
    y = y * dh
    h = h * dh
    return x, y, w, h

def convert_annotation(in_path, out_path, img_id):
    i_p = os.path.join(in_path, img_id+'.xml')
    in_file = open(i
### YOLOv8 模型训练数据集超详细教程 #### 准备工作 在开始之前,需确认已安装 Ultralytics 的 `yolov8` 库以及相关依赖项。如果尚未完成此操作,请运行以下命令来安装必要的库[^1]: ```bash pip install ultralytics ``` #### 初始化模型 YOLOv8 提供两种主要的训练方法。其中一种是通过 YAML 文件初始化模型并进行配置。例如,在使用 `yolov8x.yaml` 进行训练时,仅需调整类别数这一参数即可满足自定义需求。 #### 下载预训练权重 为了加速收敛过程,通常会加载官方提供的预训练权重文件。这些权重文件可以从 Ultralytics 官方仓库获取,或者根据实际需求选择对应的版本。例如,对于小型网络结构可以选用 `yolov8n.pt` 权重文件[^3]。 #### 数据集准备 支持多种格式的数据集输入,包括但不限于 VOC 和 COCO 格式。然而,推荐将数据转换为标准的 YOLO 格式以便于处理。以下是基于 Python 编写的简单脚本用于划分数据集[^2]: ```python import os from sklearn.model_selection import train_test_split def split_dataset(image_dir, label_dir, output_dir, test_size=0.2): images = [os.path.join(image_dir, img) for img in os.listdir(image_dir)] labels = [os.path.join(label_dir, lbl.replace('.jpg', '.txt')) for lbl in os.listdir(image_dir)] train_images, val_images, train_labels, val_labels = train_test_split( images, labels, test_size=test_size, random_state=42) with open(os.path.join(output_dir, 'train.txt'), 'w') as f: f.writelines([img + '\n' for img in train_images]) with open(os.path.join(output_dir, 'val.txt'), 'w') as f: f.writelines([img + '\n' for img in val_images]) ``` 调用上述函数前需要指定图像目录 (`image_dir`)、标签目录 (`label_dir`) 及输出路径 (`output_dir`)。这一步骤完成后,可获得两个列表文件分别对应训练集和验证集。 #### 配置训练参数 最后一步是在 YAML 文件中设定好所需参数,如数据集位置、使用的具体 YOLO 模型及其预训练权重文件地址等。示例如下所示: ```yaml data: datasets/Apple/apple.yaml model: yolov8n.yaml pretrained: ultralytics/yolov8n.pt epochs: 100 batch: 16 name: custom_yolo_model device: cuda ``` 以上即完成了从环境搭建到最终训练的所有准备工作。按照该流程逐步实施能够有效提升模型性能。 ---
评论 20
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值