yolov8的数据集准备(批量修改图片和xml名称))

在准备yolov8数据集时经常会遇到文件名称和标注文件名称乱,需要批量序列化名称方法:
在ultralytics的datasets文件夹下创建rename.py

在这里插入图片描述
将python代码复制到文件中,

import os
import shutil
 
 
def rename_file(path, new_path, xml_path, new_xml):
    # 打开源文件图像
    file = os.listdir(path)
    for i in range(len(file)):
        # 获得图像扩展名
        (name, extent) = os.path.splitext(file[i])
        # 获得图像对应的xml文件
        xml_file = os.path.join(xml_path, name + '.xml')
 
        # 源文件
        src = os.path.join(path, str(file[i]))
        a = 1 + i
        # 对应的xml文件复制到新的路径中,并制定新的名称
        # shutil.copy(xml_file, os.path.join(new_xml, '0' + str(a) + '.xml')) #如果想新生成的名字不是1,2,3,4... 而是01,02,03..  只需要把该行代码解除注释
        shutil.copy(xml_file, os.path.join(new_xml, str(a) + '.xml'))
        # 新图像对应的名字及路径
        # new = os.path.join(new_path, '0' + str(a) + '.jpg')
        new = os.path.join(new_path,  str(a) + '.jpg')
        # 文件重命名,且源文件夹中无文件
        os.rename(src, new)
 
 
if __name__ == "__main__":
    path = r'E:\ML-data\VOCdevkit(new)\VOC2007\img'  #源图片路径
    new_path = r"E:\ML-data\VOCdevkit(new)\VOC2007\JPEGImages"#重命名后图片存储路径
    xml_path = r'E:\ML-data\VOCdevkit(new)\VOC2007\xml'#源图片相对应xml文件路径
    new_xml = r'E:\ML-data\VOCdevkit(new)\VOC2007\Annotations'#重命名后xml存储路径
    rename_file(path, new_path, xml_path, new_xml)

更改代码中new_path、new_path 、xml_path、new_xml 在实际文件夹下的路径。注意,该代码生成图片新名称时,相当于把原来文件夹的图片移到新的文件夹中,原来的文件夹的图片就没了,记得要备份一下再运行代码(xml原文件夹仍然存在,不需要备份)

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
预处理YOLOv8数据集的步骤如下1][^2]: 1. 收集集:收集包含目标物体的图像和相应的标注文件。标注文件通常是以XML或JSON格式存储的,包含目标的位置和类别信息。 2. 数据集划分:将数据集划分为训练集、验证集和测试集。训练集用于模型的训练验证集用于调整模型的超参数和评估模型的性能,测试集用于最终评估模型的泛化能力。 3. 图像增强:对图像进行增强操作,以扩充数据集并提高模型的鲁棒性。常见的增强操作包括随机裁剪、缩放、旋转、翻转、亮度调整等。 4. 标签转换:将标注文件中的目标位置信息转换为模型所需的格式。YOLOv8使用的标签格式是每个目标的类别、中心坐标、宽度和高度。 5. 数据集预处理:对图像进行预处理操作,以满足模型的输入要求。YOLOv8要求输入图像的尺寸是固定的,通常是416x416像素。预处理操作包括图像缩放、归一化和通道顺序调整。 6. 数据加载:将预处理后的数据加载到模型中进行训练或推理。可以使用数据加载器来批量加载数据,以提高训练和推理的效率。 下面是一个预处理YOLOv8数据集的示例代码: ```python import cv2 import os # 设置数据集路径和输出路径 dataset_path = '/path/to/dataset' output_path = '/path/to/preprocessed_dataset' # 遍历数据集中的图像文件 for filename in os.listdir(dataset_path): if filename.endswith('.jpg'): # 读取图像 image_path = os.path.join(dataset_path, filename) image = cv2.imread(image_path) # 进行图像增强操作(例如随机裁剪、缩放、翻转等) # 进行标签转换操作 # 进行数据集预处理操作(例如图像缩放、归一化等) # 保存预处理后的图像 output_filename = os.path.join(output_path, filename) cv2.imwrite(output_filename, image) # 输出预处理后的数据集路径 print('预处理后的数据集路径:', output_path) ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值